Pourquoi self-héberger Gitea sur un VPS
Gitea consomme à peine 200 à 300 Mo de RAM au repos, ce qui en fait l'une des forges Git les plus efficaces à auto-héberger. Sur un VPS, vous gardez la maîtrise totale de votre code source : aucune donnée n'est analysée par un tiers, aucune limite arbitraire sur le nombre de dépôts privés ou de collaborateurs, et aucun coût qui grimpe avec votre équipe. Pour une agence ou un développeur indépendant au Maroc, un VPS unique peut héberger l'ensemble des projets clients avec des permissions cloisonnées par organisation. Gitea intègre nativement un CI/CD compatible avec les workflows GitHub Actions (Gitea Actions), un registre de paquets et un éditeur web, ce qui couvre la quasi-totalité d'un cycle de développement sans dépendance externe.
Bénéfices concrets d'un Gitea auto-hébergé
- Empreinte mémoire minime : tourne confortablement sur un VPS 2 Go de RAM même avec plusieurs dizaines d'utilisateurs.
- Dépôts privés illimités sans facturation par siège, contrairement aux offres SaaS.
- Gitea Actions intégré pour exécuter vos pipelines CI/CD sans service externe.
- Registre de paquets (Docker, npm, Composer, Maven) hébergé sur la même instance.
- Authentification fine : LDAP, OAuth2, jetons d'accès personnels et clés SSH par utilisateur.
- Sauvegarde triviale : tout tient dans un volume de données et une base de données.
Prérequis matériels et logiciels
Gitea est très frugal. Pour une petite équipe (jusqu'à 20 utilisateurs), un VPS avec 2 vCPU et 2 Go de RAM suffit largement ; comptez 4 Go si vous activez Gitea Actions avec des runners locaux qui compilent du code. Prévoyez au moins 20 à 40 Go de stockage SSD selon la taille de vos dépôts. Côté logiciel : Docker Engine et le plugin Docker Compose installés, un nom de domaine (ou sous-domaine type git.votredomaine.ma) pointant vers l'IP du VPS via un enregistrement A, et le port 22 réservé au SSH du serveur — Gitea exposera son propre SSH sur un autre port pour éviter le conflit.
Déployer Gitea avec Docker et SSL
Préparer le VPS et Docker
Connectez-vous en SSH, mettez à jour le système puis installez Docker et le plugin Compose. Créez un répertoire dédié : mkdir -p /opt/gitea && cd /opt/gitea. Créez aussi un volume de données qui survivra aux mises à jour du conteneur.
Rédiger le docker-compose.yml
Définissez deux services : gitea (image gitea/gitea:latest) et une base postgres:16. Montez ./gitea:/data pour la persistance, fixez USER_UID/USER_GID à 1000, et mappez le SSH de Gitea sur le port hôte 2222 : "2222:22". Laissez le port HTTP 3000 interne, il sera servi par le reverse proxy.
Lancer les conteneurs
Exécutez docker compose up -d puis docker compose logs -f gitea pour suivre l'initialisation. Vérifiez que la connexion à PostgreSQL réussit avant de continuer.
Configurer le reverse proxy
Avec Caddy, une seule ligne suffit : git.votredomaine.ma { reverse_proxy localhost:3000 }. Caddy obtient et renouvelle automatiquement le certificat Let's Encrypt. Avec Nginx, créez un server qui proxifie vers http://127.0.0.1:3000 et utilisez certbot --nginx pour le SSL.
Finaliser l'installation web
Ouvrez https://git.votredomaine.ma, complétez l'assistant en renseignant l'URL de base HTTPS et l'hôte de la base de données (db:5432). Définissez le ROOT_URL correctement, sinon les liens de clonage seront erronés.
Sécuriser le SSH des dépôts
Configurez vos clients pour cloner via ssh://git@git.votredomaine.ma:2222/..., ou ajoutez un bloc Host dans ~/.ssh/config pour masquer le port. Désactivez l'inscription publique dans l'admin si l'instance est privée.
Activez Gitea Actions dès l'installation en ajoutant [actions] ENABLED = true dans app.ini, puis enregistrez un runner act_runner dans un conteneur séparé sur le même VPS. Limitez sa RAM via mem_limit pour qu'un build gourmand n'étouffe pas Gitea lui-même. Pour des pipelines lourds (compilation, tests d'intégration), dédiez plutôt un second VPS au runner et connectez-le au token d'enregistrement — vous gardez la forge réactive même pendant les builds.
La documentation officielle
Pour la configuration avancée et les options propres à l'outil, référez-vous à la documentation officielle de Gitea. Ce guide couvre la mise en ligne sur VPS ; la doc éditeur reste la référence pour les réglages fins, les mises à jour majeures et les cas d'usage spécifiques.