Skip to content

skygenesisenterprise/giteria

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

286 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

πŸš€ Giteria

License Go TypeScript Next.js React

Painless self-hosted all-in-one software development service, including Git hosting, code review, team collaboration, package registry and CI/CD

πŸš€ Quick Start β€’ πŸ“‹ What's New β€’ πŸ“Š Current Status β€’ πŸ› οΈ Tech Stack β€’ πŸ“ Architecture β€’ 🀝 Contributing

GitHub stars GitHub forks GitHub issues


🌟 What is Giteria?

Giteria is a comprehensive, self-hosted all-in-one software development platform that provides Git hosting, code review, team collaboration, package registry, and CI/CD capabilities. Built as a modern alternative to existing solutions, Giteria offers a seamless experience for development teams seeking full control over their infrastructure.

🎯 Our Vision

  • πŸš€ Modern Architecture - Go 1.21+ backend + TypeScript 5 frontend
  • πŸ“¦ Complete Git Hosting - Full-featured Git server with SSH/HTTPS support
  • πŸ” Complete Authentication System - JWT-based system with login/register forms and context
  • ⚑ High-Performance Backend - Go-based server with GORM + PostgreSQL integration
  • 🎨 Modern Frontend - Next.js 16 + React 19.2.1 + shadcn/ui component library
  • πŸ—οΈ Enterprise-Ready Design - Scalable, secure, and maintainable architecture
  • πŸ“š Comprehensive Documentation - Complete docs and API references
  • πŸ› οΈ Developer-Friendly - Make commands, hot reload, TypeScript strict mode
  • πŸ“‹ Issue Tracking - Full-featured issue management with labels, milestones
  • πŸ”€ Pull Requests - Code review, merge requests, and collaboration
  • πŸ“¦ Package Registry - Host your own packages (npm, Go, etc.)
  • βš™οΈ CI/CD - Integrated continuous integration and deployment pipelines

πŸ†• What's New

🎯 Major Additions in v1.0+

πŸ—οΈ Core Infrastructure (NEW)

  • βœ… Hybrid Monorepo Architecture - Go backend + TypeScript frontend workspaces
  • βœ… Complete Authentication System - JWT with login/register forms and React context
  • βœ… Go Backend Server - High-performance Gin API with GORM + PostgreSQL
  • βœ… Next.js 16 Frontend - Modern React 19.2.1 with shadcn/ui + Tailwind CSS v4

πŸ“ Code Collaboration (NEW)

  • βœ… Issue Tracking System - Full issue management with labels, milestones, and assignees
  • βœ… Pull Request/Merge Requests - Code review, inline comments, and approvals
  • βœ… Repository Management - Create, fork, and manage repositories
  • βœ… Access Control - Organization and team permissions

πŸ”§ Developer Tools (NEW)

  • βœ… Wiki System - Documentation and knowledge base for each repository
  • βœ… Activity Feed - Track all project activities and notifications
  • βœ… SSH Key Management - Secure Git access with deploy keys
  • βœ… Webhooks - Integration with external services

πŸ“¦ Package Ecosystem (PLANNED)

  • βœ… Package Registry - Host npm, Go, and other package types
  • βœ… CI/CD Pipelines - Integrated continuous integration
  • βœ… Container Registry - Docker container hosting (Future)

πŸ“Š Current Status

βœ… In Development: Building a comprehensive self-hosted Git platform with modern architecture.

βœ… Currently Implemented

πŸ—οΈ Core Foundation

  • βœ… Hybrid Monorepo Architecture - Go backend + TypeScript frontend workspaces
  • βœ… Complete Authentication System - JWT with login/register forms and React context
  • βœ… Go Backend Server - High-performance Gin API with GORM + PostgreSQL
  • βœ… Next.js 16 Frontend - Modern React 19.2.1 with shadcn/ui + Tailwind CSS v4
  • βœ… Database Layer - GORM with PostgreSQL and comprehensive data models
  • βœ… Git Operations - Git service layer with proper handling

πŸ”§ Repository Management

  • βœ… Repository Creation - Create and manage Git repositories
  • βœ… Repository Browsing - File browser with syntax highlighting
  • βœ… Branch Management - Create, delete, and manage branches
  • βœ… Tag Management - Release tagging support

πŸ“ Collaboration Features

  • βœ… Issue System - Create, track, and manage issues
  • βœ… Issue Labels - Categorize issues with labels
  • βœ… Milestones - Track progress with milestones
  • βœ… Comments - Discussion and comments on issues/PRs

πŸ› οΈ Development Infrastructure

  • βœ… Development Environment - Hot reload, TypeScript strict mode, Go modules
  • βœ… Docker Deployment - Production-ready containers
  • βœ… Security Implementation - Rate limiting, validation, security headers
  • βœ… Structured Logging - Pino-based logging with correlation

πŸ”„ In Development

  • Pull Request System - Code review and merge requests
  • Organization Management - Teams and organization settings
  • Wiki System - Repository documentation
  • Activity Stream - User and repository activities
  • API Documentation - Comprehensive API documentation and testing

πŸ“‹ Planned Features

  • Package Registry - npm, Go, Maven repositories
  • CI/CD System - Integrated pipelines
  • Container Registry - Docker image hosting
  • Advanced Security - 2FA, SSO, LDAP integration
  • Migration Tools - Import from GitHub, GitLab, Gitea

πŸš€ Quick Start

πŸ“‹ Prerequisites

  • Go 1.21.0 or higher (for backend)
  • Node.js 18.0.0 or higher (for frontend)
  • pnpm 9.0.0 or higher (recommended package manager)
  • PostgreSQL 14.0 or higher (for database)
  • Docker (optional, for container deployment)
  • Make (for command shortcuts - included with most systems)

πŸ”§ Installation & Setup

  1. Clone the repository

    git clone https://github.com/skygenesisenterprise/giteria.git
    cd giteria
  2. Quick start (recommended)

    # One-command setup and start
    make quick-start
  3. Manual setup

    # Install Go dependencies
    cd server && go mod download && cd ..
    
    # Install Node.js dependencies
    make install
    
    # Environment setup
    make env-dev
    
    # Database initialization
    make db-migrate
    
    # Start development servers
    make dev

🌐 Access Points

Once running, you can access:

🎯 Make Commands

# πŸš€ Quick Start & Development
make quick-start          # Install, migrate, and start dev servers
make dev                 # Start all services (frontend + backend)
make dev-frontend        # Frontend only (port 3001)
make dev-backend         # Backend only (port 8080)

# πŸ—οΈ Building & Production
make build               # Build all packages
make start               # Start production servers

# πŸ—„οΈ Database
make db-studio           # Open Prisma Studio
make db-migrate          # Run migrations
make db-seed             # Seed development data

# πŸ”§ Code Quality & Testing
make lint                # Lint all packages
make typecheck           # Type check all packages
make format              # Format code with Prettier

# πŸ› οΈ Utilities
make help                # Show all available commands
make status              # Show project status
make health              # Check service health

πŸ’‘ Tip: Run make help to see all available commands organized by category.


πŸ› οΈ Tech Stack

🎨 Frontend Layer

Next.js 16 + React 19.2.1 + TypeScript 5
β”œβ”€β”€ 🎨 Tailwind CSS v4 + shadcn/ui (Styling & Components)
β”œβ”€β”€ πŸ” JWT Authentication (Complete Implementation)
β”œβ”€β”€ πŸ›£οΈ Next.js App Router (Routing)
β”œβ”€β”€ πŸ“ TypeScript Strict Mode (Type Safety)
β”œβ”€β”€ πŸ”„ React Context (State Management)
└── πŸ”§ ESLint + Prettier (Code Quality)

βš™οΈ Backend Layer

Go 1.21+ + Gin Framework
β”œβ”€β”€ πŸ—„οΈ GORM + PostgreSQL (Database Layer)
β”œβ”€β”€ πŸ” JWT Authentication (Complete Implementation)
β”œβ”€β”€ πŸ›‘οΈ Middleware (Security, CORS, Logging)
β”œβ”€β”€ 🌐 HTTP Router (Gin Router)
β”œβ”€β”€ πŸ“¦ JSON Serialization (Native Go)
└── πŸ“Š Structured Logging (Zerolog/Pino)

πŸ—„οΈ Data Layer

PostgreSQL + GORM
β”œβ”€β”€ πŸ—οΈ Schema Management (Auto-migration)
β”œβ”€β”€ πŸ” Query Builder (Type-Safe Queries)
β”œβ”€β”€ πŸ”„ Connection Pooling (Performance)
β”œβ”€β”€ πŸ‘€ User Models (Complete Implementation)
β”œβ”€β”€ πŸ“š Repository Models
β”œβ”€β”€ πŸ“ Issue & PR Models
└── πŸ“ˆ Seed Scripts (Development Data)

πŸ—οΈ Monorepo Infrastructure

Make + pnpm Workspaces + Go Modules
β”œβ”€β”€ πŸ“¦ app/ (Next.js Frontend - TypeScript)
β”œβ”€β”€ βš™οΈ server/ (Gin API - Go)
β”œβ”€β”€ πŸ› οΈ tools/ (Development Utilities - TypeScript)
β”œβ”€β”€ πŸ“š services/ (Core Services - Go)
β”œβ”€β”€ πŸ—‚οΈ routers/ (API Routing - Go)
β”œβ”€β”€ πŸ“¦ models/ (Data Models - Go)
└── 🐳 docker/ (Container Configuration)

πŸ“ Architecture

πŸ—οΈ Monorepo Structure

giteria/
β”œβ”€β”€ app/                     # Next.js 16 Frontend Application (TypeScript)
β”‚   β”œβ”€β”€ components/         # React components with shadcn/ui
β”‚   β”‚   β”œβ”€β”€ ui/            # UI component library
β”‚   β”‚   └── ...
β”‚   β”œβ”€β”€ context/           # React contexts
β”‚   β”‚   └── AuthContext.tsx # Authentication state
β”‚   β”œβ”€β”€ lib/               # Utility functions
β”‚   β”œβ”€β”€ styles/            # Tailwind CSS styling
β”‚   └── ...
β”œβ”€β”€ server/                 # Go Backend Server
β”‚   β”œβ”€β”€ cmd/
β”‚   β”‚   └── server/
β”‚   β”‚       └── main.go    # CLI entry point
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ config/        # Database and server configuration
β”‚   β”‚   β”œβ”€β”€ controllers/   # HTTP request handlers
β”‚   β”‚   β”œβ”€β”€ middleware/    # Gin middleware (auth, validation)
β”‚   β”‚   β”œβ”€β”€ models/         # Data models and structs
β”‚   β”‚   β”œβ”€β”€ routes/        # API route definitions
β”‚   β”‚   β”œβ”€β”€ services/      # Business logic
β”‚   β”‚   └── tests/         # Unit and integration tests
β”‚   β”œβ”€β”€ main.go            # Main server entry point
β”‚   β”œβ”€β”€ go.mod             # Go modules file
β”‚   └── go.sum             # Go modules checksum
β”œβ”€β”€ models/                 # Core Data Models (Go)
β”‚   β”œβ”€β”€ user/              # User models
β”‚   β”œβ”€β”€ repo/              # Repository models
β”‚   β”œβ”€β”€ issues/            # Issue tracking models
β”‚   β”œβ”€β”€ pull/              # Pull request models
β”‚   └── ...
β”œβ”€β”€ services/               # Core Services (Go)
β”‚   β”œβ”€β”€ auth/              # Authentication service
β”‚   β”œβ”€β”€ git/               # Git operations service
β”‚   β”œβ”€β”€ repo/              # Repository management
β”‚   └── ...
β”œβ”€β”€ modules/                # Reusable Modules (Go)
β”œβ”€β”€ routers/                # API Routing (Go)
β”‚   β”œβ”€β”€ api/               # API v1 routes
β”‚   β”œβ”€β”€ web/               # Web UI routes
β”‚   └── ...
β”œβ”€β”€ prisma/                 # Database Schema & Migrations
β”‚   β”œβ”€β”€ schema.prisma      # Database schema definition
β”‚   └── ...
β”œβ”€β”€ docker/                 # Docker Configuration
β”œβ”€β”€ docs/                   # Documentation
└── ...

πŸ”„ Data Flow Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   Next.js App   β”‚    β”‚   Gin API        β”‚    β”‚   PostgreSQL    β”‚
β”‚   (Frontend)    │◄──►│   (Backend)      │◄──►│   (Database)    β”‚
β”‚  Port 3001      β”‚    β”‚  Port 8080       β”‚    β”‚  Port 5432      β”‚
β”‚  TypeScript     β”‚    β”‚  Go              β”‚    β”‚                 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
         β”‚                       β”‚                       β”‚
         β–Ό                       β–Ό                       β–Ό
   JWT Tokens            API Endpoints         User/Repo/Issue Data
   React Context        Authentication         GORM ORM
   shadcn/ui Components  Business Logic        Auto-migrations

πŸ’» Development

🎯 Development Workflow

# New developer setup
make quick-start

# Daily development
make dev                 # Start working (Go + TypeScript)
make lint-fix           # Fix code issues
make typecheck          # Verify types
make test               # Run tests

# Go-specific development
cd server
go run main.go          # Start Go server
go test ./...           # Run Go tests
go fmt ./...            # Format Go code
go mod tidy             # Clean dependencies

# TypeScript-specific development
make dev-frontend       # Frontend only
make lint               # Check code quality
make typecheck          # Verify types

# Before committing
make format             # Format code
make lint               # Check code quality
make typecheck          # Verify types

# Database changes
make db-migrate         # Apply migrations
make db-studio          # Browse database

# Production deployment
make build              # Build everything
make docker-build       # Create Docker image
make docker-run         # Deploy

πŸ“‹ Development Guidelines

  • Make-First Workflow - Use make commands for all operations
  • Go Best Practices - Follow Go conventions for backend code
  • TypeScript Strict Mode - All frontend code must pass strict type checking
  • Conventional Commits - Use standardized commit messages
  • Component Structure - Follow established patterns for React components
  • API Design - RESTful endpoints with proper HTTP methods
  • Error Handling - Comprehensive error handling and logging
  • Security First - Validate all inputs and implement proper authentication

πŸ” Authentication System

🎯 Complete Implementation

The authentication system is fully implemented with Go backend and TypeScript frontend:

  • JWT Tokens - Secure token-based authentication with refresh mechanism
  • Login/Register Forms - Complete user authentication flow with validation
  • Auth Context - Global authentication state management in React
  • Protected Routes - Route-based authentication guards
  • Go API Endpoints - Complete authentication API with Gin framework
  • Password Security - bcrypt hashing for secure password storage
  • Session Management - LocalStorage-based session persistence

🀝 Contributing

We're looking for contributors to help build this comprehensive self-hosted Git platform! Whether you're experienced with Go, TypeScript, web development, or DevOps, there's a place for you.

🎯 How to Get Started

  1. Fork the repository and create a feature branch
  2. Check the issues for tasks that need help
  3. Join discussions about architecture and features
  4. Start small - Documentation, tests, or minor features
  5. Follow our code standards and commit guidelines

πŸ—οΈ Areas Needing Help

  • Go Backend Development - API endpoints, business logic, Git operations
  • TypeScript Frontend Development - React components, UI/UX design
  • Database Design - Schema development, migrations, optimization
  • DevOps Engineers - Docker, deployment, CI/CD
  • Security Specialists - Authentication, encryption
  • Documentation - API docs, user guides, tutorials

πŸ“ž Support & Community

πŸ’¬ Get Help

πŸ› Reporting Issues

When reporting bugs, please include:

  • Clear description of the problem
  • Steps to reproduce
  • Environment information (Go version, Node.js version, OS, etc.)
  • Error logs or screenshots
  • Expected vs actual behavior

πŸ“Š Project Status

Component Status Technology Notes
Hybrid Architecture βœ… Working Go + TypeScript Monorepo design
Authentication System βœ… Working JWT (Go/TS) Full implementation with forms
Go Backend API βœ… Working Gin + GORM High-performance with PostgreSQL
Frontend Framework βœ… Working Next.js 16 + React 19.2.1 shadcn/ui + Tailwind CSS v4
Repository Management βœ… Working Go/TS Create, browse, manage repos
Issue Tracking βœ… Working Go/TS Full issue system with labels
UI Component Library βœ… Working shadcn/ui + Tailwind CSS Complete component set
Database Layer βœ… Working GORM + PostgreSQL Auto-migrations + models
Docker Deployment βœ… Working Multi-Stage Containerized deployment
Pull Requests πŸ”„ In Progress Go/TS Code review system
Organization Mgmt πŸ”„ In Progress Go/TS Teams and org settings
Wiki System πŸ“‹ Planned Go/TS Repository documentation
Package Registry πŸ“‹ Planned Go/TS npm, Go, Maven repos
CI/CD πŸ“‹ Planned Go/TS Integrated pipelines

πŸ† Sponsors & Partners

Development led by Sky Genesis Enterprise

We're looking for sponsors and partners to help accelerate development of this open-source Git hosting platform.

🀝 Become a Sponsor


πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

MIT License

Copyright (c) 2025 Sky Genesis Enterprise

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

πŸ™ Acknowledgments

  • Sky Genesis Enterprise - Project leadership and development
  • Go Community - High-performance programming language and ecosystem
  • Gin Framework - Lightweight HTTP web framework
  • GORM Team - Modern Go database library
  • Next.js Team - Excellent React framework
  • React Team - Modern UI library
  • shadcn/ui - Beautiful component library
  • pnpm - Fast, disk space efficient package manager
  • Make - Universal build automation and command interface
  • Docker Team - Container platform and tools
  • Open Source Community - Tools, libraries, and inspiration

πŸš€ Join Us in Building the Future of Self-Hosted Git!

⭐ Star This Repo β€’ πŸ› Report Issues β€’ πŸ’‘ Start a Discussion


πŸ”§ Building the next generation of self-hosted software development platform

Made with ❀️ by the Sky Genesis Enterprise team

About

Painless self-hosted all-in-one software development service, including Git hosting, code review, team collaboration, package registry and CI/CD

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

Packages

 
 
 

Contributors