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. ```bash sudo apt update && sudo apt upgrade -y ``` * Installer Git, et éventuellement d’autres dépendances. ```bash sudo apt install -y git ca-certificates ``` * Un nom de domaine `git.abonnel.fr` pointant 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 1. Installer PostgreSQL (Debian 13 inclut postgresql dans ses dépôts). ```bash sudo apt install -y postgresql postgresql-contrib ``` 2. Passer à l’utilisateur postgres et créer la base + utilisateur pour Gitea : ```bash 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 exit ``` Ces commandes sont conformes à la documentation Gitea pour PostgreSQL. ([Gitea Documentation][1]) 3. Vérifier que PostgreSQL fonctionne : ```bash sudo systemctl status postgresql ``` 4. (Optionnel) Modifier le fichier `pg_hba.conf` si vous voulez autoriser certaines connexions supplémentaires (ex: accès réseau). --- ## 3. Installer Gitea 1. Créer un utilisateur système qui va exécuter Gitea : ```bash sudo adduser --system --shell /bin/bash --gecos 'Git Version Control' --group --disabled-password --home /home/git git ``` ([Gitea Documentation][2]) 2. Créer les dossiers de travail : ```bash 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 ``` ([Gitea Documentation][3]) 3. Télécharger le binaire Gitea : ```bash 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][2]) 4. Créer un fichier de service systemd pour Gitea. Exemple minimal (`/etc/systemd/system/gitea.service`) : ```ini [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.target ``` Ensuite : ```bash sudo systemctl daemon-reload sudo systemctl enable --now gitea sudo systemctl status gitea ``` ([Gitea Documentation][4]) --- ## 4. Configuration via l’interface web * Ouvrez [http://votre-serveur:3000](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 * 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]) --- ## 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 : ```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][5]) 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 `certbot` ou utilisez votre gestionnaire de certificats. ```bash 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.fr` fonctionne. --- ## 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 : ```bash 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 `git` a bien les permissions. --- [1]: https://docs.gitea.com/enterprise/installation/linux?utm_source=chatgpt.com "Install on Linux | Gitea Enterprise Documentations" [2]: https://docs.gitea.com/installation/install-from-binary?utm_source=chatgpt.com "Installation from binary | Gitea Documentation" [3]: https://docs.gitea.com/1.18/installation/install-from-binary?utm_source=chatgpt.com "Installation from binary | Gitea Documentation" [4]: https://docs.gitea.com/1.20/category/installation?utm_source=chatgpt.com "Installation | Gitea Documentation" [5]: https://git.jamesrskemp.com/hosting/gitea.html?utm_source=chatgpt.com "Gitea - Git Commands by James Skemp"