Gitea ist ein Leichtgewicht Git-Service mit Problemen, Pull-Anfragen und CI-Hooks - alles, was Sie erwarten, läuft in ein paar hundert Megabyte. Auf einem €6,5 VPS dient es einem ganzen Team.
apt update && apt install -y docker.io docker-compose-v2 git
systemctl enable --now docker
Vollständiger Walkthrough inklusive Compose Basics: Docker Guide.
mkdir -p /opt/gitea && cd /opt/gitea
cat > docker-compose.yml <<'EOF'
services:
db:
image: postgres:16-alpine
restart: unless-stopped
environment:
POSTGRES_USER: gitea
POSTGRES_PASSWORD: change-me-db
POSTGRES_DB: gitea
volumes:
- ./db:/var/lib/postgresql/data
gitea:
image: gitea/gitea:1
restart: unless-stopped
depends_on: [db]
environment:
GITEA__database__DB_TYPE: postgres
GITEA__database__HOST: db:5432
GITEA__database__NAME: gitea
GITEA__database__USER: gitea
GITEA__database__PASSWD: change-me-db
volumes:
- ./data:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
ports:
- "127.0.0.1:3000:3000"
- "2222:22"
EOF
docker compose up -d
Beachten Sie die Bindungen: Die Web-Benutzeroberfläche hört nur auf localhost, während SSH für git push befindet sich auf Port 2222. Machen Sie den Port erreichbar - entweder öffnen Sie 2222 in der Firewall oder bedienen Sie Git später über HTTPS.
apt install -y caddy
cat > /etc/caddy/Caddyfile <<'EOF'
git.example.com {
reverse_proxy 127.0.0.1:3000
}
EOF
systemctl reload caddy
Caddy holt automatisch ein Zertifikat ab. Richten Sie den Domain-Eintrag zuerst auf den Server und beenden Sie den Setup-Assistenten im Browser - das erste Konto, das Sie registrieren, wird zum Administrator.
git remote add origin ssh://[email protected]:2222/you/project.git
git push -u origin main
Fügen Sie Ihren öffentlichen Schlüssel einmal in den Einstellungen von Gitea hinzu, und jeder Push danach ist passwortfrei.
docker compose exec -u git gitea gitea dump -c /data/gitea/conf/app.ini
# the dump lands in /opt/gitea/data/gitea, then ship it off-site:
restic backup /opt/gitea/data --exclude-caches
Die gitea dump Der Befehl bündelt Datenbank, Repositories und Konfiguration in einem Archiv. Off-Site-Kopien: siehe die Restic Guide.
Der Container läuft etwa 150–250 MB, PostgreSQL weitere 100–200 MB. Ein 2-GB-Server ist für ein kleines Team bequem; 4 GB, wenn Sie auch CI-Läufer oder viele große Repositorys ausführen.
Ja. Wählen Sie in Gitea Neue Migration aus, fügen Sie die Repository-URL ein und kopieren Sie Code, Probleme und Pull-Requests. Private Repositories benötigen einen GitHub-Zugriffstoken.
Es ist so sicher wie Ihre Serververwaltung: SSH-Schlüssel, Firewall, Updates und Off-Site-Dumps decken die realistischen Risiken ab. Für viele Teams ist das mehr Kontrolle, als einem Dritten mit allem zu vertrauen.
Gitea plus PostgreSQL fit Buran-2 (€13/Monat) Mit Platz zum Sparen.