# Services Jean-Cloud ## Dossier installing Contient des scripts sh pour installer debian sur un disque dur. Qui ira ensuite se brancher dans un ordi :) ## Dossier provisioning Contient - des rôles ansible pour configurer les serveurs - un rôle ansible pour envoyer les services sur les serveurs (rsync bête) - des scripts maisons à envoyer sur les serveurs ## Dossier services Les services à faire tourner. Chaque service qui tourne sur jean-cloud est composé : - Un uid et username pour des questions de droits - `deploy.sh` d’un script d’installation - `docker-compose.yaml` d’un fichier docker-compose - `nginx_server.conf` d’un fichier de conf nginx - `deploy_http.sh` d’un script de déploiement web (qui est exécuté avec l’utilisateur www-data et peut être exécuté par le serveur web lui-même) - `wg-*.sh` Script qui génère une config wireguard pour l’interface * Chaque élément est facultatif. Chaque élément est éxécuté, démarré ou installé dans l’ordre par `deploy_service.sh` ## scripts dans `provisioning/roles/deploy_all/files/bin` -`deployall.sh` va pour chaque service vérifier s’il doit tourner sur la machine actuelle et lance le `deploy_service.sh` si c’est le cas. - `letsencrypt.sh` va renouveler tous les certificats dont nginx a besoin (il va lire dans /etc/nginx/sites-enabled). - `git_update.sh` récupère une copie à jour d’un dépôt git (fait un clone ou pull en fonction des besoins) et s’assure de ne pas garder tout l’historique du dépôt. ## Variables Les scripts ont accès aux variables suivantes : - `DATA_DIR` : là où sauvegarder des données. - `DOCKER_DIR` : dossier contenant les fichiers de déploiement du service. - `HTTP_DIR` : là où mettre les fichiers web si ils sont statiques. Ce dossier peut être détruit à tout moment, il n’est pas sauvegardé. - `JC_SERVICE` : le nom du dossier service. Correspond souvent à l’adresse du service. Ces variables sont ajoutées au ficher .env du service par le script `gen_env.sh`.