Voici un guide pas à pas pour installer Gitea sur Debian 13 avec PostgreSQL comme base de données, et configurer un reverse-proxy (par ex. Traefik ou Nginx) pour servir Gitea.
1. Pré-requis
-
Un serveur Debian 13 à jour.
sudo apt update && sudo apt upgrade -y -
Installer Git, et éventuellement d’autres dépendances.
sudo apt install -y git ca-certificates -
Un nom de domaine
git.abonnel.frpointant vers votre serveur (DNS A ou AAAA). -
Assurez-vous que le port 80 et/ou 443 sont ouverts sur le serveur (pour le proxy).
-
Installer PostgreSQL.
2. Installer PostgreSQL et créer base & utilisateur
-
Installer PostgreSQL (Debian 13 inclut postgresql dans ses dépôts).
sudo apt install -y postgresql postgresql-contrib -
Passer à l’utilisateur postgres et créer la base + utilisateur pour Gitea :
sudo -i -u postgres psql CREATE DATABASE gitea WITH ENCODING 'UTF8' TEMPLATE template0; CREATE USER gitea WITH PASSWORD 'votre_mot_de_passe_sécurisé'; GRANT ALL PRIVILEGES ON DATABASE gitea TO gitea; \q exitCes commandes sont conformes à la documentation Gitea pour PostgreSQL. (Gitea Documentation)
-
Vérifier que PostgreSQL fonctionne :
sudo systemctl status postgresql -
(Optionnel) Modifier le fichier
pg_hba.confsi vous voulez autoriser certaines connexions supplémentaires (ex: accès réseau).
3. Installer Gitea
-
Créer un utilisateur système qui va exécuter Gitea :
sudo adduser --system --shell /bin/bash --gecos 'Git Version Control' --group --disabled-password --home /home/git git -
Créer les dossiers de travail :
sudo mkdir -p /var/lib/gitea/{custom,data,log} sudo chown -R git:git /var/lib/gitea/ sudo chmod -R 750 /var/lib/gitea/ sudo mkdir /etc/gitea sudo chown root:git /etc/gitea sudo chmod 770 /etc/gitea -
Télécharger le binaire Gitea :
wget -O gitea https://dl.gitea.com/gitea/1.24.7/gitea-1.24.7-linux-amd64 chmod +x gitea sudo mv gitea /usr/local/bin/gitea(Vérifiez la version la plus récente sur le site officiel) (Gitea Documentation)
-
Créer un fichier de service systemd pour Gitea. Exemple minimal (
/etc/systemd/system/gitea.service) :[Unit] Description=Gitea (Git with a cup of tea) After=network.target postgresql.service [Service] User=git Group=git WorkingDirectory=/var/lib/gitea/ ExecStart=/usr/local/bin/gitea web --config /etc/gitea/app.ini Restart=always Environment=USER=git HOME=/var/lib/gitea GITEA_WORK_DIR=/var/lib/gitea [Install] WantedBy=multi-user.targetEnsuite :
sudo systemctl daemon-reload sudo systemctl enable --now gitea sudo systemctl status gitea
4. Configuration via l’interface web
-
Ouvrez http://votre-serveur:3000 (ou le port que Gitea utilise) dans un navigateur.
-
Dans l’assistant d’installation, choisissez PostgreSQL comme type de base de données. Entrez :
- Host :
localhost:5432(ou l’IP/port selon) - Database :
gitea - Username :
gitea - Password : celui que vous avez défini
- Host :
-
Dans le champ "Base URL", indiquez
https://git.abonnel.fr/(ou http selon votre setup). -
Complétez le reste (admin account, etc.). (James R. S. Kemp Git)
5. Configurer reverse-proxy pour git.abonnel.fr
Si vous utilisez Nginx ou Traefik (ou un autre proxy) vous devez rediriger le domaine vers Gitea.
Exemple avec Nginx :
server {
listen 80;
server_name git.abonnel.fr;
# redirection vers HTTPS (si certbot/Let’s Encrypt)
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name git.abonnel.fr;
ssl_certificate /etc/letsencrypt/live/git.abonnel.fr/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/git.abonnel.fr/privkey.pem;
location / {
proxy_pass http://127.0.0.1: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;
}
}
Cet exemple est inspiré des tutos d’installation Gitea + Nginx. (James R. S. Kemp Git)
Si vous utilisez un autre proxy (ex: Traefik ou « zoraxyproxy »), adaptez la configuration pour qu’il fasse passer git.abonnel.fr vers localhost:3000 et gère SSL.
Activer HTTPS
-
Installez
certbotou utilisez votre gestionnaire de certificats.sudo apt install -y certbot python3-certbot-nginx sudo certbot --nginx -d git.abonnel.fr -
Vérifiez que le certificat est actif et que
https://git.abonnel.frfonctionne.
6. Configuration finale dans app.ini
Après installation, vous pouvez ajuster /etc/gitea/app.ini (ou via l’interface). Exemples de réglages utiles :
-
Dans
[server]:ROOT_URL = https://git.abonnel.fr/ HTTP_PORT = 3000 SSH_PORT = 22 # ou le port SSH que vous utilisez pour Git START_SSH_SERVER = false # si vous n’utilisez pas le serveur SSH interne DOMAIN = git.abonnel.fr -
Dans
[database]:DB_TYPE = postgres HOST = 127.0.0.1:5432 NAME = gitea USER = gitea PASSWD = votre_mot_de_passe SSL_MODE = disable # ou require selon votre config -
Redémarrez Gitea après modification :
sudo systemctl restart gitea
7. Sécuriser & entretien
- Assurez-vous que seuls les ports nécessaires sont exposés (ex: 80/443 via proxy, 3000 en local si non exposé).
- Faites des sauvegardes régulières : base PostgreSQL + dossier
/var/lib/gitea/data(ou vos dépôts). - Vérifiez les logs de Gitea (souvent dans
/var/lib/gitea/log/). - Gardez Gitea et PostgreSQL à jour.
- Si vous utilisez SSH pour les repos Git, configurez correctement les clés SSH utilisateur et vérifiez que l’utilisateur
gita bien les permissions.
Commentaires
Aucun commentaire pour l'instant. Soyez le premier !
Laisser un commentaire