← Retour
informatique

gitea, l'installation

Cédrix · 07/11/2025

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.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).

    sudo apt install -y postgresql postgresql-contrib
  2. 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
    exit

    Ces commandes sont conformes à la documentation Gitea pour PostgreSQL. (Gitea Documentation)

  3. Vérifier que PostgreSQL fonctionne :

    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 :

    sudo adduser --system --shell /bin/bash --gecos 'Git Version Control' --group --disabled-password --home /home/git git

    (Gitea Documentation)

  2. 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

    (Gitea Documentation)

  3. 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)

  4. 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.target

    Ensuite :

    sudo systemctl daemon-reload
    sudo systemctl enable --now gitea
    sudo systemctl status gitea

    (Gitea Documentation)


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
  • 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 certbot ou 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.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 :

    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.

Commentaires

Aucun commentaire pour l'instant. Soyez le premier !

Laisser un commentaire
Un code de vérification sera envoyé à votre adresse email.