Dev · kein KYC
Gitea hosten auf einem Offshore-VPS
Betreiben Sie Ihre eigene schlanke Git-Forge auf einem No-KYC-VPS mit Kryptozahlung und halten Sie jedes Repo, jeden Issue und jede CI-Pipeline von Drittanbieter-Clouds fern.
Was es ist
Gitea ist ein selbst gehosteter Git-Dienst, geschrieben in Go — eine schlanke Alternative zu GitHub/GitLab mit Repositories, Pull Requests, Issues, Wikis, Releases und Actions (CI/CD). Es kommt als einzelne Binärdatei oder Docker-Image mit geringem Speicherbedarf und eignet sich damit ideal für Teams, die die volle Kontrolle über ihren Quellcode behalten wollen.
Warum offshore hosten
Quellcode gehört zu den sensibelsten Daten, die ein Team besitzt; wer ihn auf einem identitätslosen Offshore-VPS hostet, hält ihn außerhalb der Reichweite der großen Code-Hosting-Plattformen und ihrer Datenaufbewahrungs- und Takedown-Regeln. Zahlung in Krypto ohne KYC bedeutet, dass die Infrastruktur Ihres Projekts an keine Unternehmensidentität gebunden ist, und unlimitierte Bandbreite lässt Clones, CI-Läufe und Release-Downloads ohne böse Überraschungen bei der Abrechnung fließen.
Das Deployment
Ein funktionierendes Referenz-Setup
Kopieren Sie dies auf eine neue ChainVPS-Instanz. Ersetzen Sie die Platzhalter und starten Sie sie anschließend.
# docker-compose.yml — Gitea + PostgreSQL on Ubuntu 24.04
# 1) apt install docker.io docker-compose-v2
# 2) put this file in /opt/gitea and run: docker compose up -d
# 3) open http://SERVER_IP:3000 to finish the web installer
services:
server:
image: gitea/gitea:1.22
container_name: gitea
restart: always
environment:
- USER_UID=1000
- USER_GID=1000
- GITEA__database__DB_TYPE=postgres
- GITEA__database__HOST=db:5432
- GITEA__database__NAME=gitea
- GITEA__database__USER=gitea
- GITEA__database__PASSWD=CHANGE_ME_STRONG_DB_PW
# correct clone URLs — set to your domain once DNS is ready:
- GITEA__server__DOMAIN=git.example.com
- GITEA__server__ROOT_URL=https://git.example.com/
- GITEA__server__SSH_PORT=222
- GITEA__service__DISABLE_REGISTRATION=true
volumes:
- ./gitea:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
ports:
- "3000:3000" # web UI — front with a TLS reverse proxy in production
- "222:22" # git-over-SSH (host 222 -> container 22)
depends_on:
- db
networks:
- gitea
db:
image: postgres:16
container_name: gitea-db
restart: always
environment:
- POSTGRES_USER=gitea
- POSTGRES_PASSWORD=CHANGE_ME_STRONG_DB_PW
- POSTGRES_DB=gitea
volumes:
- ./postgres:/var/lib/postgresql/data
networks:
- gitea
networks:
gitea:
external: false
Firewall
Zu öffnende Ports
| Port | Protokoll | Zweck |
|---|---|---|
| 3000 | TCP | Gitea-Web-UI und HTTP-Git — in Produktion hinter einem TLS-Reverse-Proxy (Caddy/Nginx) betreiben |
| 222 | TCP | Git-over-SSH (Host-Port auf Container-Port 22 gemappt) für Clone/Push per SSH-Schlüssel |
| 443 | TCP | HTTPS über Ihren Reverse-Proxy, sobald Domain und Zertifikat eingerichtet sind |
| 22 | TCP | Host-SSH für die Administration — auf einem separaten Port als Giteas 222 und nur mit Schlüssel-Auth betreiben |
Richtige Dimensionierung
Welchen Plan Sie brauchen
VPS Nano/Small (1-2 vCPU, 2 GB RAM)
Einzelentwickler oder eine Handvoll Nutzer, einige Dutzend Repos, keine CI. Gitea läuft im Leerlauf bei rund 150-200 MB RAM.
VPS Pro (2-4 vCPU, 4-8 GB RAM)
Kleines Team, aktive Pull Requests, plus ein oder zwei Gitea-Actions-Runner für CI. Für große Release-Artefakte ein Storage-Volume hinzufügen.
Dedicated (oder Storage-VPS für Repos)
Viele gleichzeitige Nutzer, große Monorepos, hohe CI-Parallelität oder LFS-lastige Medien. Dedizierte CPU hält Clone-/Pack-Operationen flott; dazu einen Storage-Plan für Repo-/LFS-Daten kombinieren.
Beste Standorte: Wählen Sie einen Standort mit starkem Datenschutz — die Schweiz (CH) und Island (IS) bieten den stärksten Datenschutz für Quellcode, mit den Niederlanden (NL), Rumänien (RO), Moldau (MD) und Luxemburg (LU) als solide Offshore-Alternativen. Wählen Sie die Region, die Ihren Mitwirkenden am nächsten liegt, um die Clone-/Push-Latenz zu senken, da Git-Roundtrips latenzempfindlich sind.
Sichern Sie es ab
Hardening-Checkliste
- Port 3000 niemals ungeschützt ins Internet exponieren — Gitea hinter einen TLS-Reverse-Proxy stellen (Caddy Auto-HTTPS oder Nginx + certbot) und GITEA__server__ROOT_URL auf die https-Domain setzen, damit Clone-URLs korrekt sind.
- DISABLE_REGISTRATION=true setzen (bereits in der Compose-Datei enthalten), direkt nachdem Sie Ihr Admin-Konto erstellt haben, damit sich niemand selbst registrieren kann; Nutzer manuell oder über das Admin-Panel einladen.
- Git-over-SSH auf Port 222 belassen und den eigenen sshd des Hosts auf einem anderen Port betreiben, beide nur mit Schlüssel-Auth (PasswordAuthentication no); Gitea verwaltet seine authorized_keys intern, daher nicht manuell bearbeiten.
- 2FA für jedes Konto aktivieren und für den Admin verpflichtend machen; das DB-Passwort aus der Umgebungsvariable in ein Docker-Secret oder eine .env-Datei mit 600-Rechten verschieben.
- ./gitea (Repos, Konfiguration, LFS) sowie regelmäßig einen pg_dump der gitea-Datenbank sichern und das Image auf einen Versions-Tag (gitea/gitea:1.22) statt latest fixieren, damit Upgrades bewusst erfolgen — vor größeren Versionssprüngen die Release Notes lesen.
Bereitstellen auf
Das richtige ChainVPS-Produkt
Fragen
Hosting Gitea — FAQ
Kann ich CI/CD ohne einen separaten Dienst betreiben?
Ja. Gitea verfügt über integrierte Actions (kompatibel mit GitHub Actions). Aktivieren Sie diese und registrieren Sie anschließend einen Runner-Container (gitea/act_runner) bei Ihrer Instanz. Für echte CI-Last einen Medium-Plan oder größer verwenden, damit Builds den Webdienst nicht ausbremsen.
SQLite, MySQL oder PostgreSQL?
SQLite funktioniert für einen einzelnen, leichten Nutzer und benötigt keinen DB-Container. Für jedes Team oder Wachstumsszenario PostgreSQL wie in der Compose-Datei gezeigt verwenden — es verarbeitet Nebenläufigkeit deutlich besser und lässt sich mit pg_dump mühelos sichern.
Wie migriere ich meine Repos von GitHub/GitLab?
Das integrierte Migrationstool von Gitea importiert ein Repo per URL, einschließlich Issues, PRs, Releases und Wiki. Fügen Sie im Migrationsformular ein Token für die Quellplattform hinzu, um private Repos und Metadaten abzurufen.
Werden große Dateien (Git LFS) unterstützt?
Ja, LFS wird nativ unterstützt und unter /data gespeichert. Wenn Sie große Binärdateien oder Medien hosten, platzieren Sie ./gitea auf einem Storage-VPS-Volume und planen Sie den Speicherplatz entsprechend ein — LFS-Objekte summieren sich schnell.
Bleibt mein Code auf einem No-KYC-Host privat?
Ihre Repos liegen vollständig auf der Festplatte Ihres VPS in der von Ihnen gewählten Offshore-Jurisdiktion; nichts wird zu Dritten gespiegelt. Halten Sie die Registrierung deaktiviert, verwenden Sie HTTPS + SSH-Schlüssel, aktivieren Sie 2FA und erstellen Sie verschlüsselte Backups außerhalb des Servers für volle Kontrolle.
Mehr zum Selbst-Hosten
Weitere One-Click-Stacks
Bereitstellen Gitea
in den nächsten 60 Sekunden.
Unlimitierte Bandbreite · DDoS inklusive · 21 Kryptowährungen · Kein KYC.