Gitea is a lightweight, self-hosted Git service designed to make setting up a private code repository as simple and fast as possible. It’s ideal for developers, DevOps teams, and enterprises seeking full control over their source code without relying on third-party platforms like GitHub or GitLab. Built in Go, Gitea runs on any system supporting Go — including x86, ARM, Linux, Windows, macOS, and Kubernetes — and integrates deeply with modern DevOps tooling.
Gitea combines Git hosting with integrated CI/CD (Gitea Actions), package management for over 20 formats, issue tracking, and team collaboration features. It supports SQLite, PostgreSQL, MySQL, and TiDB, and offers flexible deployment options from single servers to high-availability clusters. The platform is fully open source, MIT-licensed, and compatible with GitHub Actions workflows and APIs.
What You Get
- Gitea Actions - A built-in CI/CD system fully compatible with GitHub Actions YAML syntax, enabling reuse of 20K+ existing GitHub Actions workflows without modification.
- Multi-format Package Registry - Supports over 20 package types including NPM, Maven, PyPI, Docker, Helm, NuGet, Conan, RubyGems, and Composer for private and public package hosting.
- Integrated Issue & Project Management - Kanban boards, labels, milestones, assignments, time tracking, and issue dependencies for agile development planning and tracking.
- Code Review & Pull Requests - Full pull request workflow with inline comments, review approvals, merge strategies, and diff visualization directly in the web UI.
- GitHub Actions Compatibility - Reuse existing GitHub Actions workflows and plugins without rewriting them, ensuring seamless migration and ecosystem continuity.
- API & Webhooks - Comprehensive REST API and event-driven webhooks for automating tasks, integrating with external tools like Slack, Jenkins, ArgoCD, and Discord.
Common Use Cases
- Running a private enterprise codebase - A financial firm deploys Gitea on-premises to host proprietary code with full data control, using Gitea Actions for automated testing and Maven/NuGet package management.
- Small team with mixed tech stacks - A startup uses Gitea to host Git repos, manage issues, and run CI/CD for Node.js (NPM), Python (PyPI), and Java (Maven) projects all in one platform.
- Migrating from GitHub/GitLab to self-hosted - A developer replaces GitHub with Gitea using its GitHub Actions compatibility to reuse existing workflows and avoid reconfiguring CI pipelines.
- Educational institution with limited budget - A university hosts Gitea on a single server to teach version control, CI/CD, and package management using real-world tools without cloud costs.
Under The Hood
Architecture
- Clear separation of concerns through well-defined Go modules, with distinct layers for CLI handlers, data models, and utility functions, following a clean layered architecture
- MVC-inspired structure where routes orchestrate requests, models manage data persistence, and modules encapsulate business logic like rendering and secret generation
- Frontend and backend strictly decoupled, with Vue 3 components interacting solely via REST APIs, eliminating server-side templating from the UI layer
- Modular command registration and conditional compilation via build tags enable flexible feature toggling without runtime overhead
Tech Stack
- Go backend leveraging modern language features, build-time asset embedding, and modular compilation for optimized binaries
- Vue 3 frontend with Vite, TypeScript, and Tailwind CSS for a responsive, type-safe user interface enhanced by CodeMirror and Mermaid for rich content
- Comprehensive tooling including pnpm, ESLint, Stylelint, and Playwright for development consistency and UI testing
- Docker-based multi-stage builds with Alpine Linux and s6 init system ensure lightweight, production-ready deployments
Code Quality
- Extensive test coverage across unit, integration, and API layers using table-driven tests and real database interactions for reliability
- Clean, modular code organization adhering to Go conventions with explicit error handling, contextual logging, and well-defined interfaces
- Consistent naming patterns and strong type safety reduce ambiguity and prevent runtime errors, supported by robust static analysis
- Comprehensive CI pipelines enforce code standards through automated linting, testing, and validation
What Makes It Unique
- Native GitHub Actions-compatible workflow engine embedded directly into the platform, enabling seamless CI/CD without external dependencies
- Repository-scoped secrets and fine-grained access controls designed specifically for self-hosted Git workflows
- Unified CLI for administration, secrets generation, and maintenance tasks, consolidating operations typically scattered across tools
- Deep integration of Git permissions with team structures, enabling dynamic access updates across repositories
- Built-in support for niche markup formats like ASCIICAST and ORG mode, enhancing developer documentation workflows
- Auto-generated Swagger/OpenAPI documentation derived directly from API handlers, ensuring contract consistency and reducing boilerplate