diff options
| author | ertopogo <erwin.t.pombett@gmail.com> | 2025-11-26 04:02:41 +0100 |
|---|---|---|
| committer | ertopogo <erwin.t.pombett@gmail.com> | 2025-11-26 04:02:41 +0100 |
| commit | fb7b2389c33bef903f236f4dd0c0b98dfc0bbbe8 (patch) | |
| tree | aa61a9026da508e865ab19b38677be523c961891 /setup-git-web-interface | |
| parent | 0f1ba5af1684cfc64b3ff5374ef95c70df1caac0 (diff) | |
Feat: Ajout de la configuration Tridactyl (Native Messenger + .tridactylrc) et scripts de maintenance
Diffstat (limited to 'setup-git-web-interface')
| -rw-r--r-- | setup-git-web-interface/README.md | 351 | ||||
| -rw-r--r-- | setup-git-web-interface/apache-config.conf | 70 | ||||
| -rw-r--r-- | setup-git-web-interface/checklist.md | 163 | ||||
| -rw-r--r-- | setup-git-web-interface/docker-compose-gitlab.yml | 36 | ||||
| -rw-r--r-- | setup-git-web-interface/docker-compose.yml | 31 | ||||
| -rw-r--r-- | setup-git-web-interface/installation-gitlab.sh | 120 | ||||
| -rw-r--r-- | setup-git-web-interface/installation-steps.sh | 95 | ||||
| -rw-r--r-- | setup-git-web-interface/nginx-config.conf | 50 |
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; +# } +# } + |
