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 -
apt update && apt full-upgrade -y
apt install wget apt-transport-https
wget --content-disposition "https://code.forgejo.org/forgejo-contrib/-/packages/debian/forgejo-deb-repo/0-0/files/10103"
apt install ./forgejo-deb-repo_0-0_all.deb
apt update
apt full-upgrade -y
- 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
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
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; } }
systemctl restart nginx