summaryrefslogtreecommitdiff
path: root/setup-git-web-interface
diff options
context:
space:
mode:
Diffstat (limited to 'setup-git-web-interface')
-rw-r--r--setup-git-web-interface/README.md351
-rw-r--r--setup-git-web-interface/apache-config.conf70
-rw-r--r--setup-git-web-interface/checklist.md163
-rw-r--r--setup-git-web-interface/docker-compose-gitlab.yml36
-rw-r--r--setup-git-web-interface/docker-compose.yml31
-rw-r--r--setup-git-web-interface/installation-gitlab.sh120
-rw-r--r--setup-git-web-interface/installation-steps.sh95
-rw-r--r--setup-git-web-interface/nginx-config.conf50
8 files changed, 916 insertions, 0 deletions
diff --git a/setup-git-web-interface/README.md b/setup-git-web-interface/README.md
new file mode 100644
index 0000000..9d28f49
--- /dev/null
+++ b/setup-git-web-interface/README.md
@@ -0,0 +1,351 @@
+# Installation d'une interface web Git sur chillka
+
+## Objectif
+
+Installer GitLab pour gérer et visualiser les dépôts Git sur chillka, notamment pour le projet `config-files-keyvault`.
+
+## Choix : GitLab
+
+- **Avantages** : Très complet (CI/CD, issues, merge requests, wiki, etc.), interface moderne
+- **Inconvénients** : Lourd (2-4GB RAM minimum), installation plus complexe
+- **Ressources** : 2-4GB RAM, 4GB+ espace disque
+
+## Prérequis sur chillka
+
+- Accès SSH en tant que `toshiro`
+- Permissions sudo
+- **Minimum 4GB RAM disponible**
+- **Minimum 4GB espace disque libre**
+- Serveur web (Apache) - optionnel mais recommandé
+- Certificat SSL (Let's Encrypt) - pour HTTPS
+
+## Options d'installation
+
+### Option A : Installation Omnibus (Recommandé - Plus simple)
+
+L'installation Omnibus de GitLab est la méthode la plus simple et recommandée. Elle installe tout ce qui est nécessaire (PostgreSQL, Redis, etc.).
+
+### Option B : Installation via Docker
+
+Pour une installation plus isolée et facile à maintenir.
+
+## Installation Omnibus (Recommandé)
+
+### Étape 1 : Prérequis système
+
+```bash
+# Se connecter à chillka
+ssh toshiro@chillka
+
+# Mettre à jour le système
+sudo apt update && sudo apt upgrade -y
+
+# Installer les dépendances
+sudo apt install -y curl openssh-server ca-certificates tzdata perl
+```
+
+### Étape 2 : Installation de GitLab
+
+```bash
+# Ajouter le dépôt GitLab
+curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
+
+# Installer GitLab CE (Community Edition)
+sudo EXTERNAL_URL="http://chillka" apt install gitlab-ce
+
+# OU avec un domaine personnalisé
+sudo EXTERNAL_URL="https://chillka.example.com" apt install gitlab-ce
+```
+
+**Note** : L'installation peut prendre 10-15 minutes.
+
+### Étape 3 : Configuration initiale
+
+```bash
+# Reconfigurer GitLab (si nécessaire)
+sudo gitlab-ctl reconfigure
+
+# Vérifier le statut
+sudo gitlab-ctl status
+```
+
+### Étape 4 : Accès initial
+
+1. Ouvrir `http://chillka` dans un navigateur
+2. Vous serez redirigé pour définir le mot de passe root
+3. Se connecter avec :
+ - **Username** : `root`
+ - **Password** : (celui que vous venez de définir)
+
+### Étape 5 : Configuration du dépôt existant
+
+```bash
+# Sur chillka, configurer GitLab pour utiliser le répertoire existant
+sudo nano /etc/gitlab/gitlab.rb
+```
+
+Ajouter/modifier :
+```ruby
+# Chemin des dépôts Git
+git_data_dirs({
+ "default" => {
+ "path" => "/var/data/git/repositories"
+ }
+})
+
+# OU si vous voulez que GitLab gère ses propres dépôts
+# git_data_dirs({"default" => {"path" => "/var/opt/gitlab/git-data"}})
+```
+
+Puis reconfigurer :
+```bash
+sudo gitlab-ctl reconfigure
+sudo gitlab-ctl restart
+```
+
+### Étape 6 : Importer le dépôt existant
+
+1. Se connecter à GitLab (http://chillka)
+2. Créer un nouveau projet : `config-files-keyvault`
+3. **OU** importer le dépôt existant :
+ - Aller dans "New Project" > "Import project"
+ - Choisir "Repository by URL"
+ - URL : `file:///var/data/git/repositories/config-files-keyvault.git`
+
+## Installation Docker (Alternative)
+
+### Étape 1 : Prérequis
+
+```bash
+# Installer Docker si pas déjà installé
+curl -fsSL https://get.docker.com -o get-docker.sh
+sudo sh get-docker.sh
+
+# Installer Docker Compose
+sudo apt install docker-compose -y
+```
+
+### Étape 2 : Créer docker-compose.yml
+
+Voir le fichier `docker-compose-gitlab.yml` dans ce dossier.
+
+### Étape 3 : Démarrer GitLab
+
+```bash
+cd ~/gitlab
+docker-compose up -d
+```
+
+**Note** : Le premier démarrage peut prendre 5-10 minutes.
+
+### Étape 4 : Accès
+
+- Ouvrir `http://chillka:8929` (port configuré dans docker-compose)
+- Définir le mot de passe root
+
+## Configuration Apache (Reverse Proxy)
+
+Pour accéder via un domaine et HTTPS :
+
+### Étape 1 : Installer Apache et les modules nécessaires
+
+```bash
+sudo apt install -y apache2
+sudo a2enmod proxy
+sudo a2enmod proxy_http
+sudo a2enmod headers
+sudo a2enmod ssl
+sudo systemctl restart apache2
+```
+
+### Étape 2 : Configuration Apache
+
+```bash
+sudo nano /etc/apache2/sites-available/gitlab.conf
+```
+
+Contenu :
+```apache
+<VirtualHost *:80>
+ ServerName chillka.example.com # Remplacer par votre domaine
+
+ # Redirection vers HTTPS (décommenter après configuration SSL)
+ # Redirect permanent / https://chillka.example.com/
+
+ ProxyPreserveHost On
+ ProxyRequests off
+
+ <Proxy *>
+ Require all granted
+ </Proxy>
+
+ ProxyPass / http://127.0.0.1:80/
+ ProxyPassReverse / http://127.0.0.1:80/
+
+ # Headers pour GitLab
+ RequestHeader set X-Forwarded-Proto "http"
+ RequestHeader set X-Forwarded-Ssl "off"
+</VirtualHost>
+
+# Configuration HTTPS (décommenter après configuration SSL)
+# <VirtualHost *:443>
+# ServerName chillka.example.com
+#
+# SSLEngine on
+# SSLCertificateFile /etc/letsencrypt/live/chillka.example.com/fullchain.pem
+# SSLCertificateKeyFile /etc/letsencrypt/live/chillka.example.com/privkey.pem
+#
+# ProxyPreserveHost On
+# ProxyRequests off
+#
+# <Proxy *>
+# Require all granted
+# </Proxy>
+#
+# ProxyPass / http://127.0.0.1:80/
+# ProxyPassReverse / http://127.0.0.1:80/
+#
+# RequestHeader set X-Forwarded-Proto "https"
+# RequestHeader set X-Forwarded-Ssl "on"
+# </VirtualHost>
+```
+
+### Étape 3 : Activer le site
+
+```bash
+sudo a2ensite gitlab.conf
+sudo a2dissite 000-default.conf # Désactiver le site par défaut si nécessaire
+sudo apache2ctl configtest
+sudo systemctl reload apache2
+```
+
+### Étape 4 : Configurer SSL avec Let's Encrypt
+
+```bash
+sudo apt install certbot python3-certbot-apache
+sudo certbot --apache -d chillka.example.com
+```
+
+Certbot configurera automatiquement Apache pour HTTPS.
+
+## Intégration avec le dépôt existant
+
+### Option 1 : Importer le dépôt dans GitLab
+
+1. Se connecter à GitLab
+2. Créer un nouveau projet
+3. Importer depuis l'URL locale : `file:///var/data/git/repositories/config-files-keyvault.git`
+
+### Option 2 : Lier le dépôt existant
+
+```bash
+# Sur chillka, créer un lien symbolique
+sudo ln -s /var/data/git/repositories/config-files-keyvault.git \
+ /var/opt/gitlab/git-data/repositories/@hashed/.../config-files-keyvault.git
+```
+
+**Note** : Cette méthode est plus complexe. Il est recommandé d'importer le dépôt.
+
+## Mise à jour du remote local
+
+Après avoir créé/importé le dépôt dans GitLab :
+
+```bash
+# Sur votre machine Windows
+cd E:\Dev\System\config-files-keyvault
+
+# Avec HTTPS
+git remote set-url origin http://chillka/root/config-files-keyvault.git
+
+# OU avec SSH (recommandé)
+git remote set-url origin git@chillka:root/config-files-keyvault.git
+```
+
+## Commandes utiles GitLab
+
+```bash
+# Voir le statut de GitLab
+sudo gitlab-ctl status
+
+# Voir les logs
+sudo gitlab-ctl tail
+
+# Redémarrer GitLab
+sudo gitlab-ctl restart
+
+# Reconfigurer GitLab
+sudo gitlab-ctl reconfigure
+
+# Vérifier la configuration
+sudo gitlab-rake gitlab:check
+
+# Sauvegarder GitLab
+sudo gitlab-backup create
+```
+
+## Configuration recommandée
+
+### Réduire l'utilisation mémoire (si nécessaire)
+
+Éditer `/etc/gitlab/gitlab.rb` :
+
+```ruby
+# Réduire les workers
+puma['worker_processes'] = 2
+sidekiq['max_concurrency'] = 5
+
+# Réduire la mémoire PostgreSQL
+postgresql['shared_buffers'] = "256MB"
+postgresql['max_connections'] = 50
+```
+
+Puis :
+```bash
+sudo gitlab-ctl reconfigure
+sudo gitlab-ctl restart
+```
+
+## Accès
+
+- **Interface web** : `http://chillka` ou `https://chillka.example.com`
+- **SSH** : `git@chillka:root/config-files-keyvault.git`
+- **HTTPS** : `http://chillka/root/config-files-keyvault.git`
+
+## Notes importantes
+
+- GitLab nécessite **minimum 2GB RAM** (4GB recommandé)
+- L'installation Omnibus installe PostgreSQL, Redis, et tous les services nécessaires
+- Les sauvegardes sont importantes : `sudo gitlab-backup create`
+- La première configuration peut prendre du temps
+- GitLab utilise beaucoup de ressources, surveillez l'utilisation
+
+## Troubleshooting
+
+### GitLab ne démarre pas
+
+```bash
+# Vérifier les logs
+sudo gitlab-ctl tail
+
+# Vérifier les erreurs spécifiques
+sudo gitlab-ctl status
+```
+
+### Problème de mémoire
+
+```bash
+# Vérifier l'utilisation mémoire
+free -h
+
+# Réduire la configuration (voir section Configuration recommandée)
+```
+
+### Problème avec les dépôts existants
+
+```bash
+# Vérifier les permissions
+sudo chown -R git:git /var/data/git/repositories
+
+# Vérifier la configuration
+sudo gitlab-rake gitlab:check
+```
diff --git a/setup-git-web-interface/apache-config.conf b/setup-git-web-interface/apache-config.conf
new file mode 100644
index 0000000..859699d
--- /dev/null
+++ b/setup-git-web-interface/apache-config.conf
@@ -0,0 +1,70 @@
+# Configuration Apache pour GitLab
+# À placer dans /etc/apache2/sites-available/gitlab.conf
+# Puis activer avec: sudo a2ensite gitlab.conf
+
+<VirtualHost *:80>
+ ServerName chillka.example.com # Remplacer par votre domaine ou IP
+
+ # Redirection vers HTTPS (décommenter après configuration SSL)
+ # Redirect permanent / https://chillka.example.com/
+
+ ProxyPreserveHost On
+ ProxyRequests off
+
+ # Autoriser les requêtes proxy
+ <Proxy *>
+ Require all granted
+ </Proxy>
+
+ # Proxy vers GitLab
+ ProxyPass / http://127.0.0.1:80/
+ ProxyPassReverse / http://127.0.0.1:80/
+
+ # Headers pour GitLab
+ RequestHeader set X-Forwarded-Proto "http"
+ RequestHeader set X-Forwarded-Ssl "off"
+
+ # Headers supplémentaires pour GitLab
+ RequestHeader set X-Real-IP %{REMOTE_ADDR}s
+ RequestHeader set X-Forwarded-For %{REMOTE_ADDR}s
+
+ # Logs
+ ErrorLog ${APACHE_LOG_DIR}/gitlab_error.log
+ CustomLog ${APACHE_LOG_DIR}/gitlab_access.log combined
+</VirtualHost>
+
+# Configuration HTTPS (décommenter après avoir configuré SSL avec certbot)
+# <VirtualHost *:443>
+# ServerName chillka.example.com
+#
+# # SSL Configuration
+# SSLEngine on
+# SSLCertificateFile /etc/letsencrypt/live/chillka.example.com/fullchain.pem
+# SSLCertificateKeyFile /etc/letsencrypt/live/chillka.example.com/privkey.pem
+# SSLCertificateChainFile /etc/letsencrypt/live/chillka.example.com/chain.pem
+#
+# # Protocols et ciphers
+# SSLProtocol all -SSLv2 -SSLv3
+# SSLCipherSuite HIGH:!aNULL:!MD5
+#
+# ProxyPreserveHost On
+# ProxyRequests off
+#
+# <Proxy *>
+# Require all granted
+# </Proxy>
+#
+# ProxyPass / http://127.0.0.1:80/
+# ProxyPassReverse / http://127.0.0.1:80/
+#
+# # Headers pour GitLab avec HTTPS
+# RequestHeader set X-Forwarded-Proto "https"
+# RequestHeader set X-Forwarded-Ssl "on"
+# RequestHeader set X-Real-IP %{REMOTE_ADDR}s
+# RequestHeader set X-Forwarded-For %{REMOTE_ADDR}s
+#
+# # Logs
+# ErrorLog ${APACHE_LOG_DIR}/gitlab_ssl_error.log
+# CustomLog ${APACHE_LOG_DIR}/gitlab_ssl_access.log combined
+# </VirtualHost>
+
diff --git a/setup-git-web-interface/checklist.md b/setup-git-web-interface/checklist.md
new file mode 100644
index 0000000..f2853f6
--- /dev/null
+++ b/setup-git-web-interface/checklist.md
@@ -0,0 +1,163 @@
+# Checklist d'installation GitLab sur chillka
+
+## Préparation
+
+- [ ] Accès SSH à chillka en tant que `toshiro`
+- [ ] Permissions sudo sur chillka
+- [ ] Vérifier que `/var/data/git/repositories` existe
+- [ ] **Vérifier la RAM disponible (minimum 2GB, 4GB recommandé)**
+- [ ] **Vérifier l'espace disque (minimum 4GB)**
+- [ ] Vérifier la connexion internet (pour télécharger GitLab)
+
+## Installation
+
+### Option A : Installation Omnibus (Recommandé)
+
+- [ ] Copier le script `installation-gitlab.sh` sur chillka
+- [ ] Rendre le script exécutable : `chmod +x installation-gitlab.sh`
+- [ ] Exécuter le script : `./installation-gitlab.sh`
+- [ ] Attendre la fin de l'installation (10-15 minutes)
+- [ ] Vérifier que GitLab démarre : `sudo gitlab-ctl status`
+- [ ] Vérifier les logs si problème : `sudo gitlab-ctl tail`
+
+### Option B : Installation Docker
+
+- [ ] Vérifier que Docker est installé : `docker --version`
+- [ ] Vérifier que Docker Compose est installé : `docker-compose --version`
+- [ ] Copier `docker-compose-gitlab.yml` dans `~/gitlab/docker-compose.yml`
+- [ ] Adapter la configuration dans docker-compose.yml si nécessaire
+- [ ] Exécuter : `docker-compose up -d`
+- [ ] Attendre le démarrage complet (5-10 minutes)
+- [ ] Vérifier les logs : `docker-compose logs -f gitlab`
+
+## Configuration initiale
+
+- [ ] Ouvrir l'URL GitLab dans un navigateur (http://chillka ou celle configurée)
+- [ ] Attendre que la page de définition du mot de passe s'affiche
+- [ ] Définir le mot de passe root (minimum 8 caractères)
+- [ ] Se connecter avec :
+ - Username: `root`
+ - Password: [le mot de passe défini]
+- [ ] Vérifier que l'interface GitLab fonctionne
+
+## Configuration du dépôt existant
+
+- [ ] Vérifier que GitLab utilise le bon répertoire :
+ ```bash
+ sudo grep git_data_dirs /etc/gitlab/gitlab.rb
+ ```
+- [ ] Si nécessaire, modifier `/etc/gitlab/gitlab.rb` :
+ ```ruby
+ git_data_dirs({
+ "default" => {
+ "path" => "/var/data/git/repositories"
+ }
+ })
+ ```
+- [ ] Reconfigurer : `sudo gitlab-ctl reconfigure`
+- [ ] Redémarrer : `sudo gitlab-ctl restart`
+
+## Import du dépôt existant
+
+- [ ] Se connecter à GitLab
+- [ ] Cliquer sur "New project" ou "+" > "New project"
+- [ ] Choisir "Import project"
+- [ ] Sélectionner "Repository by URL"
+- [ ] Entrer l'URL : `file:///var/data/git/repositories/config-files-keyvault.git`
+- [ ] Remplir les informations du projet
+- [ ] Cliquer sur "Import project"
+- [ ] Vérifier que le dépôt est importé correctement
+
+## Configuration Apache (Optionnel mais recommandé)
+
+- [ ] Installer Apache si pas déjà installé : `sudo apt install apache2`
+- [ ] Activer les modules nécessaires :
+ ```bash
+ sudo a2enmod proxy
+ sudo a2enmod proxy_http
+ sudo a2enmod headers
+ sudo a2enmod ssl
+ ```
+- [ ] Copier `apache-config.conf` vers `/etc/apache2/sites-available/gitlab.conf`
+- [ ] Adapter le `ServerName` dans la config
+- [ ] Adapter le `ProxyPass` si GitLab est sur un autre port
+- [ ] Activer le site : `sudo a2ensite gitlab.conf`
+- [ ] Désactiver le site par défaut si nécessaire : `sudo a2dissite 000-default.conf`
+- [ ] Tester la config : `sudo apache2ctl configtest`
+- [ ] Recharger Apache : `sudo systemctl reload apache2`
+
+## Configuration SSL (Optionnel mais recommandé)
+
+- [ ] Installer certbot : `sudo apt install certbot python3-certbot-apache`
+- [ ] Obtenir le certificat : `sudo certbot --apache -d chillka.example.com`
+- [ ] Vérifier le renouvellement automatique : `sudo certbot renew --dry-run`
+- [ ] Configurer GitLab pour utiliser HTTPS dans `/etc/gitlab/gitlab.rb` :
+ ```ruby
+ external_url 'https://chillka.example.com'
+ ```
+- [ ] Reconfigurer : `sudo gitlab-ctl reconfigure`
+
+## Mise à jour du remote local
+
+- [ ] Sur la machine Windows, mettre à jour le remote :
+ ```bash
+ # Avec HTTPS
+ git remote set-url origin http://chillka/root/config-files-keyvault.git
+
+ # OU avec SSH (recommandé)
+ git remote set-url origin git@chillka:root/config-files-keyvault.git
+ ```
+- [ ] Tester le push : `git push origin main`
+- [ ] Vérifier que le push apparaît dans l'interface GitLab
+
+## Vérifications finales
+
+- [ ] Accéder à l'interface web GitLab
+- [ ] Voir les commits dans l'interface
+- [ ] Voir les fichiers du dépôt
+- [ ] Voir l'historique des commits
+- [ ] Tester un push depuis la machine locale
+- [ ] Vérifier que les logs sont visibles
+- [ ] Tester la création d'une issue (optionnel)
+- [ ] Tester la création d'un merge request (optionnel)
+
+## Configuration avancée (Optionnel)
+
+- [ ] Configurer les notifications par email
+- [ ] Configurer les intégrations CI/CD
+- [ ] Configurer les webhooks
+- [ ] Configurer les runners GitLab CI (si nécessaire)
+- [ ] Configurer les sauvegardes automatiques
+
+## Maintenance
+
+- [ ] Configurer les sauvegardes régulières :
+ ```bash
+ # Ajouter dans crontab
+ 0 2 * * * /opt/gitlab/bin/gitlab-backup create
+ ```
+- [ ] Surveiller l'espace disque : `df -h`
+- [ ] Surveiller l'utilisation mémoire : `free -h`
+- [ ] Mettre à jour GitLab régulièrement :
+ ```bash
+ sudo apt update
+ sudo apt upgrade gitlab-ce
+ sudo gitlab-ctl reconfigure
+ ```
+- [ ] Vérifier la santé du système : `sudo gitlab-rake gitlab:check`
+
+## Réduction de l'utilisation mémoire (si nécessaire)
+
+Si GitLab utilise trop de mémoire :
+
+- [ ] Éditer `/etc/gitlab/gitlab.rb`
+- [ ] Ajouter/modifier :
+ ```ruby
+ puma['worker_processes'] = 2
+ sidekiq['max_concurrency'] = 5
+ postgresql['shared_buffers'] = "256MB"
+ postgresql['max_connections'] = 50
+ ```
+- [ ] Reconfigurer : `sudo gitlab-ctl reconfigure`
+- [ ] Redémarrer : `sudo gitlab-ctl restart`
+- [ ] Vérifier l'utilisation mémoire : `free -h`
diff --git a/setup-git-web-interface/docker-compose-gitlab.yml b/setup-git-web-interface/docker-compose-gitlab.yml
new file mode 100644
index 0000000..c93bd68
--- /dev/null
+++ b/setup-git-web-interface/docker-compose-gitlab.yml
@@ -0,0 +1,36 @@
+version: '3.8'
+
+services:
+ gitlab:
+ image: gitlab/gitlab-ce:latest
+ container_name: gitlab
+ hostname: 'chillka'
+ environment:
+ GITLAB_OMNIBUS_CONFIG: |
+ external_url 'http://chillka:8929'
+ git_data_dirs({
+ "default" => {
+ "path" => "/var/data/git/repositories"
+ }
+ })
+ # Réduire l'utilisation mémoire si nécessaire
+ puma['worker_processes'] = 2
+ sidekiq['max_concurrency'] = 5
+ postgresql['shared_buffers'] = "256MB"
+ ports:
+ - '8929:80' # HTTP
+ - '2289:22' # SSH
+ volumes:
+ - './gitlab/config:/etc/gitlab'
+ - './gitlab/logs:/var/log/gitlab'
+ - './gitlab/data:/var/opt/gitlab'
+ - '/var/data/git/repositories:/var/data/git/repositories'
+ shm_size: '256m'
+ restart: always
+ networks:
+ - gitlab
+
+networks:
+ gitlab:
+ external: false
+
diff --git a/setup-git-web-interface/docker-compose.yml b/setup-git-web-interface/docker-compose.yml
new file mode 100644
index 0000000..30dcf4b
--- /dev/null
+++ b/setup-git-web-interface/docker-compose.yml
@@ -0,0 +1,31 @@
+version: "3"
+
+services:
+ server:
+ image: gitea/gitea:latest
+ container_name: gitea
+ environment:
+ - USER_UID=1000
+ - USER_GID=1000
+ - GITEA__database__DB_TYPE=sqlite3
+ - GITEA__database__PATH=/data/gitea/gitea.db
+ - GITEA__server__DOMAIN=chillka
+ - GITEA__server__SSH_DOMAIN=chillka
+ - GITEA__server__SSH_PORT=22
+ - GITEA__repository__ROOT=/data/git/repositories
+ restart: always
+ volumes:
+ - ./gitea:/data
+ - /var/data/git/repositories:/data/git/repositories
+ - /etc/timezone:/etc/timezone:ro
+ - /etc/localtime:/etc/localtime:ro
+ ports:
+ - "3000:3000"
+ - "222:22"
+ networks:
+ - gitea
+
+networks:
+ gitea:
+ external: false
+
diff --git a/setup-git-web-interface/installation-gitlab.sh b/setup-git-web-interface/installation-gitlab.sh
new file mode 100644
index 0000000..afabb15
--- /dev/null
+++ b/setup-git-web-interface/installation-gitlab.sh
@@ -0,0 +1,120 @@
+#!/bin/bash
+# Script d'installation de GitLab Omnibus sur chillka
+# À exécuter sur chillka en tant que toshiro avec sudo
+
+set -e
+
+echo "=== Installation de GitLab Omnibus sur chillka ==="
+
+# Vérifier les prérequis système
+echo "Vérification des prérequis..."
+
+# Vérifier la RAM disponible
+RAM_AVAILABLE=$(free -g | awk '/^Mem:/{print $7}')
+if [ "$RAM_AVAILABLE" -lt 2 ]; then
+ echo "⚠️ Attention: Moins de 2GB RAM disponible. GitLab nécessite au moins 2GB."
+ read -p "Continuer quand même? (y/N) " -n 1 -r
+ echo
+ if [[ ! $REPLY =~ ^[Yy]$ ]]; then
+ exit 1
+ fi
+fi
+
+# Vérifier l'espace disque
+DISK_AVAILABLE=$(df -BG / | awk 'NR==2 {print $4}' | sed 's/G//')
+if [ "$DISK_AVAILABLE" -lt 4 ]; then
+ echo "⚠️ Attention: Moins de 4GB d'espace disque disponible."
+ read -p "Continuer quand même? (y/N) " -n 1 -r
+ echo
+ if [[ ! $REPLY =~ ^[Yy]$ ]]; then
+ exit 1
+ fi
+fi
+
+# Vérifier que nous sommes sur chillka
+echo "Vérification de l'environnement..."
+if [ ! -d "/var/data/git/repositories" ]; then
+ echo "Erreur: Le répertoire /var/data/git/repositories n'existe pas"
+ exit 1
+fi
+
+# Étape 1: Mettre à jour le système
+echo "Étape 1: Mise à jour du système..."
+sudo apt update
+sudo apt upgrade -y
+
+# Étape 2: Installer les dépendances
+echo "Étape 2: Installation des dépendances..."
+sudo apt install -y curl openssh-server ca-certificates tzdata perl
+
+# Étape 3: Configurer SSH (si nécessaire)
+echo "Étape 3: Configuration SSH..."
+if ! sudo systemctl is-active --quiet sshd; then
+ sudo systemctl enable sshd
+ sudo systemctl start sshd
+fi
+
+# Étape 4: Ajouter le dépôt GitLab
+echo "Étape 4: Ajout du dépôt GitLab..."
+curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
+
+# Étape 5: Demander l'URL externe
+echo ""
+read -p "URL externe pour GitLab (ex: http://chillka ou https://chillka.example.com): " EXTERNAL_URL
+if [ -z "$EXTERNAL_URL" ]; then
+ EXTERNAL_URL="http://chillka"
+ echo "Utilisation de l'URL par défaut: $EXTERNAL_URL"
+fi
+
+# Étape 6: Installer GitLab
+echo "Étape 6: Installation de GitLab (cela peut prendre 10-15 minutes)..."
+sudo EXTERNAL_URL="$EXTERNAL_URL" apt install gitlab-ce -y
+
+# Étape 7: Configurer GitLab pour utiliser le répertoire existant
+echo "Étape 7: Configuration de GitLab..."
+sudo tee -a /etc/gitlab/gitlab.rb > /dev/null <<EOF
+
+# Configuration pour utiliser le répertoire de dépôts existant
+git_data_dirs({
+ "default" => {
+ "path" => "/var/data/git/repositories"
+ }
+})
+EOF
+
+# Étape 8: Reconfigurer GitLab
+echo "Étape 8: Reconfiguration de GitLab (cela peut prendre 5-10 minutes)..."
+sudo gitlab-ctl reconfigure
+
+# Étape 9: Vérifier le statut
+echo "Étape 9: Vérification du statut..."
+sleep 5
+if sudo gitlab-ctl status | grep -q "run:"; then
+ echo "✓ GitLab est démarré avec succès"
+else
+ echo "✗ Erreur: GitLab n'a pas démarré correctement"
+ echo "Vérifiez les logs: sudo gitlab-ctl tail"
+ exit 1
+fi
+
+# Afficher les informations importantes
+echo ""
+echo "=== Installation terminée ==="
+echo ""
+echo "Informations importantes:"
+echo " - URL GitLab: $EXTERNAL_URL"
+echo " - Username initial: root"
+echo " - Mot de passe: À définir lors de la première connexion"
+echo ""
+echo "Prochaines étapes:"
+echo "1. Ouvrir $EXTERNAL_URL dans un navigateur"
+echo "2. Définir le mot de passe root"
+echo "3. Se connecter avec root / [votre mot de passe]"
+echo "4. Créer ou importer le projet config-files-keyvault"
+echo ""
+echo "Commandes utiles:"
+echo " - Statut: sudo gitlab-ctl status"
+echo " - Logs: sudo gitlab-ctl tail"
+echo " - Redémarrer: sudo gitlab-ctl restart"
+echo " - Vérifier: sudo gitlab-rake gitlab:check"
+
diff --git a/setup-git-web-interface/installation-steps.sh b/setup-git-web-interface/installation-steps.sh
new file mode 100644
index 0000000..e037ac7
--- /dev/null
+++ b/setup-git-web-interface/installation-steps.sh
@@ -0,0 +1,95 @@
+#!/bin/bash
+# Script d'installation de Gitea sur chillka
+# À exécuter sur chillka en tant que toshiro avec sudo
+
+set -e
+
+echo "=== Installation de Gitea sur chillka ==="
+
+# Variables
+GITEA_VERSION="1.21.0"
+GITEA_USER="git"
+GITEA_HOME="/home/git"
+GITEA_WORK_DIR="/var/lib/gitea"
+GITEA_CONFIG="/etc/gitea"
+
+# Vérifier que nous sommes sur chillka
+echo "Vérification de l'environnement..."
+if [ ! -d "/var/data/git/repositories" ]; then
+ echo "Erreur: Le répertoire /var/data/git/repositories n'existe pas"
+ exit 1
+fi
+
+# Étape 1: Télécharger Gitea
+echo "Étape 1: Téléchargement de Gitea..."
+cd /tmp
+wget -O gitea "https://dl.gitea.io/gitea/${GITEA_VERSION}/gitea-${GITEA_VERSION}-linux-amd64"
+chmod +x gitea
+sudo mv gitea /usr/local/bin/
+gitea --version
+
+# Étape 2: Créer l'utilisateur système
+echo "Étape 2: Création de l'utilisateur git..."
+if ! id "$GITEA_USER" &>/dev/null; then
+ sudo adduser --system --group --disabled-password --shell /bin/bash \
+ --home "$GITEA_HOME" --gecos 'Git Version Control' "$GITEA_USER"
+ echo "Utilisateur $GITEA_USER créé"
+else
+ echo "Utilisateur $GITEA_USER existe déjà"
+fi
+
+# Étape 3: Créer la structure de répertoires
+echo "Étape 3: Création de la structure de répertoires..."
+sudo mkdir -p "$GITEA_WORK_DIR"/{custom,data,log}
+sudo mkdir -p "$GITEA_CONFIG"
+sudo chown -R "$GITEA_USER:$GITEA_USER" "$GITEA_WORK_DIR"
+sudo chmod 750 "$GITEA_WORK_DIR"
+sudo chmod 770 "$GITEA_CONFIG"
+
+# Étape 4: Créer le service systemd
+echo "Étape 4: Création du service systemd..."
+sudo tee /etc/systemd/system/gitea.service > /dev/null <<EOF
+[Unit]
+Description=Gitea (Git with a cup of tea)
+After=syslog.target
+After=network.target
+
+[Service]
+RestartSec=2s
+Type=simple
+User=$GITEA_USER
+Group=$GITEA_USER
+WorkingDirectory=$GITEA_WORK_DIR
+ExecStart=/usr/local/bin/gitea web --config $GITEA_CONFIG/app.ini
+Restart=always
+Environment=USER=$GITEA_USER HOME=$GITEA_HOME GITEA_WORK_DIR=$GITEA_WORK_DIR
+
+[Install]
+WantedBy=multi-user.target
+EOF
+
+# Étape 5: Recharger systemd et démarrer Gitea
+echo "Étape 5: Démarrage de Gitea..."
+sudo systemctl daemon-reload
+sudo systemctl enable gitea
+sudo systemctl start gitea
+
+# Vérifier le statut
+sleep 2
+if sudo systemctl is-active --quiet gitea; then
+ echo "✓ Gitea est démarré avec succès"
+ echo "✓ Accédez à http://$(hostname -I | awk '{print $1}'):3000 pour la configuration initiale"
+else
+ echo "✗ Erreur: Gitea n'a pas démarré correctement"
+ echo "Vérifiez les logs: sudo journalctl -u gitea -n 50"
+ exit 1
+fi
+
+echo ""
+echo "=== Installation terminée ==="
+echo "Prochaines étapes:"
+echo "1. Ouvrir http://$(hostname -I | awk '{print $1}'):3000 dans un navigateur"
+echo "2. Suivre l'assistant de configuration"
+echo "3. Configurer le chemin des dépôts: /var/data/git/repositories"
+echo "4. Créer un compte administrateur"
+
diff --git a/setup-git-web-interface/nginx-config.conf b/setup-git-web-interface/nginx-config.conf
new file mode 100644
index 0000000..4059a5e
--- /dev/null
+++ b/setup-git-web-interface/nginx-config.conf
@@ -0,0 +1,50 @@
+# Configuration Nginx pour GitLab
+# À placer dans /etc/nginx/sites-available/gitlab
+# Puis créer un lien symbolique: sudo ln -s /etc/nginx/sites-available/gitlab /etc/nginx/sites-enabled/
+
+upstream gitlab {
+ server 127.0.0.1:80;
+}
+
+server {
+ listen 80;
+ server_name chillka.example.com; # Remplacer par votre domaine ou IP
+
+ # Redirection vers HTTPS (décommenter après configuration SSL)
+ # return 301 https://$server_name$request_uri;
+
+ location / {
+ proxy_pass http://gitlab;
+ 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;
+
+ # Timeouts pour les grandes opérations
+ proxy_read_timeout 300s;
+ proxy_connect_timeout 75s;
+ }
+}
+
+# Configuration HTTPS (décommenter après avoir configuré SSL)
+# server {
+# listen 443 ssl http2;
+# server_name chillka.example.com;
+#
+# ssl_certificate /etc/letsencrypt/live/chillka.example.com/fullchain.pem;
+# ssl_certificate_key /etc/letsencrypt/live/chillka.example.com/privkey.pem;
+# ssl_protocols TLSv1.2 TLSv1.3;
+# ssl_ciphers HIGH:!aNULL:!MD5;
+#
+# location / {
+# proxy_pass http://gitlab;
+# 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;
+#
+# proxy_read_timeout 300s;
+# proxy_connect_timeout 75s;
+# }
+# }
+