Tous les services opérationnels Devise EUR Aucun frais de mise en service Vous êtes à La Réunion ?
‹ Serveurs VPS et Docker

Gitea : héberger ses dépôts Git sur son serveur

Gitea est une forge Git libre et légère : dépôts, demandes de fusion, tickets, wiki et intégration continue, sur votre propre serveur, avec une interface proche de celle de GitHub. Il s'installe avec Docker Compose en deux conteneurs, Gitea et sa base PostgreSQL, puis se règle dans un assistant au premier lancement. Les dépôts se clonent en HTTPS par un proxy inverse, ou en SSH sur un port dédié.

Par Jonathan Dewaele · publié le

Ce guide suit la documentation d'installation avec Docker, relue le 14 octobre 2026, pour Gitea 28.1.0, la dernière version publiée le 6 octobre 2026. Il faut Docker Engine et son extension Compose.

Installer Gitea

  1. Créez un dossier et placez-vous dedans : mkdir ~/gitea && cd ~/gitea
  2. Créez le fichier compose.yaml ci-dessous. Il reprend l'exemple PostgreSQL de la documentation, avec deux changements : le port web n'est publié que sur l'adresse locale du serveur, et le mot de passe de la base est à remplacer.
  3. Lancez : docker compose up -d
  4. Vérifiez : docker compose ps
networks:
  gitea:
    external: false

services:
  server:
    image: docker.gitea.com/gitea:28.1.0
    container_name: gitea
    environment:
      - USER_UID=1000
      - USER_GID=1000
      - GITEA__database__DB_TYPE=postgres
      - GITEA__database__HOST=db:5432
      - GITEA__database__NAME=gitea
      - GITEA__database__USER=gitea
      - GITEA__database__PASSWD=un-mot-de-passe-long
    restart: always
    networks:
      - gitea
    volumes:
      - ./gitea:/data
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
    ports:
      - "127.0.0.1:3000:3000"
      - "222:22"
    depends_on:
      - db

  db:
    image: docker.io/library/postgres:18
    restart: always
    environment:
      - POSTGRES_USER=gitea
      - POSTGRES_PASSWORD=un-mot-de-passe-long
      - POSTGRES_DB=gitea
    networks:
      - gitea
    volumes:
      - ./postgres:/var/lib/postgresql

Le mot de passe doit être le même aux deux endroits. La documentation fige volontairement la version majeure de PostgreSQL : il ne migre pas ses données seul, et passer à la version suivante demande pg_upgrade ou un export suivi d'une restauration.

Terminer la configuration

L'assistant s'ouvre à la première visite de l'interface. Ouvrez-la par un tunnel SSH, ssh -L 3000:127.0.0.1:3000 admin@adresse-du-serveur, puis http://localhost:3000, ou directement par le proxy décrit plus bas.

  1. Vérifiez que l'hôte de la base de données est db, comme le précise la documentation.
  2. Réglez l'adresse publique du site (« Base URL » dans l'assistant) sur l'adresse en HTTPS que vous lui donnerez.
  3. Réglez le port SSH affiché dans les adresses de clonage sur 222.
  4. Créez le compte administrateur, puis validez.

Les libellés de l'assistant changent d'une version à l'autre ; la langue de l'interface se choisit en haut de la page.

Ouvrir Gitea en HTTPS

Gitea écoute sur le port 3000. Avec Caddy installé sur le système :

git.votre-domaine.fr {
    reverse_proxy 127.0.0.1:3000
}

La mise en place du proxy et du certificat est dans Un certificat SSL sur son VPS. Le clonage en HTTPS fonctionne alors sans autre réglage.

Cloner en SSH

Le conteneur fait tourner son propre serveur SSH, publié sur le port 222 du serveur ; le port 22 reste celui de votre connexion au serveur. Ajoutez votre clé publique dans les réglages de votre compte Gitea, puis clonez avec une adresse de la forme ssh://[email protected]:222/utilisateur/depot.git. La documentation conseille de ne changer que le côté serveur du couple de ports, jamais le port interne 22 du conteneur.

Sauvegarder

Tout vit dans deux dossiers à côté du fichier compose : gitea, qui contient les dépôts, la configuration et les pièces jointes, et postgres, la base. Arrêtez les conteneurs le temps de la copie (docker compose stop), copiez les deux dossiers hors du serveur, puis relancez avec docker compose start.

Mettre à jour

Changez l'étiquette de l'image dans compose.yaml pour la nouvelle version, après avoir lu ses notes de version, puis docker compose pull et docker compose up -d. Gitea migre sa base au démarrage : faites la sauvegarde avant. Le principe est dans Mettre à jour un conteneur Docker.

Sur un VPS Hubspace

Docker et Compose sont installés à la livraison, et le compte admin les utilise sans sudo. Le pare-feu ne laisse passer que 22, 80 et 443 depuis Internet : l'interface passe par le proxy, et le port 222 du clonage en SSH est fermé tant que vous ne l'ouvrez pas dans l'onglet « Firewalls » de l'espace client, comme le montre Ouvrir un port sur son VPS. Sans cette règle, clonez en HTTPS. Le même proxy peut servir d'autres outils sur le serveur, comme Plausible pour les statistiques de vos sites. Les tailles sont décrites sur la page des serveurs VPS.

Questions fréquentes

Gitea fait-il de l'intégration continue ?

Oui. D'après sa documentation, Gitea Actions est proche de GitHub Actions et en grande partie compatible. Gitea n'exécute pas les tâches lui-même : il les confie à un programme à part, Gitea Runner, à installer sur le même serveur ou ailleurs. Pour un dépôt resté sur GitHub, voir Déployer sur son VPS avec GitHub Actions.

Pourquoi le port 222 et pas 22 ?

Le port 22 du serveur sert déjà à votre propre connexion SSH. Le serveur SSH de Gitea, dans le conteneur, est donc publié sur un autre port du serveur.

Peut-on importer des dépôts de GitHub ?

Oui. Gitea a un formulaire de migration intégré, à l'adresse /repo/migrate de votre instance une fois connecté. Depuis GitHub, il reprend aussi les tickets et les demandes de fusion si vous indiquez votre nom d'utilisateur, d'après la page sur la migration.

Articles liés