Déployer un serveur Git auto-hébergé avec Gitea

Publié le 8 octobre 2025

Git
DevOps
Administration

Gitea est une plateforme légère et open-source pour héberger des dépôts Git, alternative simple à GitHub/GitLab pour l'auto-hébergement.
Dans ce guide, nous verrons comment installer Gitea sur un serveur Linux, le configurer pour la production, et assurer sa sécurité et sa maintenance.

Plan de l'article

  • Pré-requis et choix d'architecture
  • Installation de Gitea (binaire ou Docker)
  • Configuration initiale et base de données (MySQL/PostgreSQL)
  • Configuration HTTPS et reverse-proxy (Nginx/HAProxy)
  • Sauvegardes et maintenance
  • Bonnes pratiques de sécurité
  • Conclusion

Pré-requis et choix d'architecture

  • Serveur Linux (Debian/Ubuntu recommandés) avec au minimum 1 CPU, 1-2GB RAM pour petites équipes.
  • Base de données : MySQL/MariaDB ou PostgreSQL.
  • Reverse-proxy (Nginx/HAProxy) pour gérer TLS et virtual hosts.
  • Nom de domaine et certificats TLS (Let’s Encrypt).

Installation (binaire)

Télécharger la dernière version et créer un utilisateur système :

wget -O gitea https://dl.gitea.io/gitea/<VERSION>/gitea-<ARCH>
chmod +x gitea
sudo useradd --system --home /home/git --shell /bin/bash git
sudo mkdir -p /var/lib/gitea/{custom,data,log}
sudo chown -R git:git /var/lib/gitea
sudo cp gitea /usr/local/bin/gitea

Créer un service systemd /etc/systemd/system/gitea.service puis démarrer :

sudo systemctl daemon-reload
sudo systemctl enable --now gitea

Installation (Docker)

Exemple Docker Compose minimal :

version: '3'
services:
  db:
    image: mariadb:10.6
    environment:
      - MYSQL_ROOT_PASSWORD=change_me
      - MYSQL_DATABASE=gitea
      - MYSQL_USER=gitea
      - MYSQL_PASSWORD=change_me
    volumes:
      - db-data:/var/lib/mysql

  gitea:
    image: gitea/gitea:latest
    depends_on:
      - db
    environment:
      - USER_UID=1000
      - USER_GID=1000
    volumes:
      - gitea-data:/data
    ports:
      - "3000:3000"
volumes:
  db-data:
  gitea-data:

Configuration initiale

Accédez à l'interface web (http://server:3000) pour la configuration initiale : base de données, utilisateur admin, URL racine.
Configurer le reverse-proxy pour exposer Gitea sur https://git.exemple.com.


Reverse-proxy (Nginx) exemple

server {
    listen 80;
    server_name git.exemple.com;
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl;
    server_name git.exemple.com;
    ssl_certificate /etc/letsencrypt/live/git.exemple.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/git.exemple.com/privkey.pem;

    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

Sauvegardes et maintenance

  • Sauvegarder /var/lib/gitea (données) et la base de données régulièrement.
  • Mettre à jour Gitea selon le calendrier de sécurité.
  • Surveiller les métriques et logs (ex: Prometheus, Grafana, ou outils classiques).

Bonnes pratiques de sécurité

  • Utiliser HTTPS obligatoire et HSTS.
  • Restreindre l'accès SSH/HTTP si nécessaire.
  • Mettre en place des sauvegardes automatisées et tests de restauration.
  • Limiter les droits des comptes système et tenir à jour les dépendances.

Conclusion

Gitea offre une solution légère et efficace pour l'auto-hébergement de dépôts Git.
Avec une architecture soignée (base de données, reverse-proxy, sauvegardes), vous obtenez une plateforme robuste pour les équipes de développement.

Besoin d'aide sur ce sujet ?

Notre équipe d'experts est là pour vous accompagner dans vos projets.

Contactez-nous

Articles similaires qui pourraient vous intéresser