Zuhause / Guides / Gitea

Dein eigener Git Server mit Gitea

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.

1. Installieren Sie Docker

apt update && apt install -y docker.io docker-compose-v2 git
systemctl enable --now docker

Vollständiger Walkthrough inklusive Compose Basics: Docker Guide.

2. Compose-Datei

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.

3. HTTPS mit Caddy

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.

4. Push-Code

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.

5. Backups, die tatsächlich wiederherstellen

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.

Schnelle Antworten

Wie viel RAM braucht Gitea?

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.

Kann ich Repositories von GitHub importieren?

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.

Ist mein Code auf einem VPS sicher?

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.

Related