Actualiser Readme.md
This commit is contained in:
parent
ae47a8f7f1
commit
bed4dcb666
128
Readme.md
128
Readme.md
|
|
@ -1,8 +1,49 @@
|
||||||
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'Architecture2. PrérequisHô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èmeMise à jour et dépendancesMettre à jour les dépôts et installer les outils nécessaires :apt update && apt upgrade -y
|
```markdown
|
||||||
|
# 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 :
|
||||||
|
|
||||||
|
```bash
|
||||||
|
apt update && apt upgrade -y
|
||||||
apt install -y git sqlite3 curl gnupg2
|
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' \
|
```
|
||||||
|
|
||||||
|
### Création de l'utilisateur dédié
|
||||||
|
|
||||||
|
Créer un utilisateur système git pour isoler l'exécution du service :
|
||||||
|
|
||||||
|
```bash
|
||||||
|
adduser --system --shell /bin/bash --gecos 'Git Version Control' \
|
||||||
--group --disabled-password --home /home/git git
|
--group --disabled-password --home /home/git git
|
||||||
4. Déploiement du BinaireArborescence de fichiersRespecter 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
|
```
|
||||||
|
|
||||||
|
## 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
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Création des dossiers
|
||||||
mkdir -p /var/lib/gitea/{custom,data,log,indexers,queues}
|
mkdir -p /var/lib/gitea/{custom,data,log,indexers,queues}
|
||||||
chown -R git:git /var/lib/gitea/
|
chown -R git:git /var/lib/gitea/
|
||||||
chmod -R 750 /var/lib/gitea/
|
chmod -R 750 /var/lib/gitea/
|
||||||
|
|
@ -10,10 +51,24 @@ chmod -R 750 /var/lib/gitea/
|
||||||
mkdir -p /etc/gitea
|
mkdir -p /etc/gitea
|
||||||
chown root:git /etc/gitea
|
chown root:git /etc/gitea
|
||||||
chmod 770 /etc/gitea
|
chmod 770 /etc/gitea
|
||||||
TéléchargementRécupérer la dernière version stable (exemple ici : 1.21.4) :GITEA_VER="1.21.4"
|
```
|
||||||
curl -L "[https://dl.gitea.com/gitea/$](https://dl.gitea.com/gitea/$){GITEA_VER}/gitea-${GITEA_VER}-linux-amd64" -o /usr/local/bin/gitea
|
|
||||||
|
### Téléchargement
|
||||||
|
|
||||||
|
Récupérer la dernière version stable (exemple ici : 1.21.4) :
|
||||||
|
|
||||||
|
```bash
|
||||||
|
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
|
chmod +x /usr/local/bin/gitea
|
||||||
5. Persistance et Service SystemdCréer le fichier /etc/systemd/system/gitea.service pour gérer le cycle de vie du processus :[Unit]
|
```
|
||||||
|
|
||||||
|
## 5. Persistance et Service Systemd
|
||||||
|
|
||||||
|
Créer le fichier `/etc/systemd/system/gitea.service` pour gérer le cycle de vie du processus :
|
||||||
|
|
||||||
|
```ini
|
||||||
|
[Unit]
|
||||||
Description=Gitea (Git with a cup of tea)
|
Description=Gitea (Git with a cup of tea)
|
||||||
After=network.target
|
After=network.target
|
||||||
|
|
||||||
|
|
@ -29,16 +84,69 @@ Environment=USER=git HOME=/home/git GITEA_WORK_DIR=/var/lib/gitea
|
||||||
|
|
||||||
[Install]
|
[Install]
|
||||||
WantedBy=multi-user.target
|
WantedBy=multi-user.target
|
||||||
Activer le service au démarrage :systemctl daemon-reload
|
```
|
||||||
|
|
||||||
|
Activer le service au démarrage :
|
||||||
|
|
||||||
|
```bash
|
||||||
|
systemctl daemon-reload
|
||||||
systemctl enable --now gitea
|
systemctl enable --now gitea
|
||||||
6. Configuration Initiale (Interface Web)Se rendre sur http://<IP_DU_LXC>:3000.ParamètreValeur recommandéeType de base de donnéesSQLite3Chemin de la base/var/lib/gitea/data/gitea.dbTitre du siteVotre Forge GitChemin racine des dépôts/home/git/gitea-repositoriesUtilisateur systèmegitURL de basehttp://<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-InstallationUne fois l'assistant web terminé, le fichier /etc/gitea/app.ini est généré. Il contient des informations sensibles.Verrouillage des permissionschmod 440 /etc/gitea/app.ini
|
```
|
||||||
|
|
||||||
|
## 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
|
||||||
|
|
||||||
|
```bash
|
||||||
|
chmod 440 /etc/gitea/app.ini
|
||||||
chown root:git /etc/gitea/app.ini
|
chown root:git /etc/gitea/app.ini
|
||||||
Optimisations dans app.iniModifier les sections suivantes pour renforcer la sécurité :[security]
|
```
|
||||||
|
|
||||||
|
### Optimisations dans app.ini
|
||||||
|
|
||||||
|
Modifier les sections suivantes pour renforcer la sécurité :
|
||||||
|
|
||||||
|
```ini
|
||||||
|
[security]
|
||||||
INSTALL_LOCK = true ; Empêche de relancer l'assistant
|
INSTALL_LOCK = true ; Empêche de relancer l'assistant
|
||||||
DISABLE_GIT_HOOKS = true ; Sécurité contre l'exécution de scripts malveillants via Git
|
DISABLE_GIT_HOOKS = true ; Sécurité contre l'exécution de scripts malveillants via Git
|
||||||
|
|
||||||
[service]
|
[service]
|
||||||
DISABLE_REGISTRATION = true ; Désactiver l'auto-inscription si usage privé
|
DISABLE_REGISTRATION = true ; Désactiver l'auto-inscription si usage privé
|
||||||
SHOW_REGISTRATION_BUTTON = false
|
SHOW_REGISTRATION_BUTTON = false
|
||||||
8. Maintenance et Mise à jourPour mettre à jour Gitea, le processus est extrêmement simple :Stopper le service : systemctl stop gitea.Télécharger le nouveau binaire et écraser l'ancien dans /usr/local/bin/gitea.Rétablir les permissions : chmod +x /usr/local/bin/gitea.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
|
```
|
||||||
|
|
||||||
|
## 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 :
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Commande de dump à scripter en cron
|
||||||
su - git -c "/usr/local/bin/gitea dump -c /etc/gitea/app.ini"
|
su - git -c "/usr/local/bin/gitea dump -c /etc/gitea/app.ini"
|
||||||
|
```
|
||||||
Loading…
Reference in New Issue