Aller au contenu
Culture DevOps medium
🔐 Alerte sécurité — Incident supply chain Trivy : lire mon analyse de l'attaque

Installer Forgejo sur Ubuntu 24.04 LTS

8 min de lecture

Forgejo s’installe via un binaire statique unique : pas de Docker obligatoire, pas de dépendances système complexes. Cette procédure installe Forgejo 14.0.3 sur Ubuntu 24.04 LTS en moins de 15 minutes, avec un service systemd prêt pour la production.

Vous repartirez avec un serveur Git complet : dépôts, issues, pull requests, et Forgejo Actions — le tout consommant moins de 500 Mo de RAM pour une petite équipe.

RessourceMinimum (test)Recommandé (équipe)
CPU1 vCPU2 vCPU
RAM512 Mo2 Go
Disque10 Go50 Go +
OSUbuntu 22.04 LTSUbuntu 24.04 LTS
  1. Installer les dépendances

    Forgejo a besoin de Git et Git LFS pour gérer les dépôts.

    Fenêtre de terminal
    sudo apt update
    sudo apt install -y git git-lfs
    git --version # Doit afficher git version 2.x.x
  2. Télécharger et vérifier le binaire

    Forgejo distribue un fichier SHA256 pour chaque binaire. La vérification garantit que le téléchargement n’est pas corrompu.

    Fenêtre de terminal
    cd /tmp
    # Télécharger le binaire et sa somme de contrôle
    wget -O forgejo-14.0.3-linux-amd64 \
    https://codeberg.org/forgejo/forgejo/releases/download/v14.0.3/forgejo-14.0.3-linux-amd64
    wget -O forgejo-14.0.3-linux-amd64.sha256 \
    https://codeberg.org/forgejo/forgejo/releases/download/v14.0.3/forgejo-14.0.3-linux-amd64.sha256
    # Vérifier l'intégrité
    sha256sum -c forgejo-14.0.3-linux-amd64.sha256

    La commande doit afficher forgejo-14.0.3-linux-amd64: OK. Si vous voyez FAILED, relancez le téléchargement.

  3. Installer le binaire

    Fenêtre de terminal
    sudo cp /tmp/forgejo-14.0.3-linux-amd64 /usr/local/bin/forgejo
    sudo chmod 755 /usr/local/bin/forgejo
    # Vérification
    forgejo --version
    # Forgejo version 14.0.3+gitea-1.22.0 ...
  4. Créer l’utilisateur système git

    Forgejo tourne sous un compte système dédié. Le nom git est une convention qui permet aux utilisateurs de cloner avec git@votre-serveur:user/repo.git.

    Fenêtre de terminal
    sudo adduser --system --shell /bin/bash \
    --gecos 'Git Version Control' \
    --group --disabled-password \
    --home /home/git git
  5. Créer les répertoires

    Fenêtre de terminal
    # Répertoire de travail (données, dépôts, DB)
    sudo mkdir -p /var/lib/forgejo
    sudo chown git:git /var/lib/forgejo
    sudo chmod 750 /var/lib/forgejo
    # Répertoire de configuration
    # NOTE: chmod 770 temporaire pour que Forgejo puisse écrire app.ini à l'init
    sudo mkdir -p /etc/forgejo
    sudo chown root:git /etc/forgejo
    sudo chmod 770 /etc/forgejo
  6. Installer le service systemd

    Forgejo fournit un fichier service officiel sur son dépôt.

    Fenêtre de terminal
    sudo wget -q -O /etc/systemd/system/forgejo.service \
    https://codeberg.org/forgejo/forgejo/raw/branch/forgejo/contrib/systemd/forgejo.service
    sudo systemctl daemon-reload
    sudo systemctl enable forgejo.service
    sudo systemctl start forgejo.service

    Vérifiez que le service est démarré :

    Fenêtre de terminal
    sudo systemctl status forgejo.service
    # Active: active (running) ...
  7. Configurer via l’interface web

    Ouvrez http://<votre-ip>:3000 dans votre navigateur. Forgejo affiche l’assistant de configuration initiale.

    Paramètres à renseigner :

    ChampValeur recommandée
    Type de base de donnéesSQLite3 (petite instance) ou PostgreSQL
    Titre du siteNom de votre instance
    Répertoire racine des dépôts/var/lib/forgejo/data/forgejo-repositories
    Répertoire de travail/var/lib/forgejo
    Domaine SSHVotre IP ou nom de domaine
    Port HTTP3000
    URL racinehttp://votre-domaine:3000/

    En bas de page, créez le compte administrateur :

    Cliquez sur “Installer Forgejo”. Après quelques secondes, vous êtes redirigé vers la page d’accueil.

  8. Sécuriser les permissions après configuration

    Une fois la configuration web terminée, resserrez les droits sur /etc/forgejo :

    Fenêtre de terminal
    sudo systemctl stop forgejo.service
    sudo chmod 750 /etc/forgejo
    sudo chmod 640 /etc/forgejo/app.ini
    sudo systemctl start forgejo.service

Vérifiez les 6 points clés :

Fenêtre de terminal
# 1. Version du binaire
forgejo --version
# 2. Service systemd actif
sudo systemctl is-active forgejo.service
# 3. Port 3000 en écoute
ss -tlnp | grep 3000
# 4. Réponse HTTP
curl -o /dev/null -sw "%{http_code}" http://localhost:3000/
# Doit afficher 200
# 5. Répertoires avec les bons propriétaires
ls -la /var/lib/forgejo /etc/forgejo
# 6. Logs sans erreur
sudo journalctl -u forgejo.service --no-pager -n 20
Fenêtre de terminal
sudo journalctl -u forgejo.service -n 50 --no-pager

Les causes fréquentes :

ErreurCauseSolution
permission denied /etc/forgejoMauvais propriétairesudo chown root:git /etc/forgejo && sudo chmod 770 /etc/forgejo
address already in use :3000Port occupéss -tlnp | grep 3000 puis arrêtez le processus
error opening databaseChemin DB inexistantsudo mkdir -p /var/lib/forgejo/data && sudo chown git:git /var/lib/forgejo/data
Fenêtre de terminal
# Vérifier que Forgejo écoute bien
curl -v http://localhost:3000/
# Vérifier le pare-feu
sudo ufw status
sudo ufw allow 3000/tcp # Si UFW actif

La configuration web produit “admin is a reserved name”

Section intitulée « La configuration web produit “admin is a reserved name” »

Il s’agit d’une erreur silencieuse : Forgejo retourne HTTP 200 mais la configuration n’est pas sauvegardée. Rafraîchissez la page (la configuration est réaffichée) et choisissez un autre nom d’utilisateur administrateur.

  • Forgejo s’installe via un binaire statique unique, sans dépendances complexes
  • Le service tourne sous l’utilisateur système git (port 22 pour SSH, port 3000 pour HTTPS)
  • /etc/forgejo/app.ini est le fichier de configuration principal (protégé 640)
  • /var/lib/forgejo/ contient toutes les données : DB, repositories, LFS, avatars
  • Le nom admin est réservé — choisir un autre identifiant pour le compte administrateur
  • forgejo --version et sudo systemctl status forgejo.service sont les deux premières commandes de diagnostic

Ce site vous est utile ?

Sachez que moins de 1% des lecteurs soutiennent ce site.

Je maintiens +700 guides gratuits, sans pub ni tracing. Aujourd'hui, ce site ne couvre même pas mes frais d'hébergement, d'électricité, de matériel, de logiciels, mais surtout de cafés.

Un soutien régulier, même symbolique, m'aide à garder ces ressources gratuites et à continuer de produire des guides de qualité. Merci pour votre appui.

Abonnez-vous et suivez mon actualité DevSecOps sur LinkedIn