Alle Systeme betriebsbereit 21 akzeptierte Kryptowährungen · Monero willkommen KYC-freie Richtlinie
ChainVPS

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

# 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

PortProtokollZweck
3000TCPGitea-Web-UI und HTTP-Git — in Produktion hinter einem TLS-Reverse-Proxy (Caddy/Nginx) betreiben
222TCPGit-over-SSH (Host-Port auf Container-Port 22 gemappt) für Clone/Push per SSH-Schlüssel
443TCPHTTPS über Ihren Reverse-Proxy, sobald Domain und Zertifikat eingerichtet sind
22TCPHost-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

Leicht

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.

Mittel

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.

Hoch

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.

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.

Bereitstellen Gitea
in den nächsten 60 Sekunden.

Unlimitierte Bandbreite · DDoS inklusive · 21 Kryptowährungen · Kein KYC.