Installation automatisé de Gitea
Go to file
Johnny 857c508bb4 Actualiser Readme.md 2025-12-26 11:08:43 +00:00
Install_gitea.sh Ajouter Install_gitea.sh 2025-12-26 10:49:42 +00:00
Readme.md Actualiser Readme.md 2025-12-26 11:08:43 +00:00

Readme.md

Documentation : Mise en place de Gitea sur Debian 12 (LXC)

Cette documentation détaille l'installation, la configuration et la sécurisation d'une instance Gitea. Gitea est une solution de forge Git légère, écrite en Go, parfaite pour une exécution optimisée en conteneur LXC.

1. Schéma de l'Architecture

2. Prérequis

  • Hôte : Proxmox VE avec un conteneur LXC Debian 12 (Bookworm)
  • Ressources minimales : 1 vCPU, 512 Mo RAM, 10 Go disque (ajuster selon les dépôts)
  • Privilèges : Accès root sur le conteneur
  • Réseau : Une adresse IP statique configurée

3. Installation du Système

Mise à jour et dépendances

Mettre à jour les dépôts et installer les outils nécessaires :

apt update && apt upgrade -y
apt install -y git sqlite3 curl gnupg2

Création de l'utilisateur dédié

Créer un utilisateur système git pour isoler l'exécution du service :

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

4. Déploiement du Binaire

Arborescence de fichiers

Respecter la hiérarchie standard pour faciliter les sauvegardes :

  • /usr/local/bin/gitea : Le binaire
  • /var/lib/gitea : Données, dépôts et logs
  • /etc/gitea : Fichiers de configuration
# Création des dossiers
mkdir -p /var/lib/gitea/{custom,data,log,indexers,queues}
chown -R git:git /var/lib/gitea/
chmod -R 750 /var/lib/gitea/

mkdir -p /etc/gitea
chown root:git /etc/gitea
chmod 770 /etc/gitea

Téléchargement

Récupérer la dernière version stable (exemple ici : 1.21.4) :

GITEA_VER="1.21.4"
curl -L "https://dl.gitea.com/gitea/${GITEA_VER}/gitea-${GITEA_VER}-linux-amd64" -o /usr/local/bin/gitea
chmod +x /usr/local/bin/gitea

5. Persistance et Service Systemd

Créer le fichier /etc/systemd/system/gitea.service pour gérer le cycle de vie du processus :

[Unit]
Description=Gitea (Git with a cup of tea)
After=network.target

[Service]
RestartSec=2s
Type=simple
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=/home/git GITEA_WORK_DIR=/var/lib/gitea

[Install]
WantedBy=multi-user.target

Activer le service au démarrage :

systemctl daemon-reload
systemctl enable --now gitea

6. Configuration Initiale (Interface Web)

Se rendre sur http://<IP_DU_LXC>:3000.

Paramètre Valeur recommandée
Type de base de données SQLite3
Chemin de la base /var/lib/gitea/data/gitea.db
Titre du site Votre Forge Git
Chemin racine des dépôts /home/git/gitea-repositories
Utilisateur système git
URL de base http://<IP_OU_DOMAINE>:3000/

Note : Créer le compte administrateur immédiatement via la section "Paramètres du compte administrateur" en bas de page pour éviter que le premier visiteur ne devienne admin.

7. Sécurisation Post-Installation

Une fois l'assistant web terminé, le fichier /etc/gitea/app.ini est généré. Il contient des informations sensibles.

Verrouillage des permissions

chmod 440 /etc/gitea/app.ini
chown root:git /etc/gitea/app.ini

Optimisations dans app.ini

Modifier les sections suivantes pour renforcer la sécurité :

[security]
INSTALL_LOCK = true ; Empêche de relancer l'assistant
DISABLE_GIT_HOOKS = true ; Sécurité contre l'exécution de scripts malveillants via Git

[service]
DISABLE_REGISTRATION = true ; Désactiver l'auto-inscription si usage privé
SHOW_REGISTRATION_BUTTON = false

8. Maintenance et Mise à jour

Pour mettre à jour Gitea, le processus est extrêmement simple :

  1. Stopper le service : systemctl stop gitea
  2. Télécharger le nouveau binaire et écraser l'ancien dans /usr/local/bin/gitea
  3. Rétablir les permissions : chmod +x /usr/local/bin/gitea
  4. Relancer : systemctl start gitea

9. Stratégie de Sauvegarde (Automatisation)

En tant qu'administrateur, privilégier une sauvegarde à froid (snapshot LXC via Proxmox) ou un dump via l'outil interne :

# Commande de dump à scripter en cron
su - git -c "/usr/local/bin/gitea dump -c /etc/gitea/app.ini"