Manipulations manuelles — venv, account.yml et gestion des services (SSDV2)
Abstract
Cette page décrit les manipulations manuelles SSDV2 :
- chargement de l’environnement (profile.sh) et vérification du prompt (venv)
- lecture/écriture/suppression de clés dans account.yml via get_from_account_yml et manage_account_yml
- installation/désinstallation directe d’une application via launch_service et suppression_appli
- mise à jour d’image seule via update_container (sans playbook)
- application de l’authentification via apply_auth_label (label Traefik uniquement)
- sortie propre de l’environnement avec deactivate
⚠️ Toutes les opérations doivent être effectuées hors root.
TL;DR¶
1) ✅ Non-root uniquement
2) source profile.sh → vous voyez (venv)
3) Lire : get_from_account_yml [clé]
4) Écrire : manage_account_yml clé valeur
5) Supprimer : manage_account_yml clé " " (suppression récursive)
6) Installer : launch_service service
7) Désinstaller : suppression_appli service
8) Mettre à jour (image seule) : update_container service
9) Appliquer l’auth (label-only) : apply_auth_label service
10) Quitter : deactivate
Principe premium
Toujours auditer avant de modifier : un get_from_account_yml rapide évite d’écraser une valeur sensible.
Règle absolue : ne pas être root¶
Pour toute opération, assurez-vous de ne pas être root.
Pourquoi ?
Exécuter ces commandes en root peut : - casser les permissions, - créer des fichiers appartenant à root, - provoquer des comportements inattendus (venv/Docker/scripts), - compliquer les corrections (chown à répétition).
Charger l’environnement (venv)¶
Exécutez :
Après cela, vous devriez voir (venv) devant l’invite de commande.
Validation
Si le prompt affiche (venv), l’environnement est chargé.
Si (venv) n’apparaît pas
- Vérifiez le chemin :
/opt/seedbox-compose - Relancez
source profile.sh - Évitez de lancer le script en root (permissions cassées)
Comprendre account.yml (structure et clés)¶
Les clés sont séparées par des points.
Exemple YAML :
La clé sera :
user.domain
et sa valeur :mydomain.net
Pourquoi cette notation ?
Elle permet de manipuler le YAML facilement depuis la CLI, sans éditer le fichier à la main.
Afficher tout le contenu de account.yml¶
Pour afficher dans le shell tout le contenu du fichier :
Bon usage
Avant une modification, faites toujours un dump complet (ou un dump du bloc parent) pour éviter les surprises.
Manipuler account.yml¶
Écrire une clé (create/overwrite)¶
Crée la clé si elle n’existe pas, ou l’écrase si elle existe :
Exemple :
Écrasement
Si la clé existe, la valeur précédente est remplacée (pas de merge).
Faites un get_from_account_yml avant si vous n’êtes pas sûr.
Pattern safe (lecture → écriture → relecture)
Effacer une clé (et ses sous-clés)¶
Efface la clé et toutes les sous-clés associées :
Exemple :
Suppression récursive
En supprimant une clé “parent”, vous supprimez aussi toute son arborescence.
Exemple : supprimer user peut supprimer domain/mail/pass/etc.
Obtenir la valeur d’une clé¶
Exemple :
Retour attendu :
Si la valeur n’est pas trouvée :
Obtenir une clé et toutes ses sous-clés¶
Exemple de retour :
domain: mondomaine.com group: null groupid: 1001 htpwd: seed:xxxxxxxxxxxxxx mail: moi@mondomaine.com name: seed pass: xxxxxxxxxxxxxx userid: 1001
Usage
Pratique pour auditer rapidement un bloc (ex. user, traefik, apps, etc.).
Installer / lancer une application sans passer par le menu¶
Résultat attendu
Le service est déployé/démarré conformément à la recette (yml + account).
Désinstaller une application sans passer par le menu¶
Impact
Selon le mode de suppression et l’implémentation, des éléments peuvent être retirés :
- container,
- fichiers .yml,
- entrées account.yml,
- et parfois données persistantes (selon options).
Avant suppression
Si vous avez un doute : privilégiez la réinitialisation (quand disponible) plutôt qu’une suppression destructrice.
Mettre à jour une application (image seule) sans passer par le menu¶
Environnement chargé
Comme toutes les fonctions de cette page, elle s’utilise après source profile.sh (section Charger l’environnement (venv)), exactement comme launch_service.
- tire la dernière image (
docker pull) ; - recrée le container à l’identique (config, volumes/binds, réseau, ports… conservés) ;
- sans exécuter le playbook ni les tâches de configuration.
Résultat attendu
Le service tourne avec l’image à jour, configuration et données conservées.
Appliquer l’authentification d’une application (label-only)¶
L’authentification est stockée dans account.yml sous sub.<app>.auth. La fonction ci-dessous applique le type courant sans rejouer le playbook :
Environnement chargé
À utiliser après source profile.sh (venv + fonctions), comme update_container et launch_service.
- lit
sub.<app>.auth; - modifie uniquement le label
traefik.http.routers.<app>-rtr.middlewares; - recrée le container (les routers secondaires et le reste de la config sont conservés).
Changer la valeur d’abord (si besoin)
Un restart ne suffit pas
Changer l’auth modifie un label Docker : il faut recréer le container (ce que fait apply_auth_label).
Quitter l’environnement de manipulation¶
Pour sortir du venv :
Validation
Le préfixe (venv) disparaît : vous êtes sorti de l’environnement.