Sommaire Guides / Gitea

Votre propre serveur Git avec Gitea

Gitea est un léger Service Git avec problèmes, demandes de tirage et crochet CI — tout ce que vous attendez, courir dans quelques centaines de mégaoctets. Sur un €6.5 VPS il sert toute une équipe.

1. Installer Docker

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

Passage complet incluant les bases Compose: Guide Docker.

2. Fichier Compose

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

Notez les liaisons: l'interface utilisateur web écoute uniquement sur localhost, tandis que SSH pour git push est au port 2222. Rendre le port accessible — soit ouvrir 2222 dans le pare-feu, soit servir plus tard Git sur HTTPS.

3. HTTPS avec 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 récupère automatiquement un certificat. Pointez l'enregistrement A du domaine sur le serveur d'abord, et terminez l'assistant de configuration dans le navigateur — le premier compte que vous enregistrez devient l'administrateur.

4. Code poussoir

git remote add origin ssh://[email protected]:2222/you/project.git
git push -u origin main

Ajoutez votre clé publique dans les paramètres de Gitea une fois, et chaque poussée après est sans mot de passe.

5. Sauvegardes qui effectivement restaurer

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

Les gitea dump la commande regroupe la base de données, les dépôts et la configuration en une seule archive. Copies hors site: voir Guide résiste.

Réponses rapides

Combien de RAM Gitea a besoin?

Le conteneur tourne autour de 150 à 250 Mo, PostgreSQL 100 à 200 Mo. Un serveur 2 Go est confortable pour une petite équipe; 4 Go si vous lancez également des coureurs CI ou de nombreux grands dépôts.

Puis-je importer des dépôts de GitHub ?

Oui. Dans Gitea, choisissez Nouvelle migration, collez l'URL du dépôt et copiez le code, les numéros et les requêtes. Les dépôts privés ont besoin d'un jeton d'accès GitHub.

Mon code est-il sûr sur un VPS ?

Il est aussi sûr que l'administration de votre serveur : touches SSH, pare-feu, mises à jour et sauvegardes hors site couvrent les risques réalistes. Pour beaucoup d'équipes qui est plus de contrôle que de faire confiance à un tiers avec tout.

Gitea plus PostgreSQL Buran-2 (13€/mois) avec place à côté.

Autres