Salut les Belginuxiens et les curieux du self-hosting ! 👋
Aujourd'hui, on va parler d'un outil qui pourrait bien devenir votre nouveau meilleur ami pour héberger vos précieux projets Git : Forgejo !
Imaginez un peu : avoir la puissance d'une plateforme de gestion de code robuste, entièrement sous votre contrôle, sans dépendre des géants du web.
Ça vous tente ? Alors, embarquez avec moi pour découvrir Forgejo !
⚡ Caractéristiques
Forgejo, C'est quoi ce truc encore, Chat ?
Forgejo, c'est une forge logicielle auto-hébergée, communautaire et open source.
Pour faire simple, c'est un endroit où vous pouvez stocker, gérer et collaborer sur vos projets de code en utilisant Git. Pensez-y comme à votre propre GitHub ou GitLab, mais qui tourne sur votre serveur, chez vous ou dans un coin de votre réseau.
Forgejo est né d'une volonté de la communauté de créer une alternative véritablement libre et indépendante.
C'est un fork de Gitea, mais avec une gouvernance communautaire claire et une vision axée sur les besoins de ses utilisateurs.
🆚 Forgejo VS. les autres : match amical
Comparons rapidement Forgejo avec quelques concurrents bien connus :
Fonctionnalité | Forgejo | GitHub | GitLab | Gitea |
---|---|---|---|---|
Hébergement | Auto-hébergé (votre serveur) | Hébergé (cloud) | Auto-hébergé ou Hébergé (cloud) | Auto-hébergé (votre serveur) |
Open Source | Oui (AGPL-3.0) | Partiellement (certaines fonctionnalités) | Oui (MIT) | Oui (MIT) |
Contrôle | Total | Limité | Important (pour l'auto-hébergement) | Total |
Confidentialité | Maîtrisée par vous | Dépend de la politique de GitHub | Maîtrisée (pour l'auto-hébergement) | Maîtrisée par vous |
Fonctionnalités | Pull Requests, Issues, Wikis, Projets, etc. | Très riche, Actions, Packages, etc. | Très riche, CI/CD intégré, Packages, etc. | Pull Requests, Issues, Wikis, Projets, etc. |
Complexité | Relativement simple | Modérément complexe | Complexe (surtout la version complète) | Relativement simple |
Communauté | Croissante, axée sur l'indépendance | Très large, orientée entreprise et open source | Large, orientée entreprise et développement complet | Active, similaire à Forgejo |
En bref :
- GitHub et GitLab sont des plateformes cloud très complètes, idéales pour les grandes équipes et les projets complexes, mais vous dépendez de leur infrastructure et de leurs politiques.
- Gitea est un excellent choix open source et auto-hébergé, très similaire à Forgejo, avec une simplicité appréciable. Forgejo se distingue par sa gouvernance communautaire plus affirmée.
- Forgejo se positionne comme une alternative libre, auto-hébergée et communautaire, offrant un bon équilibre entre fonctionnalités et simplicité, avec un contrôle total sur vos données. C'est un peu comme choisir une bière artisanale locale : vous savez d'où ça vient et c'est fait avec passion ! 😉
💾 Installation
Prérequis
Avant de commencer, assurez-vous d’avoir :
Étapes d'Installation
Pour installer Forgejo sans vous arracher les cheveux, Docker est votre ami !
Allez c'est parti , sortez votre plus beau Shell !
- Créez un dossier pour votre installation Forgejo à la racine du dossier où vous installez habituellement vos applications :
mkdir forgejo
- Rendez-vous dans le dossier :
cd forgejo
- Créez votre compose.yml dans le dossier ou vous comptez installer Forgejo :
sudo nano compose.yml
- Collez ça dedans :
version: '3.8'
services:
db:
image: postgres:15-alpine
container_name: forgejo-db
volumes:
- forgejo_db_data:/var/lib/postgresql/data
environment:
POSTGRES_USER: ${DATABASE_USER}
POSTGRES_PASSWORD: ${DATABASE_PASSWORD}
POSTGRES_DB: ${DATABASE_NAME}
restart: unless-stopped
healthcheck:
test: ["CMD-SHELL", "pg_isready -U ${DATABASE_USER} -d ${DATABASE_NAME}"]
interval: 5s
timeout: 5s
retries: 5
start_period: 10s
forgejo:
image: codeberg.org/forgejo/forgejo:latest
container_name: forgejo
depends_on:
db:
condition: service_healthy
ports:
- "3000:3000" # Port pour l'interface web
- "2222:22" # Port pour SSH (optionnel)
volumes:
- forgejo_data:/data
- ./config/app.ini:/etc/forgejo/app.ini
environment:
DATABASE_TYPE: ${DATABASE_TYPE}
DATABASE_HOST: db
DATABASE_PORT: ${DATABASE_PORT}
DATABASE_USER: ${DATABASE_USER}
DATABASE_PASSWORD: ${DATABASE_PASSWORD}
DATABASE_NAME: ${DATABASE_NAME}
ROOT_URL: ${ROOT_URL}
LFS_ENABLED: ${LFS_ENABLED}
OFFLINE_MODE: ${OFFLINE_MODE}
restart: unless-stopped
volumes:
forgejo_db_data:
forgejo_data:
- Créez votre fichier .env :
nano .env
- Collez ça dedans :
DATABASE_TYPE=postgres
DATABASE_HOST=db
DATABASE_PORT=5432
DATABASE_USER=forgejo
DATABASE_PASSWORD=VotreMotDePasseSuperSecurise
DATABASE_NAME=forgejo
ROOT_URL=https://votre-domaine.be
LFS_ENABLED=true
OFFLINE_MODE=false
- DATABASE_PASSWORD=VotreMotDePasseSuperSecurise => Remplacez VotreMotDePasseSuperSecurise par un mot de passe fort.
- ROOT_URL=https://votre-domaine.be => Remplacez https://forgejo.mondomaine.com par votre domaine.
On va déployer l'application :
docker compose up -d
Docker va télécharger les images nécessaires et démarrer Forgejo et sa base de données en arrière-plan.
🔧 Terminer l'installation
Ouvrez votre navigateur et rendez-vous à l'adresse que vous avez définie dans la variable ROOT_URL de votre fichier .env (par exemple: https://forgejo.mondomaine.com).
Configuration de l'instance
Voici la configuration type que je peux vous proposer :

- Titre du site => Nommez votre site.
- Slogan de l'instance => Ajoutez un slogan.
- Domaine du serveur => Ajoutez votre domaine, sans https.
- URL de base => Ajoutez l'URL complète de votre instance.
Les paramètres serveurs
Complétez comme ceci :

- Domaine pour les courriels cachés => Le nom de domaine qui cache votre vraie adresse email.
Configuration du serveur mail
Si vous avez votre propre service mail, vous avez les informations nécessaires à entrer ci-dessous.
Mais vous pouvez également utiliser les serveurs mail de Google, Outlook, Infomaniak,.. Jetez un œil ici pour avoir les paramètres nécessaires :


- Hôte SMTP => Indiquez le serveur SMTP.
- Port SMTP => Indiquez le port du serveur SMTP.
- Envoyez les courriels en tant que => Indiquez votre adresse mail par exemple ou votre nom.
- Utilisateur SMTP => Indiquez l'adresse e-mail avec laquelle seront envoyé les mails.
- Mot de passe SMTP => Indiquez le mot de passe de l'adresse e-mail.
Le compte Administrateur
Configurez votre compte administrateur :

- Nom d'utilisateur administrateur => Choissez un nom d'utilisateur adminsitrateur.
- Courriel => Indiquez votre adresse mail.
- Mot de passe => Choisissez un mot de passe fort.
- Confirmez le mot de passe => Confirmez votre mot de passe.
Et voila, la configuration est terminée !

Si cela vous tente dans un prochain article je pourrais vous présenter quelques fonctionalitées / principes d'utilisation 😉