46 lines
2.0 KiB
Markdown
46 lines
2.0 KiB
Markdown
# 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`.
|
||
|