Hosting your code on someone else's platform means their rules, their outages, their AI training on your repositories, and their decision if an account gets flagged. Gitea is a lightweight, self-hosted Git forge — repos, issues, pull requests, wiki, webhooks — that runs on a server you control. It's small enough to run anywhere, quick to set up with Docker, and you can pay for the server in crypto without KYC.
What Gitea needs
- A dedicated IPv4, a domain and HTTPS. You clone over
https://git.yourdomain.comor git SSH, so you need a domain, valid TLS and inbound ports — a dedicated-IP plan. NAT plans don't take inbound. Nano-IP or Small-IP is plenty. - Modest disk sized to your repos. Gitea itself is tiny; the disk holds your Git history and artifacts.
- Very light RAM/CPU. Gitea is written in Go and runs comfortably on a small instance.
Set it up (Ubuntu 24.04, Docker)
# docker-compose.yml — Gitea + PostgreSQL (SSH git on host 2222, web behind TLS proxy)
services:
server:
image: gitea/gitea:latest
restart: always
environment:
GITEA__database__DB_TYPE: postgres
GITEA__database__HOST: db:5432
GITEA__database__NAME: gitea
GITEA__database__USER: gitea
GITEA__database__PASSWD: change-me-strong
volumes: ["/srv/gitea:/data"]
ports:
- "127.0.0.1:3000:3000" # web (proxied by Caddy)
- "2222:22" # git over SSH
depends_on: [db]
db:
image: postgres:16-alpine
restart: always
environment:
POSTGRES_USER: gitea
POSTGRES_PASSWORD: change-me-strong
POSTGRES_DB: gitea
volumes: ["/srv/gitea-db:/var/lib/postgresql/data"]
Put a TLS reverse proxy in front of the web UI:
# TLS + reverse proxy (dedicated IPv4 + domain + inbound 443); git SSH stays on 2222
apt install -y caddy
echo 'git.yourdomain.com { reverse_proxy 127.0.0.1:3000 }' > /etc/caddy/Caddyfile
systemctl restart caddy && ufw allow 80,443,2222/tcp
Open https://git.yourdomain.com, finish the first-run setup, add your SSH key, and push your first repo — hosting you own.
Make it yours
- Issues, pull requests, wiki, releases — the workflow you expect, self-hosted.
- Webhooks + Actions: fire a self-hosted CI runner on push (see the runner guide below).
- Organizations and fine-grained access — no seat fees, unlimited private repos.
- Keep Postgres on localhost; expose only 443 (web) and your git-SSH port.
Why EQVPS for Gitea
- Dedicated IPv4 from $8/mo, domain + HTTPS friendly, all ports, self-service rDNS.
- EU locations (Germany, Finland) — clean routes, real data-protection law.
- No KYC, crypto payment. Email to register, USDC/USDT to pay — fitting for code that stays yours.
- Root in ~60 seconds, NVMe. Bring up the stack, add Caddy, and your private Git server is live.
Add a self-hosted CI runner → · Anonymous VPS hosting explained →
Comments
No comments yet. Be the first.