How to Self-Host Forgejo
Forgejo self-hosted Git forge for repositories, issues, pull requests, packages, organizations, actions, and collaborative software development. It was added to SelfHub after appearing in What I Self-Host, What I Don't, and Why; the product facts below were checked against the project's official site and source repository.
When Forgejo is a good fit
Choose Forgejo when you want this capability on infrastructure you control and are prepared to own updates, access control, monitoring, and recovery. Review the upstream documentation before selecting a version because deployment requirements can change between releases.
Deployment notes
Run the official container or binary with a persistent data directory and a database suited to your team size. Put HTTP and SSH behind deliberate firewall rules.
Place any browser-accessible interface behind HTTPS. Pin a release rather than an unqualified latest tag, apply updates deliberately, and keep the service reachable only from the networks and users that need it.
Data and recovery
Back up repositories, attachments, package data, configuration, and the database as one consistent recovery set.
Write down the restore sequence, required secrets, exposed ports, and external dependencies. A scheduled backup is not complete until a clean host can restore it and pass a functional check.
Important limitation
Test repository clone, issue attachments, and SSH access after a restore; database-only backups are incomplete.
Production checklist
- Pin and record the deployed version.
- Persist every documented data and configuration path.
- Terminate TLS at a maintained reverse proxy or trusted tunnel.
- Restrict administrative interfaces and rotate default credentials.
- Monitor uptime, disk space, certificate expiry, and failed jobs.
- Test an off-host backup with a real restore.



