Home / Servers / Gitea VPS

Self-host Gitea / Forgejo on a no-KYC VPS

Run your own GitHub-style git server with issues, PRs, CI, and packages. Anonymous signup, no email required, no KYC. Pay with crypto or card, full root, no logs.

Deploy Gitea VPS From $15.59/mo · 2 GB RAM minimum

Quick start: Gitea on Servury via Docker

Tested on Ubuntu 24. Pick a 2 GB+ plan, deploy, SSH in.

# 1. Install Docker
curl -fsSL https://get.docker.com | sh

# 2. Run Gitea (or swap image for codeberg.org/forgejo/forgejo:latest)
docker volume create gitea_data
docker run -d --name gitea --restart unless-stopped \
  -p 3000:3000 -p 222:22 \
  -v gitea_data:/data \
  -e USER_UID=1000 -e USER_GID=1000 \
  gitea/gitea:latest

# 3. Open http://YOUR_SERVER_IP:3000, run install wizard
#    Pick SQLite for personal, Postgres for teams
# 4. Put Caddy in front for HTTPS:
#    git.yourdomain.com {
#      reverse_proxy localhost:3000
#    }
# 5. Push your first repo

Why self-host Gitea or Forgejo

Private by default

Your code lives on your server, not Microsoft's. No Copilot training, no leaks via account compromise, no DMCA exposure.

Unlimited private repos & users

No GitHub seat fees, no GitLab Premium licenses. Add the whole team for one fixed VPS price.

Lightweight

Single Go binary, ~150 MB RAM. Way lighter than self-hosted GitLab (which wants 8+ GB just to start).

Built-in Actions / CI

Gitea Actions and Forgejo Actions both speak the GitHub Actions YAML format. Reuse existing workflows. Add an Act runner on the same VPS.

Issues, PRs, wikis, packages

Full GitHub-style workflow: issue tracking, code review, project boards, releases, container/npm/pypi registries.

Forgejo is community-led

Forgejo is the Codeberg-led fork of Gitea. Same UX, fully copyleft, governance owned by the community. Pick it if you prefer pure-FOSS governance.

Frequently asked questions

Should I pick Gitea or Forgejo?

Functionally near-identical, both speak the same APIs and webhooks. Gitea is the upstream, with a commercial sponsor (Gitea Ltd). Forgejo is a community-governed fork hosted by Codeberg. If governance matters to you, pick Forgejo. If you want the original, pick Gitea. Migration between them is essentially free.

How much RAM do I need?

Gitea/Forgejo itself runs on 256 MB. The reason 2 GB is recommended is to leave headroom for CI runners, Postgres if you switch from SQLite, and Docker for builds. A small team is fine on 2 GB; large teams or heavy CI want 4-8 GB.

Can I run GitHub Actions workflows here?

Yes. Both projects ship Actions support that consumes GitHub-flavored YAML. Install act_runner on the VPS (or a separate one) and your existing actions/checkout, actions/setup-node, etc. work mostly unchanged.

How do I migrate from GitHub?

Built-in mirror import: paste a GitHub URL and personal token, Gitea pulls the repo, issues, PRs, releases, wikis. You can keep GitHub mirrored for redundancy too.

Is it secure to expose to the public internet?

Yes, with sensible config: HTTPS via Caddy, fail2ban for SSH on port 222, force 2FA, disable signups. Many large communities (Codeberg, NixOS forks) run public Forgejo at scale.

Can I use SSH for git push/pull?

Yes. The Docker template above maps host port 222 to the container's SSH (so it does not conflict with the host's sshd on 22). Add your public key in user settings.

What about LFS for big files?

Built-in. Large files go to a separate path, with optional S3-compatible backend if you outgrow local disk.

Does Servury log my git traffic?

No. No application-level logging on customer servers. Anonymous signup, crypto/card payment, no logs.