https://github.com/go-giteria/giteria
Painless self-hosted all-in-one software development service, including Git hosting, code review, team collaboration, package registry and CI/CD
https://github.com/go-giteria/giteria
code git golang javascript nextjs nodemon openapi package talwindcss typescript
Last synced: about 2 hours ago
JSON representation
Painless self-hosted all-in-one software development service, including Git hosting, code review, team collaboration, package registry and CI/CD
- Host: GitHub
- URL: https://github.com/go-giteria/giteria
- Owner: go-giteria
- License: mit
- Created: 2025-08-22T18:03:15.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2025-12-06T15:43:53.000Z (7 months ago)
- Last Synced: 2025-12-07T17:10:31.338Z (7 months ago)
- Topics: code, git, golang, javascript, nextjs, nodemon, openapi, package, talwindcss, typescript
- Language: Go
- Homepage: https://giteria.com
- Size: 7.97 MB
- Stars: 0
- Watchers: 0
- Forks: 1
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- Contributing: .github/CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Security: SECURITY.md
- Support: .github/SUPPORT.md
- Agents: AGENTS.md
Awesome Lists containing this project
README
# π Giteria
[](https://opensource.org/licenses/MIT)
[](https://github.com/go-gitea/gitea)
[](https://golang.org/)
[](https://www.typescriptlang.org/)
[](https://vuejs.org/)
[](https://tailwindcss.com/)
[](https://webpack.js.org/)
[](https://www.postgresql.org/)
**The open-source Git platform enhanced with modern web technologies**
Built on the robust foundation of **[Gitea](https://github.com/go-gitea/gitea)** with enhanced frontend capabilities and AI integration potential.
[Quick Start](#-quick-start) β’ [Documentation](#-documentation) β’ [Contributing](#-contributing)
---
## π Overview
**Giteria** is a comprehensive, self-hostable Git platform that combines the proven reliability of **[Gitea](https://github.com/go-gitea/gitea)** (MIT license) with modern web enhancements. Built for developers who value privacy, control, and extensibility, Giteria offers a GitHub-like experience with enhanced frontend capabilities and AI integration potential.
### π― Current Status
This is an **active evolution** of Gitea with modern frontend enhancements. The backend maintains full compatibility with Gitea's robust Go-based engine, while introducing Next.js configuration for future frontend modernization and AI-powered features.
---
## β¨ Features
### π Core Git Operations (β
Fully Functional)
- **Repository Management**: Complete Git repository hosting and management
- **Branching & Merging**: Advanced branch management with pull requests
- **Code Review**: Comprehensive PR workflow with comments and approvals
- **Issue Tracking**: Full issue management with labels, milestones, and assignments
- **Wiki & Documentation**: Built-in documentation system for every repository
- **Git Operations**: Clone, push, pull, fetch with full protocol support
### π₯ Collaboration & Teams (β
Fully Functional)
- **Organizations**: Multi-tenant organization support with role-based access
- **Team Management**: Create teams with granular permissions
- **User Profiles**: Rich user profiles with contributions and activity tracking
- **Discussions**: Community discussions and Q&A sections
- **Access Control**: Fine-grained permissions and repository access rules
### β‘ DevOps & Automation (β
Fully Functional)
- **CI/CD Pipelines**: Built-in Gitea Actions compatible with GitHub Actions
- **Package Registry**: Private package hosting for npm, Docker, Maven, and more
- **Webhooks**: Extensive webhook system for integrations
- **API**: Complete REST API for automation and third-party integrations
- **SSH/HTTP**: Multiple Git protocol support
### π€ AI-Ready Foundation (π§ In Development)
- **Modern Frontend Stack**: Next.js configuration ready for AI integration
- **Component Architecture**: Vue.js + TypeScript foundation for AI-powered UI components
- **API-First Design**: RESTful architecture perfect for AI service integration
- **Extensible Plugin System**: Foundation for custom AI model integration
---
## π οΈ Technology Stack
### Backend Core (β
Gitea Foundation)
| Technology | Version | Purpose |
|------------|---------|---------|
| **Go** | 1.25.0 | Core backend runtime |
| **Chi Router** | Latest | HTTP routing and middleware |
| **GORM** | Latest | Database ORM |
| **PostgreSQL** | Supported | Primary database |
| **MySQL/SQLite** | Supported | Alternative databases |
| **Redis** | Supported | Caching and sessions |
### Frontend Enhancement (π§ Modernization)
| Technology | Version | Purpose |
|------------|---------|---------|
| **Next.js** | Configured | Modern framework foundation |
| **TypeScript** | 5.9.3 | Type-safe development |
| **Vue.js** | 3.5.25 | Reactive UI components |
| **Tailwind CSS** | 3.4.17 | Utility-first CSS framework |
| **Webpack** | 5.103.0 | Asset bundling and build |
| **HTMX** | 2.0.8 | Dynamic content loading |
| **Monaco Editor** | 0.55.1 | Code editing experience |
### Integration & Extensions
| Technology | Purpose |
|------------|---------|
| **OAuth2** | Third-party authentication |
| **LDAP/SSO** | Enterprise authentication |
| **Webhooks** | Event-driven integrations |
| **API v1** | RESTful API access |
| **Git LFS** | Large file storage |
| **SSH/HTTP** | Git protocol support |
---
## π Quick Start
### Prerequisites
- **Go** 1.25+
- **Node.js** 22+ (for frontend development)
- **PostgreSQL** 14+ (recommended) or MySQL/SQLite
- **Git** 2.30+
- **Redis** (optional, for caching)
### Installation
```bash
# Clone the repository
git clone https://github.com/go-giteria/giteria.git
cd giteria
# Build the backend
go build -o giteria cmd/main.go
# Install frontend dependencies (for development)
pnpm install
# Set up configuration
cp custom/conf/app.example.ini custom/conf/app.ini
# Edit custom/conf/app.ini with your settings
# Initialize the database
./giteria web --install
# Start the server
./giteria web
```
The application will be available at `http://localhost:3000`.
### Development Commands
```bash
# Backend development
go run cmd/main.go web # Start development server
go run cmd/main.go migrate up # Run database migrations
go run cmd/main.go admin create-user # Create admin user
# Frontend development (when working on UI)
pnpm install # Install frontend dependencies
pnpm run dev # Start frontend dev server (if configured)
pnpm run build # Build frontend assets
pnpm run lint # Run linting
# Database management
go run cmd/main.go migrate up # Run migrations
go run cmd/main.go migrate down # Rollback migrations
go run cmd/main.go dump # Backup database
go run cmd/main.go restore # Restore database
```
---
## ποΈ Project Structure
```
giteria/
βββ cmd/ # Command-line interface and server entry points
β βββ main.go # Main application entry point
β βββ web.go # Web server command
β βββ admin.go # Administration commands
β βββ migrate.go # Database migration commands
βββ routers/ # HTTP routing and handlers
β βββ web/ # Web interface routes
β βββ api/v1/ # REST API routes
β βββ private/ # Internal API routes
βββ models/ # Database models and business logic
β βββ user/ # User management
β βββ repo/ # Repository management
β βββ org/ # Organization management
β βββ ... # Other domain models
βββ modules/ # Core application modules
β βββ setting/ # Configuration management
β βββ auth/ # Authentication and authorization
β βββ git/ # Git operations
β βββ ... # Other core modules
βββ templates/ # HTML templates for web interface
β βββ base/ # Base templates and layouts
β βββ repo/ # Repository-related templates
β βββ user/ # User-related templates
β βββ admin/ # Administration interface
β βββ custom/ # Customization templates
βββ web_src/ # Frontend source code
β βββ js/ # JavaScript/TypeScript source
β βββ css/ # CSS source files
β βββ fomantic/ # Fomantic UI framework
βββ public/ # Static assets
βββ custom/ # Custom configuration and overrides
βββ tests/ # Test files
βββ docs/ # Documentation
βββ scripts/ # Build and utility scripts
βββ docker/ # Docker configuration
βββ go.mod # Go module definition
βββ package.json # Frontend dependencies
βββ next.config.ts # Next.js configuration
βββ tsconfig.json # TypeScript configuration
```
---
## π¨ Frontend Architecture
### Current Stack
The frontend uses Gitea's proven architecture with modern enhancements:
#### Template System
- **Go Templates**: Server-side rendering with Go's template engine
- **Fomantic UI**: CSS framework based on Semantic UI
- **HTMX Integration**: Dynamic content loading without full page refreshes
- **Vue.js Components**: Reactive components for interactive features
#### Asset Pipeline
- **Webpack**: Modern JavaScript bundling and optimization
- **TypeScript**: Type-safe JavaScript development
- **Tailwind CSS**: Utility-first CSS framework integration
- **PostCSS**: CSS processing and optimization
#### Component Structure
```html
{{template "base/head" .}}
{{template "repo/header" .}}
Loading...
{{template "base/footer" .}}
```
---
## π API & Integration
### REST API
Complete REST API compatible with Gitea:
#### Authentication
```bash
# Personal Access Token
curl -H "Authorization: token YOUR_TOKEN" \
https://your-giteria.com/api/v1/user
# OAuth2 Flow
curl -X POST -d "client_id=ID&client_secret=SECRET" \
https://your-giteria.com/login/oauth/access_token
```
#### Repository Operations
```bash
# List repositories
curl https://your-giteria.com/api/v1/user/repos
# Create repository
curl -X POST -H "Content-Type: application/json" \
-d '{"name":"new-repo","private":true}' \
https://your-giteria.com/api/v1/user/repos
```
### Webhook System
Configure webhooks for real-time integrations:
```json
{
"type": "push",
"url": "https://your-ci-server.com/webhook",
"content_type": "json",
"events": ["push", "pull_request", "issues"]
}
```
---
## π Security Features
### Authentication & Authorization (β
Production Ready)
- **Multi-provider Auth**: GitHub, GitLab, Google OAuth, LDAP
- **Enterprise SSO**: SAML and LDAP integration
- **Session Management**: Secure token handling with Redis
- **Role-based Access**: Granular permissions system
- **Two-Factor Auth**: TOTP and WebAuthn support
### Security Best Practices
- **Type Safety**: TypeScript strict mode for frontend
- **Input Validation**: Comprehensive input sanitization
- **CSRF Protection**: Built-in CSRF token validation
- **Secure Headers**: HTTP security headers configuration
- **Rate Limiting**: API rate limiting and DDoS protection
---
## π± Responsive Design
### Mobile-First Approach
- **Progressive Enhancement**: Core functionality works everywhere
- **Touch Interactions**: Optimized for mobile devices
- **Responsive Layouts**: Fomantic UI responsive grid system
- **Performance**: Optimized for mobile networks
### Supported Devices
- **Desktop**: 1024px and above
- **Tablet**: 768px - 1023px
- **Mobile**: 320px - 767px
---
## π Accessibility
### WCAG 2.1 Compliance (β
Implemented)
- **Semantic HTML**: Proper use of HTML5 elements
- **ARIA Labels**: Screen reader support
- **Keyboard Navigation**: Full keyboard accessibility
- **Focus Management**: Logical tab order and focus indicators
- **Color Contrast**: AA compliant color schemes
---
## π§ Development Guidelines
### Backend Development (Go)
- **Go Modules**: Proper module organization and dependencies
- **Error Handling**: Comprehensive error handling and logging
- **Testing**: Unit tests with Go's testing package
- **Documentation**: Go doc comments for all public functions
### Frontend Development
- **TypeScript Strict**: All files must pass strict type checking
- **Component Naming**: PascalCase for components, camelCase for utilities
- **Import Organization**: React β Third-party β Internal imports
- **Performance**: Optimized for first contentful paint
### Best Practices
- **Server-Side Rendering**: Use Go templates by default
- **Progressive Enhancement**: Enhance with JavaScript/Vue.js
- **Error Boundaries**: Implement proper error handling
- **Loading States**: Provide feedback during data fetching
---
## π§ͺ Testing Strategy
### Current Status
Comprehensive testing suite inherited from Gitea:
### Backend Testing
- **Unit Tests**: Go's built-in testing framework
- **Integration Tests**: API endpoint testing
- **E2E Tests**: Playwright for full application testing
- **Performance Tests**: Load testing for API endpoints
### Frontend Testing
- **JavaScript Tests**: Vitest for unit testing
- **Component Tests**: Vue Test Utils for component testing
- **Visual Regression**: Screenshot comparison testing
- **Accessibility Tests**: Automated accessibility testing
---
## π Deployment
### Production Environment
#### Binary Deployment
```bash
# Build for production
go build -ldflags="-s -w" -o giteria cmd/main.go
# Set up production configuration
cp custom/conf/app.example.ini custom/conf/app.ini
# Edit with production settings
# Run with systemd or supervisor
./giteria web
```
#### Docker Deployment
```bash
# Build Docker image
docker build -t giteria:latest .
# Run with Docker Compose
docker-compose up -d
# Environment variables
- GITEA__database__DB_TYPE=postgres
- GITEA__database__HOST=db:5432
- GITEA__server__ROOT_URL=https://giteria.example.com
```
#### Kubernetes Deployment
```yaml
# Kubernetes deployment example
apiVersion: apps/v1
kind: Deployment
metadata:
name: giteria
spec:
replicas: 3
selector:
matchLabels:
app: giteria
template:
metadata:
labels:
app: giteria
spec:
containers:
- name: giteria
image: giteria:latest
ports:
- containerPort: 3000
```
### Environment Configuration
```bash
# Database Configuration
GITEA__database__DB_TYPE=postgres
GITEA__database__HOST=localhost:5432
GITEA__database__NAME=giteria
GITEA__database__USER=gitea
GITEA__database__PASSWORD=secure_password
# Server Configuration
GITEA__server__ROOT_URL=https://your-giteria.com
GITEA__server__DOMAIN=your-giteria.com
GITEA__server__HTTP_PORT=3000
# Security Configuration
GITEA__security__INSTALL_LOCK=true
GITEA__security__SECRET_KEY=your-secret-key
GITEA__security__INTERNAL_TOKEN=your-internal-token
```
---
## π€ Contributing
We welcome contributions from the community! Here's how you can help:
### π― Ways to Contribute
- **π Report Bugs**: Found an issue? [Open a bug report](https://github.com/go-giteria/giteria/issues/new?template=bug_report.yml)
- **π‘ Feature Requests**: Have an idea? [Suggest a feature](https://github.com/go-giteria/giteria/issues/new?template=feature_request.yml)
- **π Documentation**: Help improve our documentation
- **π§ Code Contributions**: Fix bugs or implement features
- **π¨ Design**: Improve UI/UX design
- **π§ͺ Testing**: Write tests and improve test coverage
- **π Translation**: Help translate Giteria to your language
### π οΈ Development Setup
```bash
# Fork and clone the repository
git clone https://github.com/go-giteria/giteria.git
cd giteria
# Set up Go development environment
go mod download
go mod tidy
# Install frontend dependencies (if working on UI)
pnpm install
# Set up development configuration
cp custom/conf/app.example.ini custom/conf/app.ini
# Run database migrations
go run cmd/main.go migrate up
# Start development server
go run cmd/main.go web
```
### π Pull Request Process
1. **Create a feature branch**: `git checkout -b feature/amazing-feature`
2. **Make your changes** and ensure they follow code style
3. **Run tests**: `go test ./...` and `pnpm test` (if applicable)
4. **Test thoroughly**: Manual testing of all affected areas
5. **Commit your changes**: `git commit -m "feat: add amazing feature"`
6. **Push to your fork**: `git push origin feature/amazing-feature`
7. **Open a Pull Request** with a detailed description
### π Code of Conduct
Please read our [Code of Conduct](CODE_OF_CONDUCT.md) to ensure a welcoming and inclusive environment for all contributors.
---
## π Support
### π Getting Help
- **π Documentation**: Check [docs/README.md](docs/README.md) for detailed documentation
- **π¬ Discussions**: [GitHub Discussions](https://github.com/go-giteria/giteria/discussions)
- **π Issues**: [GitHub Issues](https://github.com/go-giteria/giteria/issues)
- **π§ Email**: [support@giteria.com](mailto:support@giteria.com)
### π Resources
- **[Gitea Documentation](https://docs.gitea.com/)**: Core functionality documentation
- **[API Documentation](https://try.gitea.com/api/swagger)**: Interactive API docs
- **[Configuration Guide](https://docs.gitea.com/administration/config-cheat-sheet)**: Configuration options
- **[Migration Guide](https://docs.gitea.com/administration/upgrade)**: Upgrade instructions
---
## πΊοΈ Roadmap
### Current Development (v0.1.0)
- β
Gitea core functionality fully operational
- β
Next.js configuration for frontend modernization
- β
Enhanced TypeScript support
- β
Modern build pipeline with Webpack
- π AI integration foundation
- π Enhanced UI components with Vue.js
### Near-term (v0.2.0)
- π AI-powered code completion
- π Enhanced repository analytics
- π Modern dashboard with real-time updates
- π Improved mobile experience
- π Advanced search capabilities
### Medium-term (v0.3.0)
- π Custom AI model integration
- π Advanced CI/CD features
- π Enhanced security features
- π Plugin system for extensions
- π Performance optimizations
### Long-term (v1.0.0)
- π Production-ready AI features
- π Enterprise-grade analytics
- π Advanced collaboration tools
- π Multi-region deployment support
- π Comprehensive plugin ecosystem
---
## π Project Statistics





---
## π License
This project is licensed under **MIT License** - see the [LICENSE](LICENSE) file for details.
**Underlying Engine**: Giteria is based on [Gitea](https://github.com/go-gitea/gitea), which is also licensed under MIT. We thank the Gitea community for their excellent work and solid foundation.
---
## π Acknowledgments
Built with β€οΈ by [Sky Genesis Enterprise](https://skygenesisenterprise.com) and the open-source community.
**Special thanks**: This project is based on the remarkable work of the [Gitea](https://github.com/go-gitea/gitea) community, without whom this project would not be possible. Their dedication to creating a robust, feature-rich Git hosting platform has made this evolution possible.
**Additional thanks** to:
- The [Gogs](https://github.com/gogits/gogs) project for the initial inspiration
- All [Gitea contributors](https://github.com/go-gitea/gitea/graphs/contributors) for their continuous improvements
- The [Go](https://golang.org/) community for the amazing language and ecosystem
- The [Vue.js](https://vuejs.org/) and [Next.js](https://nextjs.org/) teams for modern frontend tools
---
**[β Star this repo](https://github.com/go-giteria/giteria) β’ [π Report issues](https://github.com/go-giteria/giteria/issues) β’ [π¬ Join discussions](https://github.com/go-giteria/giteria/discussions)**
Made with β and π§ by the Giteria team