Vue normale

Reçu aujourd’hui — 16 juillet 2025

Comment installer Forgejo (Gitea fork) sur Debian 12

Par :fred
16 juillet 2025 à 11:28

Un petit mémo sur comment installer Forgejo sur Debian 12 en utilisant les paquets officiels.
La procédure repose sur le système de paquets APT pour simplifier l’installation, la mise à jour et l’intégration avec systemd.
Elle permet ainsi de déployer rapidement une forge Git auto-hébergée.

Forgejo

Forgejo est un logiciel libre sous licence MIT, léger, dérivé de Gitea, qui permet de gérer facilement ses dépôts GIT, des tickets, requêtes de fusion et de la documentation.

Son objectif est de fournir une alternative communautaire, ouverte et éthique pour l’hébergement collaboratif de code, avec une interface web légère.

Installation de Forgejo sur Debian 12

  • Basculer sur le compte root :
su -
  • Mettre à jour le système :
  • apt update && apt full-upgrade -y
  • Installer les dépendances pour APT via HTTPS :
  • apt install wget apt-transport-https
  • Télécharger Forgejo :
  • wget --content-disposition "https://code.forgejo.org/forgejo-contrib/-/packages/debian/forgejo-deb-repo/0-0/files/10103"
  • Installer le paquet forgejo-deb-repo_0-0_all.deb via apt :
  • apt install ./forgejo-deb-repo_0-0_all.deb
  • Rafraîchir la liste des paquets :
  • apt update
  • Mettre à jour les paquets :
  • apt full-upgrade -y
  • Choisir la variante de Forgejo à installer :
    • Le dépôt propose 2 paquets :
      • Version avec sqlite (version choisie ici) :
      apt install forgejo-sqlite
    • Version avec base de données PostgreSQL ou MariaDB:
    apt install forgejo
  • Une fois installé, vérifier le statut du service :
    systemctl status forgejo
    ● forgejo.service - Forgejo (Beyond coding. We forge.)
         Loaded: loaded (/lib/systemd/system/forgejo.service; enabled; preset: enabled)
         Active: active (running) since Wed 2025-07-16 11:08:18 CEST; 3s ago
       Main PID: 2899 (forgejo)
          Tasks: 10 (limit: 2301)
         Memory: 81.2M
            CPU: 513ms
         CGroup: /system.slice/forgejo.service
                 └─2899 /usr/bin/forgejo web --config /etc/forgejo/app.ini
    
    juil. 16 11:08:18 forgejo forgejo[2899]: 2025/07/16 11:08:18 cmd/web.go:111:showWebStartupMessage() [I] Forgejo version: 7.0.15+gitea-1.21.11 built with GNU Make 4.3, go1.23.9 : sqlite, sqlite_unlock_no>
    juil. 16 11:08:18 forgejo forgejo[2899]: 2025/07/16 11:08:18 cmd/web.go:112:showWebStartupMessage() [I] * RunMode: prod
    juil. 16 11:08:18 forgejo forgejo[2899]: 2025/07/16 11:08:18 cmd/web.go:113:showWebStartupMessage() [I] * AppPath: /usr/bin/forgejo
    juil. 16 11:08:18 forgejo forgejo[2899]: 2025/07/16 11:08:18 cmd/web.go:114:showWebStartupMessage() [I] * WorkPath: /var/lib/forgejo
    juil. 16 11:08:18 forgejo forgejo[2899]: 2025/07/16 11:08:18 cmd/web.go:115:showWebStartupMessage() [I] * CustomPath: /var/lib/forgejo/custom
    juil. 16 11:08:18 forgejo forgejo[2899]: 2025/07/16 11:08:18 cmd/web.go:116:showWebStartupMessage() [I] * ConfigFile: /etc/forgejo/app.ini
    juil. 16 11:08:18 forgejo forgejo[2899]: 2025/07/16 11:08:18 cmd/web.go:117:showWebStartupMessage() [I] Prepare to run install page
    juil. 16 11:08:18 forgejo forgejo[2899]: 2025/07/16 11:08:18 cmd/web.go:304:listen() [I] Listen: http://0.0.0.0:3000
    juil. 16 11:08:18 forgejo forgejo[2899]: 2025/07/16 11:08:18 cmd/web.go:308:listen() [I] AppURL(ROOT_URL): http://localhost:3000/
    juil. 16 11:08:18 forgejo forgejo[2899]: 2025/07/16 11:08:18 ...s/graceful/server.go:50:NewServer() [I] Starting new Web server: tcp:0.0.0.0:3000 on PID: 2899
    
  • Changer le port d’écoute de Forgejo

    Ici, le serveur Forgejo est installé sur un réseau local et n’est pas directement exposé à Internet. Son port d’écoute restera le port par défaut, 3000. Cependant, grâce à Nginx, il est possible de le rendre accessible sur un autre port ; dans cet exemple, ce sera le port 80 pour l’accès à l’interface web.

    • Installer Nginx :
    apt install nginx
  • Exemple minimal de reverse proxy Nginx en écoute sur le port 80 et proxy-passer sur 3000 en local :
  • nano /etx/nginx/sites-enabled/forgejo
    server {
        listen 80;
        server_name forgejo.domaine.tld;
    
        location / {
            proxy_pass http://localhost:3000;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
        }
    }
    
  • Relancer le service Nginx :
  • systemctl restart nginx
  • Test accès de l’interface web de Forgejo et pour finaliser l’installation de Forgejo, vérifier les information cliquer sur le bouton « Installer Forgejo : :

  • Une fois l’instllation terminée, creer un premier utilisateur en cliquant sur « Enregistrement » :
  • Renseigner les champs et cliquer sur « Créer un compte » :
  • Ressource

    ❌