Forgejo
The community-governed git forge (Gitea fork) - repos, PRs, packages, and CI Actions on a 1 GiB container.
One-click deploy, from $13/mo on a Miget plan.
A team forge is the classic self-host win: code is the asset you least want metered or mined, and a Go binary serves it from a gigabyte of RAM. Forgejo is the community-governed hard fork of Gitea - run by the non-profit Codeberg e.V., GPL-licensed, monthly security releases - with everything a small forge needs: repos, issues, PRs, packages, and GitHub-Actions-compatible CI via Forgejo Actions.
This template runs Forgejo on a managed Postgres with repos on a 10 GB volume. It deliberately ships HTTPS-first: git clone over https with tokens covers the full workflow on an HTTP-first platform, and SSH can be enabled over a custom TCP port if you want it.
Why Forgejo over Gitea? Governance: Gitea’s trademark moved to a for-profit in 2022; Forgejo answered with a non-profit home and an independent release train. Same lineage, community steering wheel - the safer two-decade bet for where your code lives.
Upstream project: Forgejo (Codeberg e.V.)
#what you get
- Repos, issues, pull requests, wikis, releases - the full forge
- Forgejo Actions: GitHub-Actions-compatible workflow CI
- Package registry: npm, container images, Maven, PyPI, and more
- Light: a Go binary at 1 GiB serves whole teams
- Managed Postgres auto-provisioned and auto-wired; repos on a volume
- HTTPS-first git; optional SSH via custom TCP port
#topology
| Service | Role | Public |
|---|---|---|
| forgejo | web UI + git over HTTPS (:5000) | yes |
| db | Postgres - managed service on Miget, container locally | no |
#miget sizing
// this stack needs
2 GiB RAM · 15 GB disk · 2 services
1 GiB runs a team forge comfortably. CI runners are the real resource consumers - register Forgejo Actions runners as separate apps sized to your build load.
Hobby - recommended fit
$13/mo
1 vCPU · 2 GiB · 50 GiB disk
Headroom for your own apps: 2 GiB at $19/mo
Professional - production
$43/mo
2 vCPU · 4 GiB · 25 GiB disk
Dedicated resources, production SLOs - plan details
One Miget plan is a fixed pool of compute - the whole stack (managed databases included) deploys inside it, and anything left over runs your other apps. No per-service or per-seat math.
#vs. the managed service
What the hosted equivalents charge, against the flat Miget plan this stack fits on. Prices as of June 2026, sources linked.
| Service | Plan | Monthly | What you get |
|---|---|---|---|
| Forgejo on Miget ★ | 2 GiB plan | $13 | this whole stack, flat - no usage meters, and room left for your own apps |
| GitHub | Team | ~$40 | $4/user/mo at 10 users (first-12-months rate); CI minutes metered beyond 3,000/mo |
| GitLab | Premium | ~$290 | $29/user/mo at 10 users, billed annually |
For private team forges the per-seat math compounds; Forgejo is a flat plan with unlimited repos, users, and Actions minutes bounded only by your compute.
#vs. other PaaS
Estimated monthly cost of running this exact stack (2 GiB RAM, 15 GB disk, 2 containers) elsewhere, from published June 2026 rates.
| Platform | Est. monthly | Notes |
|---|---|---|
| Miget ★ | $13 flat | compose stacks first-class: one deploy, dedicated vCPU, managed Postgres/Valkey, volumes and TLS all included in the plan |
| Heroku | ~$100 | no volumes; nothing between 1 GB ($50) and 2.5 GB ($250) dynos - 2 GB containers cost far more than shown |
| Render | ~$29 | per-service instances (0.5 GB $7, 2 GB $25) - every container is its own paid service |
| DO App Platform | ~$29 | no persistent volumes - stateful containers need managed DBs/Spaces (base $5 Spaces included here) |
| Railway | ~$22 | usage-based ($10/GB RAM-mo); vCPU billed separately at $20/vCPU-mo on top |
| Fly.io | ~$14 | cheapest sticker price - but burstable shared CPUs (1/16 core; dedicated vCPUs cost ~2-3×), no compose deploys (one app per container, manual wiring), managed DBs billed extra |
Estimates assume RAM fully allocated at published on-demand rates - and sticker price isn't the whole comparison: the cheaper rows buy burstable shared CPUs, per-service wiring instead of a compose deploy, and managed databases billed separately. Heroku and DO App Platform have no persistent volumes at all - stateful stacks like this one need workarounds there.
#deploy it
On Miget
- Create a Compose Stack in app.miget.com pointing at the templates repository
- Set the stack path to
forgejo -
Set the required variable:
ROOT_URL, set to the app’s https domain (trailing slash) after first deploy - clone URLs embed it
- Deploy. Miget layers
compose.miget.yaml(RAM, privacy, volumes, managed services) automatically
Locally first?
Every template is portable, vanilla Docker Compose - the Miget overrides are ignored locally:
git clone https://github.com/deployable-sh/stacks
cd miget-compose-templates/forgejo
docker compose up -d Same files, same behavior. The template README covers connection strings and scaling notes.
#faq
Forgejo or Gitea - which should I deploy?
They remain very similar technically; the difference is governance. Forgejo lives under the non-profit Codeberg e.V. with GPL licensing and an independent release cadence, after Gitea’s trademark moved to a for-profit. For infrastructure you intend to keep for years, the community-governed fork is the conservative choice - and the env config maps 1:1 if you ever switch.
How does this compare to GitHub Team or GitLab Premium?
GitHub Team is $4/user/month with metered CI minutes; GitLab Premium is $29/user/month. A 10-person team pays $40-290/month there - this stack is $13/month flat with unlimited repos, users, and Actions minutes bounded only by your runners.
Can I run CI on it?
Yes - Forgejo Actions speaks the GitHub Actions workflow format, so most existing workflows port over. Deploy runner(s) as separate apps in the project and register them against your forge; size them to your build load, not the forge.
How do I clone without SSH?
git clone https://your-domain/org/repo with a personal access token works everywhere and is the default here. Want SSH anyway? Add a custom TCP port on the app, enable SSH in the env, and set SSH_PORT to the public port so clone URLs come out right.
Ship Forgejo today
One compose stack, 2 GiB of RAM, from $13/month flat, and it runs on your laptop with the same files.