Page 1 sur 1
Emplacement et sauvegarde fichiers zwave-js-ui
Publié : 01 sept. 2025, 13:30
par denis_brasseur
Bonjour.
Tout est dans le titre. Suite passage à zwave-js-ui, je m'interroge sur l'emplacement des fichiers de configuration afin de mettre en place une sauvegarde.
Je n'ai rien trouvé à ce sujet sur le forum.
Concernant mon installation, j'ai choisi la solution docker.
Re: Emplacement et sauvegarde fichiers zwave-js-ui
Publié : 01 sept. 2025, 15:02
par Chrominator
Bonjour,
Je me suis inspiré de
cette page pour modifier mon script de sauvegarde que j'ai pompé sur le net à l'origine.
Le plus contraignant était de trouver l'id du conteneur actif, le code est dans le script.
Ça fonctionne bien, pas de souci depuis plusieurs mois.
Le script ci-dessous est un peu plus large que le seul zwave-js-ui, je suis certain que tu t'y retrouveras.
J'ai aussi écrit un script pour récupérer les dernières mises à jour du module et les inclure dans docker, dit-moi si ça t'intéresse.
Code : Tout sélectionner
#! /bin/bash
##-------------------------------------------------------------------------
## Script : backup.sh
##
## Objectif : Script qui permet d'automatiser la sauvegarde des éleménts
## importants d'une installation Domoticz'
##
## Auteur : Bastien DUMAS
## Date : 01/11/2015
## Version : 1.0
##-------------------------------------------------------------------------
## https://www.it-connect.fr/comment-sauvegarder-et-restaurer-un-conteneur-docker/
UNAME="/bin/uname"
CURL="/usr/bin/curl"
DD="/usr/bin/dd"
TAR="/usr/bin/tar"
DOCKER="/usr/bin/docker"
MONIT="/usr/bin/monit"
SLEEP="/usr/bin/sleep"
################### CONFIGURATION DU SCRIPT ###################
## Information abonné FreeMobile pour l'envoie de SMS
FREE_USERNAME="votre ID" #Nom d'utilisateur freemobile
FREE_PASSWORD="votre PASSWORD" #Password freemobile
HOSTNAME=`$UNAME -n`
#Informations relative à domoticz
DOMOTICZ_IP="192.168.1.4" # Domoticz IP
DOMOTICZ_PORT="8080" # Domoticz port
DOMOTICZ_DIRECTORY="/home/pi/domoticz" #Répertoire Domoticz
FILESYSTEM1="sda4" #Chemin du device filesystem
#Informations relative à la sauvegarde
BACKUP_DIRECTORY="/mnt/images_sd/Domoticz/live" #Répertoire de destination des fichiers issus de la sauvegarde
TIMESTAMP=`/bin/date +%Y%m%d%H%M%S` #Timestamp utilisé pour différencier les sauvegardes
DB_BACKUPFILE="domoticz_$HOSTNAME_$TIMESTAMP.db" #Nom du fichier issu de la sauvegarde de la base de donnée domoticz
DOMOTICZ_DIRECTORY_BACKUPFILE="domoticz_directory_$HOSTNAME_$TIMESTAMP.tar.gz" #Nom du fichier issu de la sauvegarde du répertoire domoticz
FILESYSTEM_BACKUPFILE="domoBox_${HOSTNAME}_$TIMESTAMP.bz2" #Nom du fichier issu de la sauvegarde du filesystem complet
ZWAVEJSUI_BACKUPFILE="zwave-js-ui_${HOSTNAME}_${TIMESTAMP}.tar" # Nom du fichier contenant l'image du docker à sauvegarder
ZWAVEJSUI_CONTAINER_ID=`$DOCKER ps | awk -F" " 'NR>1 { if ($7 == "zwave-js-ui") print $1}'` # Id du container zwave-js-ui
ZIGBEE_PLUGIN_DIRECTORY="/home/pi/domoticz/plugins/Domoticz-Zigbee/"
ZIGBEE_BACKUPFILE="zigbee_${HOSTNAME}_${TIMESTAMP}.tar.gz"
ZIGBEE_EXTRA_MENU="/home/pi/domoticz/www/templates/"
DOMOTICZ_DB="/home/pi/domoticz/domoticz.db"
BIN_DIRECTORY="/home/pi/bin"
BIN_BACKUPFILE="bin_${HOSTNAME}_${TIMESTAMP}.tar.gz"
MONIT_DIRECTORY="/etc/monit"
MONIT_BACKUPFILE="monit_${HOSTNAME}_${TIMESTAMP}.tar.gz"
#Chemin du fichier de log
LOG_FILE="/var/log/backup.log"
#Temps de conservation des fichiers de sauvegarde
TTL_DB="7" #Base de donnée
TTL_DOMOTICZ="31" #Répertoire domoticz
TTL_FILESYSTEM="62" #Sauvegarde complete du FILESYSTEM
TTL_ZWAVEJSUI="31" #Sauvegarde du container zwavejsui
TTL_ZIGBEE="31" #Sauvegarde de zigbee
TTL_BIN="31" #Sauvegarde du répertoire /home/pi/bin
TTL_MONIT="31" #Sauvegarde du répertoire /etc/monit
###############################################################
####################### DEBUT DU SCRIPT #######################
echo "===============> Sauvegarde du $TIMESTAMP" >> $LOG_FILE
echo "==== ELEMENTS DE CONFIGURATION ====" >> $LOG_FILE
echo "BACKUP_DIRECTORY : $BACKUP_DIRECTORY" >> $LOG_FILE
echo "TIMESTAMP : $TIMESTAMP" >> $LOG_FILE
echo "DB_BACKUPFILE : $DB_BACKUPFILE" >> $LOG_FILE
echo "DOMOTICZ_DIRECTORY_BACKUPFILE : $DOMOTICZ_DIRECTORY_BACKUPFILE" >> $LOG_FILE
echo "FILESYSTEM_BACKUPFILE : $FILESYSTEM_BACKUPFILE" >> $LOG_FILE
echo "ZWAVEJSUI_BACKUPFILE : $ZWAVEJSUI_BACKUPFILE" >> $LOG_FILE
echo "myBackupFile = ${BACKUP_DIRECTORY}/${DB_BACKUPFILE}" >> $LOG_FILE
echo "LOG_FILE = $LOG_FILE" >> $LOG_FILE
echo "===================================" >> $LOG_FILE
echo ""
echo ""
SEND_NOTIF () {
#LOG du résultat
if [ -e $myBackupFile ]
then
msg="$TIMESTAMP : Sauvegarde ${OP} OK dans le fichier : $myBackupFile en $ELAPSED"
echo $msg >> $LOG_FILE
# Envoi d'une notification vers Domoticz
# Mise en forme du texte pour utilisation dans Curl
msg=`echo "${msg// /$'%20'}"`
$CURL -s -i -k "http://${DOMOTICZ_IP}:${DOMOTICZ_PORT}/json.htm?type=command¶m=sendnotification&subject=Backup&body=$msg&subsystem=telegram;kodi;browser"
else
msg="$TIMESTAMP : ERREUR LORS DE LA SAUVEGARDE DE $myBackupFile"
echo $msg >> $LOG_FILE
##Envoie du SMS d'erreur
#$CURL -s -i -k "https://smsapi.free-mobile.fr/sendmsg?user=$FREE_USERNAME&pass=$FREE_PASSWORD&msg=$msg"
exit 3;
fi
}
CHECK_DZ_STATUS () {
JOB=`netstat -tunlp |grep -w "8080\|443" | awk -FLISTEN '{print $2}'`
if [[ $JOB == *"domoticz"* ]]; then
echo `/bin/date +'%T'` " domoticz toujours actif, on attend..." >> $LOG_FILE
else
LOOP=0
fi
}
OP=$1
#### PARTIE 1 : SAUVEGARDE #####
case "$1" in
DB) ## Sauvegarde de la base de donnée de domoticz
echo "$TIMESTAMP : Sauvegarde de la base de donnée de Domoticz " >> $LOG_FILE
myBackupFile="${BACKUP_DIRECTORY}/${DB_BACKUPFILE}"
#Initialisation du timer
BEFORE=$(/bin/date +'%s')
#Sauvegarde
sav_db=$($CURL -s http://$DOMOTICZ_IP:$DOMOTICZ_PORT/backupdatabase.php --output $myBackupFile)
#Calcul du temps d'éxécution
AFTER=$(/bin/date +'%s')
ELAPSED=$(($AFTER - $BEFORE))
ELAPSED=`/bin/date -u -d @${ELAPSED} +"%T"`
#LOG du résultat
SEND_NOTIF
;;
DOMOTICZ) ## Sauvegarde du répertoire domoticz complet
echo "$TIMESTAMP : Sauvegarde du répertoire DOMOTICZ" >> $LOG_FILE
#Construction du nom de fichier
myBackupFile="${BACKUP_DIRECTORY}/${DOMOTICZ_DIRECTORY_BACKUPFILE}"
#Initialisation du timer
BEFORE=$(/bin/date +'%s')
#Sauvegarde
sav_directory=$(sudo $TAR czf $myBackupFile $DOMOTICZ_DIRECTORY)
#Calcul du temps d'éxécution
AFTER=$(/bin/date +'%s')
ELAPSED=$(($AFTER - $BEFORE))
ELAPSED=`/bin/date -u -d @${ELAPSED} +"%T"`
#LOG du résultat
SEND_NOTIF
;;
FILESYSTEM) ## Sauvegarde du FILESYSTEM complet
echo "$TIMESTAMP : Sauvegarde du FILESYSTEM" >> $LOG_FILE
#Construction du nom de fichier
myBackupFile="${BACKUP_DIRECTORY}/${FILESYSTEM_BACKUPFILE}"
#Initialisation du timer
BEFORE=$(/bin/date +'%s')
#Sauvegarde
#sav_filesystem=$(sudo $DD if=$FILESYSTEM | gzip > $myBackupFile)
sav_filesystem=$(sudo $DD if=/dev/$FILESYSTEM1 | lbzip2 -zk > $myBackupFile.$FILESYSTEM1)
#sav_filesystem=$(sudo $DD if=/dev/$FILESYSTEM2 | lbzip2 -zk > $myBackupFile.$FILESYSTEM2)
#Calcul du temps d'éxécution
AFTER=$(/bin/date +'%s')
ELAPSED=$(($AFTER - $BEFORE))
ELAPSED=`/bin/date -u -d @${ELAPSED} +"%T"`
#LOG du résultat
SEND_NOTIF
;;
ZWAVE-JS-UI) ## Sauvegarde du container zwave-js-ui complet
echo "$TIMESTAMP : Sauvegarde du container docker zwave-js-ui" >> $LOG_FILE
#Construction du nom de fichier
myBackupFile="${BACKUP_DIRECTORY}/${ZWAVEJSUI_BACKUPFILE}"
#Initialisation du timer
BEFORE=$(/bin/date +'%s')
#Sauvegarde
$DOCKER commit -p ${ZWAVEJSUI_CONTAINER_ID} ${ZWAVEJSUI_BACKUPFILE}
$DOCKER save -o ${myBackupFile} ${ZWAVEJSUI_BACKUPFILE}
#Calcul du temps d'éxécution
AFTER=$(/bin/date +'%s')
ELAPSED=$(($AFTER - $BEFORE))
ELAPSED=`/bin/date -u -d @${ELAPSED} +"%T"`
if [ -e $myBackupFile ]
then
#Nettoyage des anciens snapshots du container
echo "Nettoyage des anciens snapshots du container zwave-js-ui" >> $LOG_FILE
$DOCKER images -a | grep -v $TIMESTAMP | grep zwave-js-ui | awk '{print $3}' | xargs docker rmi >> $LOG_FILE
fi
SEND_NOTIF
;;
ZIGBEE) ## Sauvegarde de la configuration zigbee
echo "$TIMESTAMP : Sauvegarde de la configuration zigbee" >> $LOG_FILE
# Comme recommandé dans le wiki, arrêt de domoticz avant de sauvegarder la base et le plugin
# https://zigbeefordomoticz.github.io/wiki/fr-fr/Plugin_Sauvegardes.html
$MONIT stop domoticz
LOOP=1 # On attend suffisamment longtemps que domoticz s'arrête.
ESCAPE=20 # En cas de boucle infinie, on sortira quand même après quelques itérations
while [ "$LOOP" -eq 1 ] && [ "$ESCAPE" -gt 0 ]
do
CHECK_DZ_STATUS
$SLEEP 10
done
if [ $ESCAPE -eq 0 ]
then # Domoticz toujours actif
echo `/bin/date +'%T'` " domoticz toujours actif, echec de la sauvegarde de ${myBackupFile}" >> $LOG_FILE
exit 4
else
echo `/bin/date +'%T'` " domoticz inactif, on commence la sauvegarde de ${myBackupFile}" >> $LOG_FILE
echo $JOB
fi
#Construction du nom de fichier
myBackupFile="${BACKUP_DIRECTORY}/${ZIGBEE_BACKUPFILE}"
#Initialisation du timer
BEFORE=$(/bin/date +'%s')
#Sauvegarde
tar -czvf $myBackupFile $ZIGBEE_PLUGIN_DIRECTORY $DOMOTICZ_DB "${ZIGBEE_EXTRA_MENU}"
#Calcul du temps d'éxécution
AFTER=$(/bin/date +'%s')
ELAPSED=$(($AFTER - $BEFORE))
ELAPSED=`/bin/date -u -d @${ELAPSED} +"%T"`
# Redémarrage de domoticz après la sauvegarde
$MONIT start domoticz
#LOG du résultat
SEND_NOTIF
;;
BIN) ## Sauvegarde des scripts generaux
echo "$TIMESTAMP : Sauvegarde des scripts" >> $LOG_FILE
myBackupFile="${BACKUP_DIRECTORY}/${BIN_BACKUPFILE}"
#Initialisation du timer
BEFORE=$(/bin/date +'%s')
#Sauvegarde
tar cvzf $myBackupFile $BIN_DIRECTORY
#Calcul du temps d'éxécution
AFTER=$(/bin/date +'%s')
ELAPSED=$(($AFTER - $BEFORE))
ELAPSED=`/bin/date -u -d @${ELAPSED} +"%T"`
#LOG du résultat
SEND_NOTIF
;;
MONIT) ## Sauvegarde du paramétrage de monit
echo "$TIMESTAMP : Sauvegarde de monit" >> $LOG_FILE
myBackupFile="${BACKUP_DIRECTORY}/${MONIT_BACKUPFILE}"
#Initialisation du timer
BEFORE=$(/bin/date +'%s')
#Sauvegarde
tar cvzf $myBackupFile $MONIT_DIRECTORY
#Calcul du temps d'éxécution
AFTER=$(/bin/date +'%s')
ELAPSED=$(($AFTER - $BEFORE))
ELAPSED=`/bin/date -u -d @${ELAPSED} +"%T"`
#LOG du résultat
SEND_NOTIF
;;
*) ## ERREUR DE PARAMETRE
echo "USAGE $0 :" >&2
echo "$0 type_sauvegarde" >&2
echo "$0 (DB|DOMOTICZ|FILESYSTEM|BIN|ZIGBEE|ZWAVE-JS-UI|MONIT)" >&2
echo "Paramètres incorrects" >> $LOG_FILE
exit 3;
esac
#### PARTIE 2 : NETTOYAGE #####
#Nettoyage des sauvegarde de DB
myDBFile="${BACKUP_DIRECTORY}/*.db"
DB_to_be_deleted=`find $myDBFile -type f -mtime +$TTL_DB`
echo "DB_to_be_deleted : $DB_to_be_deleted" >> $LOG_FILE
find $myDBFile -type f -mtime +$TTL_DB -exec rm {} \; > /dev/null 2>&1
#Nettoyage des sauvegardes de répertoire domoticz
myDIRECTORYFile="${BACKUP_DIRECTORY}/*.tar.gz"
DIRECTORY_to_be_deleted=`find $myDIRECTORYFile -type f -mtime +$TTL_DOMOTICZ`
echo "DIRECTORY_to_be_deleted : $DIRECTORY_to_be_deleted" >> $LOG_FILE
find $myDIRECTORYFile -type f -mtime +$TTL_DOMOTICZ -exec rm {} \; > /dev/null 2>&1
#Nettoyage des sauvegardes du filesystem
myFSFile="${BACKUP_DIRECTORY}/*.bz2.sd??"
FS_to_be_deleted=`find $myFSFile -type f -mtime +$TTL_FILESYSTEM`
echo "FS_to_be_deleted : $FS_to_be_deleted" >> $LOG_FILE
find $myFSFile -type f -mtime +$TTL_FILESYSTEM -exec rm {} \;
#Nettoyage des sauvegardes de zwave-js-ui
myFSFile="${BACKUP_DIRECTORY}/zwave-js-ui*.tar"
FS_to_be_deleted=`find $myFSFile -type f -mtime +$TTL_ZWAVEJSUI`
echo "zwave-je-ui_to_be_deleted : $FS_to_be_deleted" >> $LOG_FILE
find $myFSFile -type f -mtime +$TTL_ZWAVEJSUI -exec rm {} \; > /dev/null 2>&1
#Nettoyage des sauvegardes de zigbee
myFSFile="${BACKUP_DIRECTORY}/zigbee*.tar.gz"
FS_to_be_deleted=`find $myFSFile -type f -mtime +$TTL_ZIGBEE`
echo "zigbee_to_be_deleted : $FS_to_be_deleted" >> $LOG_FILE
find $myFSFile -type f -mtime +$TTL_ZIGBEE -exec rm {} \; > /dev/null 2>&1
#Nettoyage des sauvegardes de bin
myFSFile="${BACKUP_DIRECTORY}/bin*.tar.gz"
FS_to_be_deleted=`find $myFSFile -type f -mtime +$TTL_BIN`
echo "bin_to_be_deleted : $FS_to_be_deleted" >> $LOG_FILE
find $myFSFile -type f -mtime +$TTL_BIN -exec rm {} \; > /dev/null 2>&1
#Nettoyage des sauvegardes de monit
myFSFile="${BACKUP_DIRECTORY}/monit*.tar.gz"
FS_to_be_deleted=`find $myFSFile -type f -mtime +$TTL_MONIT`
echo "bin_to_be_deleted : $FS_to_be_deleted" >> $LOG_FILE
find $myFSFile -type f -mtime +$TTL_MONIT -exec rm {} \; > /dev/null 2>&1
######################## FIN DU SCRIPT #######################
Re: Emplacement et sauvegarde fichiers zwave-js-ui
Publié : 02 sept. 2025, 20:09
par denis_brasseur
Merci Chrominator, je regarde le script.
En complément à ta réponse, comment trouver l'id du conteneur actif en dehors du script ?
Je ne maitrise pas docker et je ne vois pas ou est installé zwave-js-ui.
Re: Emplacement et sauvegarde fichiers zwave-js-ui
Publié : 03 sept. 2025, 00:37
par Chrominator
L'emplacement de stockage de docker importe peu, on sauvegarde l'image pour pouvoir la restaurer plus tard.
C'est la ligne 45 qui permet de récupérer l'id du container actif ;
en CLI, c'est
Code : Tout sélectionner
sudo docker ps | awk -F" " 'NR>1 { if ($7 == "zwave-js-ui") print $1}'
Re: Emplacement et sauvegarde fichiers zwave-js-ui
Publié : 06 sept. 2025, 07:37
par denis_brasseur
Chrominator a écrit : 01 sept. 2025, 15:02
Le script ci-dessous est un peu plus large que le seul zwave-js-ui, je suis certain que tu t'y retrouveras.
Merci Chrominator, je m'y retrouve parfaitement sur l'ensemble de la sauvegarde, merci.
Chrominator a écrit : 01 sept. 2025, 15:02
J'ai aussi écrit un script pour récupérer les dernières mises à jour du module et les inclure dans docker, dit-moi si ça t'intéresse.
Bien sur que cela m'interesse !
Re: Emplacement et sauvegarde fichiers zwave-js-ui
Publié : 07 sept. 2025, 06:19
par Chrominator
Alors le voici.
Il est tout simple, je le lance quand je remarque que l'UI me signale une mise à jour.
J'ai laissé les lignes qui font appel à monit, elles doivent être retirées/mises en commentaire si tu ne l'utilises pas.
A lancer avec les droits d'administration (sudo).
Code : Tout sélectionner
#!/bin/bash
# upd_zwavejsui.sh
# Update zwave-js-ui container
# Author: Chrominator
# Creation: 2024-10-05
# Get container data
container=(`docker ps | awk -F" " 'NR>1 { if ($7 == "zwave-js-ui") print $1" "$2}'`)
container_id=${container[0]}
container_pull=${container[1]}
echo "Mise à jour du container $container_id vers $container_pull"
# Disable zwave-js-ui monitoring before operation then stop docker
monit -c /etc/monit/monitrc stop zwave-js-ui
docker stop zwave-js-ui
docker rm zwave-js-ui
docker pull $container_pull
docker images
# Restart docker
/etc/monit/scripts/zwave-js-ui_init.sh start
# Enable zwave-js-ui monitoring
monit -c /etc/monit/monitrc start zwave-js-ui
Re: Emplacement et sauvegarde fichiers zwave-js-ui
Publié : 07 sept. 2025, 06:35
par denis_brasseur
Merci Chrominator
A l'issue de la mise à jour, tu relance zwave-js-iu via monit
Code : Tout sélectionner
# Restart docker
/etc/monit/scripts/zwave-js-ui_init.sh start
Si je n'utilise pas monir pour monitorer zwave, qu'elle est la commande ?
??
Re: Emplacement et sauvegarde fichiers zwave-js-ui
Publié : 07 sept. 2025, 07:04
par Chrominator
Oui, désolé, ça m'a échappé.
Voici le script en question :
Code : Tout sélectionner
#!/bin/bash
# zwave-js-ui_init.sh
# Manage zwave-js-ui container status
# Author: Chrominator
# Creation: 2022-10-22
cd /home/pi/domoticz
if [ $1 = "start" ]; then
/usr/local/bin/docker-compose up -d
else
if [ $1 = "restart" ]; then
/usr/local/bin/docker-compose stop
/usr/local/bin/docker-compose up -d
else
/usr/local/bin/docker-compose $1
fi
fi
Re: Emplacement et sauvegarde fichiers zwave-js-ui
Publié : 11 sept. 2025, 18:48
par denis_brasseur
Merci Chrominator, c'est parfait, simple et efficace.
Comment gères tu la surveillance de Zwave-js-ui avec monit, je n'ai rien trouvé sur ce sujet.
Re: Emplacement et sauvegarde fichiers zwave-js-ui
Publié : 11 sept. 2025, 20:07
par Chrominator
Content que ça te rende service.
Pour monit, j'ai un script qui permet de s'assurer que zwave-js-ui est bien démarré, et les specs qui déterminent comment monit doit interpréter le résultat.
Ca donne ça dans monit (dernière ligne) :

- Capture d'écran 2025-09-11 195902.png (32.39 Kio) Consulté 15835 fois
L'output n'est pas vraiment en ligne (horaire de démarrage, c'est toujours le précédent) mais ça fonctionne, alors j'ai laissé comme ça.
Les specs (stockées dans un fichier nommé check_container_zwave-js-ui dans /etc/monit/conf-available)
Code : Tout sélectionner
CHECK PROGRAM zwave-js-ui WITH PATH /etc/monit/scripts/check_container_zwave-js-ui.sh
START PROGRAM = "/etc/monit/scripts/zwave-js-ui_init.sh start"
STOP PROGRAM = "/etc/monit/scripts/zwave-js-ui_init.sh stop"
IF status != 0 FOR 3 CYCLES THEN RESTART
IF 2 RESTARTS WITHIN 5 CYCLES THEN UNMONITOR
Bien sûr pour le rendre actif je crée un lien de ce fichier dans /etc/monit/conf-enabled
Le script /etc/monit/scripts/check_container_zwave-js-ui.sh :
Code : Tout sélectionner
#! /bin/bash
#docker top "zwave-js-ui" | awk -F" " 'NR>1{print "zwave-js-ui started @"$5 " pid " $2 }'
status=(`docker top "zwave-js-ui" | awk -F" " 'NR>1{print $5" "$2" "$8}'`)
start_time=${status[0]}
pid=${status[1]}
node=${status[2]}
echo "zwave-js-ui started @"$start_time "pid "$pid
if [ $node != "node" ]; then
exit 255
else
exit 0
fi
Le code retour est exploité par la spec monit comme tu le vois pour déterminer s'il y a une anomalie.
Tu as déjà le script /etc/monit/scripts/zwave-js-ui_init.sh mais je le répète ici par esprit de simplification :
Code : Tout sélectionner
#!/bin/bash
# zwave-js-ui_init.sh
# Manage zwave-js-ui container status
# Author: Chrominator
# Creation: 2022-10-22
cd /home/pi/domoticz
if [ $1 = "start" ]; then
/usr/local/bin/docker-compose up -d
else
if [ $1 = "restart" ]; then
/usr/local/bin/docker-compose stop
/usr/local/bin/docker-compose up -d
else
/usr/local/bin/docker-compose $1
fi
fi
A ta dispo.