Overview
Discover what makes Gitea powerful
Gitea is a lightweight, self‑hosted Git service written in **Go** that delivers the full spectrum of modern repository hosting – from code storage and review to CI/CD, package management, and project tracking. Its design prioritizes **speed** and **simplicity**, enabling a single binary to run on any platform supported by Go (Linux, macOS, Windows, ARM, PowerPC). The application’s modular architecture allows developers to drop in only the features they need, keeping resource usage low while maintaining a rich API surface.
Core language
Web framework
Frontend
Database
Overview
Gitea is a lightweight, self‑hosted Git service written in Go that delivers the full spectrum of modern repository hosting – from code storage and review to CI/CD, package management, and project tracking. Its design prioritizes speed and simplicity, enabling a single binary to run on any platform supported by Go (Linux, macOS, Windows, ARM, PowerPC). The application’s modular architecture allows developers to drop in only the features they need, keeping resource usage low while maintaining a rich API surface.
Technical Stack & Architecture
- Core language: Go (stable releases, with optional build tags for SQLite or other databases).
- Web framework: Custom lightweight router built on top of Go’s
net/http, with a minimal dependency footprint. - Frontend: Vue.js (v3) application bundled via Vite, served as static assets compiled into the binary with
bindata. - Database: Supports PostgreSQL, MySQL/MariaDB, SQLite (via build tags), and Microsoft SQL Server. The ORM layer is powered by
gorm, providing transparent migrations and schema management. - Search: Optional full‑text search via PostgreSQL’s
tsvectoror external services like Elasticsearch. - CI/CD: Gitea Actions, a GitHub‑Actions compatible runner written in Go, executing YAML workflows on the same host or via external runners.
- Package registry: Native support for over 20 package formats (Docker, npm, Maven, PyPI, etc.) through a pluggable provider system.
The codebase is split into backend and frontend packages. The backend exposes a RESTful API (v1) and a GraphQL endpoint, both authenticated via JWT or session cookies. Webhooks are first‑class, with support for JSON, Slack, and custom payloads.
Core Capabilities & APIs
- Repository Management: Create, delete, fork, mirror, and transfer repositories programmatically.
- Issue & Project Tracking: Kanban boards, milestones, labels, assignees, and time‑tracking APIs.
- Pull Request Workflow: Code review, merge strategies (squash, rebase), and protected branches.
- CI/CD Integration: Trigger workflows on push or PR events; expose job logs via API.
- Package Registry: Publish and consume packages through a REST API; supports scoped authentication.
- Webhooks & Events: Full event payloads for push, PR, issue, and workflow events; customizable delivery URLs.
- Authentication: OAuth2, LDAP, SAML, OpenID Connect, and JWT support for single‑sign‑on scenarios.
Deployment & Infrastructure
Gitea’s minimal resource footprint (≈30 MB binary, ~200 MB RAM for a small instance) makes it ideal for containerized deployments. Official Docker images are available on Docker Hub, and Helm charts simplify Kubernetes installations. The application can run in a single container or be split across services (frontend, backend, database) for larger scale. Horizontal scaling is achieved by running multiple replicas behind a load balancer; the shared database ensures consistency across instances.
Integration & Extensibility
- Plugin System: Go plugins compiled as shared objects can extend the backend; community plugins cover CI runners, custom authentication, and third‑party integrations.
- API Hooks: Webhooks can forward events to external services (Slack, Teams, custom HTTP endpoints).
- CLI:
gitea admincommands for maintenance tasks (user migration, database cleanup). - Custom Themes: Frontend CSS overrides and Vue component slots allow UI tailoring without modifying core code.
Developer Experience
The documentation site (docs.gitea.com) provides exhaustive guides for API usage, plugin development, and CI/CD configuration. The source repository is open‑source with an active community on Discord and GitHub, ensuring rapid issue resolution. The Go implementation encourages straightforward debugging; stack traces are human‑readable and the code is heavily commented. Licensing under MIT grants full freedom to modify and redistribute, which is attractive for enterprises with strict compliance requirements.
Use Cases
- Enterprise DevOps: Host an internal Git server with integrated CI/CD and package registry, eliminating reliance on third‑party services.
- Open Source Projects: Provide a lightweight alternative to GitHub or GitLab with full feature parity for small teams.
- Embedded Systems: Deploy on ARM or PowerPC devices to host configuration repositories and CI pipelines for IoT firmware.
- Educational Environments: Offer a controlled Git platform for coding bootcamps or university courses, with fine‑grained access controls.
Advantages Over Alternatives
| Feature | Gitea | GitLab | GitHub Enterprise |
|---|---|---|---|
| Resource Footprint | < 100 MB binary, low RAM | > 1 GB VM | Proprietary, higher overhead |
| License | MIT (free) | AGPLv3 | Proprietary |
| Customizability | Go plugins, open API | Limited (enterprise) | Proprietary APIs |
| CI/CD Compatibility | GitHub Actions‑compatible | Native CI | Native CI |
| Deployment Flexibility | Docker, Kubernetes, bare metal | All | All (but with licensing) |
Developers choose Gitea for its performance, flexibility, and open‑source nature. Its Go foundation
Open SourceReady to get started?
Join the community and start self-hosting Gitea today
Related Apps in development-tools
Hoppscotch
Fast, lightweight API development tool
code-server
Self-hosted development-tools
AppFlowy
AI-powered workspace for notes, projects, and wikis
Appwrite
All-in-one backend platform for modern apps
PocketBase
Lightweight Go backend in a single file
Huginn
Automate online tasks on your own server
Weekly Views
Repository Health
Information
Explore More Apps
EveryDocs
Personal Document Management System for Secure PDF Storage
Offen Fair Web Analytics
Privacy‑first web analytics for self‑hosted sites
Revolt
Secure, privacy‑first community chat for modern teams and friends
Zusam
Private forums for friends, self-hosted and lightweight
Kener
Stunning self‑hosted status pages in Docker
FOSSBilling
Open‑source billing and client management for hosting businesses
