Overview
Discover what makes Forgejo powerful
Forgejo is a self‑hosted, open‑source software forge that emulates the GitHub experience while keeping control firmly in your hands. It is designed to be lightweight, secure, and highly extensible, making it a popular choice for developers who want an on‑premise or cloud instance that scales from a single workstation to large distributed teams. At its core, Forgejo is a Git repository manager that adds issue tracking, CI/CD pipelines, code review tools, and project collaboration features—all delivered through a single monolithic Go application.
Git hosting
Issue & project boards
Built‑in CI/CD
Code review & pull‑request
Overview
Forgejo is a self‑hosted, open‑source software forge that emulates the GitHub experience while keeping control firmly in your hands. It is designed to be lightweight, secure, and highly extensible, making it a popular choice for developers who want an on‑premise or cloud instance that scales from a single workstation to large distributed teams. At its core, Forgejo is a Git repository manager that adds issue tracking, CI/CD pipelines, code review tools, and project collaboration features—all delivered through a single monolithic Go application.
Key Features
- Git hosting with branch protection, merge checks, and fine‑grained access control.
- Issue & project boards that mirror GitHub’s milestone and label system, enabling Kanban‑style workflows.
- Built‑in CI/CD pipelines (
forgejo-ci) that run arbitrary Docker containers or native Go tests, fully integrated with the repo’s webhook system. - Code review & pull‑request workflow, including automatic merge conflict detection and status checks.
- Package registry for OCI images and language‑specific package formats, facilitating end‑to‑end delivery pipelines.
- Federation via the ActivityPub protocol, allowing cross‑instance collaboration without compromising data sovereignty.
Technical Stack
| Layer | Technology |
|---|---|
| Runtime | Go 1.22+ (single binary, no external runtime) |
| Web Framework | net/http + custom router; templating with Go’s standard library |
| Database | PostgreSQL (recommended), MySQL, or SQLite for small deployments |
| Auth & Security | OAuth2/OpenID Connect, SAML, LDAP integration; TLS termination optional |
| Background Workers | Goroutine pools for CI jobs, email notifications, and webhook delivery |
| Storage | Git objects stored in the local filesystem or S3‑compatible object stores; artifacts in a database or external bucket |
| Containerization | Docker image available on Docker Hub; Helm chart for Kubernetes deployments |
The entire application is compiled into a single static binary, which simplifies upgrades and reduces the attack surface. The use of Go’s concurrency model ensures that a high number of simultaneous requests (e.g., concurrent PR merges) can be handled with minimal thread contention.
Core Capabilities & APIs
- REST API (
/api/v1/...) exposes all core functionality: repos, issues, milestones, pipelines, and user management. - GraphQL API provides a flexible query interface for advanced integrations.
- Webhooks & Event Streaming: JSON payloads on pushes, pull‑request events, issue updates, and CI job status changes.
- Plugin System: Go‑based plugins that can hook into lifecycle events (e.g.,
PreMerge,PostCommit). Plugins are loaded at runtime from a configurable directory. - CLI (
forgejo): Administrative commands for user creation, repo migration, and database maintenance.
Deployment & Infrastructure
Forgejo’s minimal resource footprint (typically < 200 MiB RAM for a modest instance) makes it ideal for:
- Docker Compose: A single
docker-compose.ymlcan spin up the app, PostgreSQL, and a reverse proxy. - Kubernetes: Helm chart supports StatefulSets with persistent volumes; autoscaling can be applied to the CI worker pods.
- Bare Metal / VMs: Direct binary deployment with systemd service files; can be integrated into existing CI/CD pipelines.
The application supports high‑availability setups by replicating the database and using an external load balancer. For large teams, a dedicated CI worker cluster can be added to offload build jobs from the main service.
Integration & Extensibility
Forgejo’s architecture is intentionally modular:
- Plugin API: Developers can write Go plugins that register event handlers, modify HTTP responses, or expose new endpoints.
- External CI: Supports running jobs in external runners (e.g., Jenkins, GitLab Runner) via webhook triggers.
- Third‑Party OAuth: Integration with GitHub, GitLab, Google, or corporate SSO providers is supported out of the box.
- ActivityPub: Federation enables cross‑instance issue tracking and PR reviews, useful for open‑source projects spread across multiple organizations.
Developer Experience
- Configuration: All settings are stored in a single
app.inifile; environment variables override defaults, facilitating CI/CD pipelines. - Documentation: The official docs cover API reference, plugin development guide, and migration procedures with detailed examples.
- Community: Maintained by the Codeberg e.V. foundation, Forgejo has an active issue tracker and a Discord channel for real‑time support.
- Licensing: AGPLv3 ensures that any modifications remain open, aligning with the principles of free software.
Use Cases
| Scenario | Why Forgejo? |
|---|---|
| Enterprise CI/CD | Native pipelines, Docker support, and integration with corporate SSO. |
| Open‑Source Hosting | Low overhead, federation, and a familiar GitHub‑like UI for contributors. |
| Educational Labs | Lightweight installation on campus servers, student accounts, and automatic repository cleanup. |
| Compliance‑Heavy Projects | On‑premise control, audit logs, and the ability to host on private clouds. |
Advantages Over Alternatives
- Performance: Single binary with Go’s efficient concurrency leads to lower latency and memory usage compared to Ruby‑based forges.
- Simplicity: No external services required
Open SourceReady to get started?
Join the community and start self-hosting Forgejo 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
Gitea
Fast, lightweight self-hosted Git platform
Weekly Views
Repository Health
Information
Tags
Explore More Apps
Digicard
Create simple graphic compositions with a web-based editor
Viseron
Local NVR with AI-powered vision

RosarioSIS
All-in-one school management for K‑12 and beyond
Vendure
Headless commerce platform for enterprise-grade flexibility
Agenta
Open‑source LLMOps platform for prompt management and observability
Selfoss
Universal web‑based RSS reader and aggregator
