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.
apt update && apt install -y docker.io docker-compose-v2 git
systemctl enable --now docker
Passage complet incluant les bases Compose: Guide Docker.
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.
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.
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.
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.
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.
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.
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é.