diff --git a/README.md b/README.md index ca0740e..576cb4f 100644 --- a/README.md +++ b/README.md @@ -102,14 +102,19 @@ flowchart LR ## ๐Ÿš€ Installation rapide ```bash -# Cloner et installer en une commande -mkdir ~/git/outils/ -cd ~/git/outils/ -git clone https://git.dracodev.net/Outils/gitea-scripts.git ~/scripts -bash ~/scripts/setup.sh +# 1. Crรฉer le dossier d'installation (standard FHS) +sudo mkdir -p /opt/docker-scripts /srv/docker +sudo chown -R $USER:$USER /opt/docker-scripts /srv/docker + +# 2. Cloner les scripts +cd /opt +git clone https://git.dracodev.net/Outils/docker-generic-scripts.git docker-scripts + +# 3. Installer +bash /opt/docker-scripts/setup.sh # Ou forcer sans confirmation -bash ~/scripts/setup.sh --force +bash /opt/docker-scripts/setup.sh --force ``` --- @@ -156,12 +161,12 @@ Sauvegarde complรจte et portable : DB MySQL + volumes Docker + configuration. | Variable | Dรฉfaut | Description | |----------|--------|-------------| | `BACKUP_DIR` | `/NFS/BACKUP/DOCKER/$HOSTNAME/gitea` | Destination backups | -| `COMPOSE_DIR` | `~/dev/git/outils/gitea` | Dossier docker-compose | +| `COMPOSE_DIR` | `/srv/docker/gitea` | Dossier docker-compose | | `DB_CONTAINER` | `gitea_db` | Conteneur MySQL | | `DB_NAME` | `gitea` | Nom base de donnรฉes | | `DB_ROOT_PASSWORD` | `gitea` | Mot de passe root MySQL | -| `VOLUME_DATA` | `/DOCKER_CONFIG/gitea/data` | Volume data Gitea | -| `VOLUME_MYSQL` | `/DOCKER_CONFIG/gitea/mysql` | Volume MySQL | +| `VOLUME_DATA` | `/srv/docker/gitea/data` | Volume data Gitea | +| `VOLUME_MYSQL` | `/srv/docker/gitea/mysql` | Volume MySQL | | `RETENTION_DAYS` | `30` | Rรฉtention jours | | `RETENTION_WEEKLY` | `4` | Backups dimanche conservรฉs | | `RETENTION_MONTHLY` | `6` | Backups 1er du mois conservรฉs | @@ -214,7 +219,7 @@ Vรฉrifie quotidiennement si une nouvelle image Docker Gitea est disponible. | Variable | Dรฉfaut | Description | |----------|--------|-------------| -| `COMPOSE_DIR` | `~/dev/git/outils/docker/gitea` | Dossier du docker-compose | +| `COMPOSE_DIR` | `/srv/docker/gitea` | Dossier du docker-compose | | `APP_SERVICE` | `gitea_server` | Nom du service dans compose | | `IMAGE_NAME` | `gitea/gitea` | Image Docker | | `IMAGE_TAG` | `latest` | Tag (version) | @@ -354,10 +359,10 @@ Si un lock stale est dรฉtectรฉ (PID inexistant), il est automatiquement nettoyรฉ ```bash # Mise ร  jour manuelle -bash ~/scripts/setup.sh --update +bash /opt/docker-scripts/setup.sh --update # Ajouter au cron pour mise ร  jour automatique (optionnel) -# 0 3 * * 0 bash ~/scripts/setup.sh --update --force +# 0 3 * * 0 bash /opt/docker-scripts/setup.sh --update --force ``` --- @@ -388,16 +393,16 @@ ls -t /NFS/BACKUP/DOCKER/dev-prod/gitea/gitea-backup-* | tail -n +10 | xargs rm tail -50 /var/log/gitea-update.log # Tester manuellement -bash ~/scripts/docker-auto-update.sh +bash /opt/docker-scripts/docker-auto-update.sh ``` ### Restauration ```bash # Lister les backups disponibles -bash ~/scripts/restore.sh +bash /opt/docker-scripts/restore.sh # Restaurer le plus rรฉcent -bash ~/scripts/restore.sh $(ls -td /NFS/BACKUP/DOCKER/dev-prod/gitea/gitea-backup-* | head -1) +bash /opt/docker-scripts/restore.sh $(ls -td /NFS/BACKUP/DOCKER/dev-prod/gitea/gitea-backup-* | head -1) ``` --- diff --git a/docker-auto-update.sh b/docker-auto-update.sh index 7616871..a0b712d 100644 --- a/docker-auto-update.sh +++ b/docker-auto-update.sh @@ -24,7 +24,7 @@ fi DOCKER_APP_NAME="${DOCKER_APP_NAME:-gitea}" # โ”€โ”€โ”€ Configuration locale (aprรจs chargement conf, permet surcharge env) โ”€โ”€โ”€โ”€โ”€โ”€ -COMPOSE_DIR="${COMPOSE_DIR:-$HOME/dev/git/outils/$DOCKER_APP_NAME}" +COMPOSE_DIR="${COMPOSE_DIR:-/srv/docker/$DOCKER_APP_NAME}" COMPOSE_FILE="${COMPOSE_FILE:-docker-compose.yml}" APP_SERVICE="${APP_SERVICE:-${DOCKER_APP_NAME}_server}" APP_CONTAINER="${APP_CONTAINER:-${DOCKER_APP_NAME}_server}" diff --git a/docker-backup.sh b/docker-backup.sh index adcb90b..f0230e2 100644 --- a/docker-backup.sh +++ b/docker-backup.sh @@ -47,8 +47,8 @@ DB_PASSWORD="${DB_PASSWORD:-chab30}" DB_ROOT_PASSWORD="${DB_ROOT_PASSWORD:-$DOCKER_APP_NAME}" # Volumes Docker - chemins Hร”TE (dรฉrivรฉs de DOCKER_APP_NAME) -VOLUME_DATA="${VOLUME_DATA:-/DOCKER_CONFIG/$DOCKER_APP_NAME/data}" -VOLUME_MYSQL="${VOLUME_MYSQL:-/DOCKER_CONFIG/$DOCKER_APP_NAME/mysql}" +VOLUME_DATA="${VOLUME_DATA:-/srv/docker/$DOCKER_APP_NAME/data}" +VOLUME_MYSQL="${VOLUME_MYSQL:-/srv/docker/$DOCKER_APP_NAME/mysql}" # Rรฉtention RETENTION_DAYS="${RETENTION_DAYS:-30}" @@ -379,9 +379,9 @@ set -euo pipefail # โ”€โ”€โ”€ Configuration cible โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ DOCKER_APP_NAME="${DOCKER_APP_NAME:-__DOCKER_APP_NAME__}" -TARGET_COMPOSE_DIR="${TARGET_COMPOSE_DIR:-$HOME/dev/git/outils/$DOCKER_APP_NAME}" -TARGET_VOLUME_DATA="${TARGET_VOLUME_DATA:-/DOCKER_CONFIG/$DOCKER_APP_NAME/data}" -TARGET_VOLUME_MYSQL="${TARGET_VOLUME_MYSQL:-/DOCKER_CONFIG/$DOCKER_APP_NAME/mysql}" +TARGET_COMPOSE_DIR="${TARGET_COMPOSE_DIR:-/srv/docker/$DOCKER_APP_NAME}" +TARGET_VOLUME_DATA="${TARGET_VOLUME_DATA:-/srv/docker/$DOCKER_APP_NAME/data}" +TARGET_VOLUME_MYSQL="${TARGET_VOLUME_MYSQL:-/srv/docker/$DOCKER_APP_NAME/mysql}" DB_ROOT_PASSWORD="${DB_ROOT_PASSWORD:-$DOCKER_APP_NAME}" DB_NAME="${DB_NAME:-$DOCKER_APP_NAME}" DB_USER="${DB_USER:-$DOCKER_APP_NAME}" diff --git a/docker-compose.yml b/docker-compose.yml index be5f5d2..b5ae39e 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -20,8 +20,8 @@ services: networks: - gitea volumes: - - /DOCKER_CONFIG/gitea/data:/data - - /DOCKER_CONFIG/gitea/data/themes:/data/gitea/public/assets/css/themes + - /srv/docker/gitea/data:/data + - /srv/docker/gitea/data/themes:/data/gitea/public/assets/css/themes - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro ports: @@ -49,7 +49,7 @@ services: networks: - gitea volumes: - - /DOCKER_CONFIG/gitea/mysql:/var/lib/mysql + - /srv/docker/gitea/mysql:/var/lib/mysql healthcheck: test: [ diff --git a/docker-scripts.conf b/docker-scripts.conf index f3c455e..8d47570 100644 --- a/docker-scripts.conf +++ b/docker-scripts.conf @@ -12,12 +12,18 @@ # Hรดte : automatiquement dรฉtectรฉ, surchargeable HOSTNAME="${HOSTNAME:-$(hostname)}" +# Dรฉpรดt Git source (utilisรฉ par setup.sh pour clone/mise ร  jour) +GIT_REPO="${GIT_REPO:-https://git.dracodev.net/Outils/docker-generic-scripts.git}" +GIT_BRANCH="${GIT_BRANCH:-main}" + # Nom de l'application Docker (dรฉfinit tous les dรฉrivรฉs) DOCKER_APP_NAME="${DOCKER_APP_NAME:-gitea}" # โ”€โ”€โ”€ Chemins (dรฉrivรฉs de DOCKER_APP_NAME et HOSTNAME) โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ -SCRIPTS_DIR="${SCRIPTS_DIR:-$HOME/scripts}" -COMPOSE_DIR="${COMPOSE_DIR:-$HOME/dev/git/outils/$DOCKER_APP_NAME}" +# Dossier d'installation des scripts (standard FHS : /opt/ pour logiciels add-on) +SCRIPTS_DIR="${SCRIPTS_DIR:-/opt/docker-scripts}" +# Dossier de l'application Docker (standard FHS : /srv/ pour donnรฉes de services) +COMPOSE_DIR="${COMPOSE_DIR:-/srv/docker/$DOCKER_APP_NAME}" COMPOSE_FILE="${COMPOSE_FILE:-docker-compose.yml}" BACKUP_DIR="${BACKUP_DIR:-/NFS/BACKUP/DOCKER/$HOSTNAME/$DOCKER_APP_NAME}" LOCK_DIR="${LOCK_DIR:-/tmp}" @@ -39,8 +45,9 @@ DB_PASSWORD="${DB_PASSWORD:-chab30}" DB_ROOT_PASSWORD="${DB_ROOT_PASSWORD:-gitea}" # โ”€โ”€โ”€ Volumes Docker - chemins Hร”TE (dรฉrivรฉs de DOCKER_APP_NAME) โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ -VOLUME_DATA="${VOLUME_DATA:-/DOCKER_CONFIG/$DOCKER_APP_NAME/data}" -VOLUME_MYSQL="${VOLUME_MYSQL:-/DOCKER_CONFIG/$DOCKER_APP_NAME/mysql}" +# Co-localisรฉs dans /srv/docker/ pour faciliter backup et migration +VOLUME_DATA="${VOLUME_DATA:-/srv/docker/$DOCKER_APP_NAME/data}" +VOLUME_MYSQL="${VOLUME_MYSQL:-/srv/docker/$DOCKER_APP_NAME/mysql}" # โ”€โ”€โ”€ URLs โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ HEALTH_CHECK_URL="${HEALTH_CHECK_URL:-http://localhost:3000}" diff --git a/install_cron.sh b/install_cron.sh index 69cfb57..78e0a63 100755 --- a/install_cron.sh +++ b/install_cron.sh @@ -26,7 +26,7 @@ fi DOCKER_APP_NAME="${DOCKER_APP_NAME:-gitea}" # โ”€โ”€โ”€ Configuration locale โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ -SCRIPTS_DIR="${SCRIPTS_DIR:-$HOME/scripts}" +SCRIPTS_DIR="${SCRIPTS_DIR:-/opt/docker-scripts}" CRON_BACKUP_SCHEDULE="${CRON_BACKUP_SCHEDULE:-0 2 * * *}" CRON_UPDATE_SCHEDULE="${CRON_UPDATE_SCHEDULE:-0 4 * * *}" BACKUP_SCRIPT="${BACKUP_SCRIPT:-docker-backup.sh}" @@ -60,7 +60,7 @@ Options : --help Ce message Configuration (variables d'environnement) : - SCRIPTS_DIR Dossier des scripts (dรฉfaut: \$HOME/scripts) + SCRIPTS_DIR Dossier des scripts (dรฉfaut: /opt/docker-scripts) CRON_BACKUP_SCHEDULE Horaire backup (dรฉfaut: 0 2 * * *) CRON_UPDATE_SCHEDULE Horaire update (dรฉfaut: 0 4 * * *) EOF @@ -211,7 +211,7 @@ do_install() { echo "" err "Prรฉrequis manquants. Placez les scripts dans $SCRIPTS_DIR/" echo "" - echo " git clone https://git.dracodev.net/Outils/docker-scripts.git $SCRIPTS_DIR" + echo " git clone https://git.dracodev.net/Outils/docker-generic-scripts.git $SCRIPTS_DIR" echo "" exit 1 } diff --git a/restore.sh b/restore.sh index f29cce0..f18f150 100644 --- a/restore.sh +++ b/restore.sh @@ -46,9 +46,9 @@ Options : --help Cette aide Variables d'environnement : - TARGET_COMPOSE_DIR Dossier docker-compose cible (dรฉfaut: ~/dev/git/outils/docker/\${DOCKER_APP_NAME}) - TARGET_VOLUME_DATA Volume data cible (dรฉfaut: /DOCKER_CONFIG/\${DOCKER_APP_NAME}/data) - TARGET_VOLUME_MYSQL Volume MySQL cible (dรฉfaut: /DOCKER_CONFIG/\${DOCKER_APP_NAME}/mysql) + TARGET_COMPOSE_DIR Dossier docker-compose cible (dรฉfaut: /srv/docker/\${DOCKER_APP_NAME}) + TARGET_VOLUME_DATA Volume data cible (dรฉfaut: /srv/docker/\${DOCKER_APP_NAME}/data) + TARGET_VOLUME_MYSQL Volume MySQL cible (dรฉfaut: /srv/docker/\${DOCKER_APP_NAME}/mysql) DB_ROOT_PASSWORD Mot de passe root MySQL (dรฉfaut: \${DOCKER_APP_NAME}) DB_NAME Nom base de donnรฉes (dรฉfaut: \${DOCKER_APP_NAME}) EOF @@ -199,9 +199,9 @@ echo "โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• echo "" # โ”€โ”€โ”€ Configuration cible โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ -TARGET_COMPOSE_DIR="${TARGET_COMPOSE_DIR:-$HOME/dev/git/outils/docker/$DOCKER_APP_NAME}" -TARGET_VOLUME_DATA="${TARGET_VOLUME_DATA:-/DOCKER_CONFIG/$DOCKER_APP_NAME/data}" -TARGET_VOLUME_MYSQL="${TARGET_VOLUME_MYSQL:-/DOCKER_CONFIG/$DOCKER_APP_NAME/mysql}" +TARGET_COMPOSE_DIR="${TARGET_COMPOSE_DIR:-/srv/docker/$DOCKER_APP_NAME}" +TARGET_VOLUME_DATA="${TARGET_VOLUME_DATA:-/srv/docker/$DOCKER_APP_NAME/data}" +TARGET_VOLUME_MYSQL="${TARGET_VOLUME_MYSQL:-/srv/docker/$DOCKER_APP_NAME/mysql}" DB_ROOT_PASSWORD="${DB_ROOT_PASSWORD:-$DOCKER_APP_NAME}" DB_NAME="${DB_NAME:-$DOCKER_APP_NAME}" DB_USER="${DB_USER:-$DOCKER_APP_NAME}" diff --git a/setup.sh b/setup.sh index f0a8fc8..78ec9c5 100644 --- a/setup.sh +++ b/setup.sh @@ -20,6 +20,13 @@ set -euo pipefail +# โ”€โ”€โ”€ Charger la configuration si prรฉsente (permet de centraliser tous les dรฉfauts) โ”€ +SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" +if [[ -f "$SCRIPT_DIR/docker-scripts.conf" ]]; then + # shellcheck source=/dev/null + source "$SCRIPT_DIR/docker-scripts.conf" +fi + # โ”€โ”€โ”€ Couleurs โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ RED='\033[0;31m'; GREEN='\033[0;32m'; YELLOW='\033[1;33m'; CYAN='\033[0;36m'; BLUE='\033[0;34m'; NC='\033[0m' ok() { echo -e " ${GREEN}โœ…${NC} $1"; } @@ -28,10 +35,10 @@ err() { echo -e " ${RED}โŒ${NC} $1"; } info() { echo -e " ${CYAN}๐Ÿ“‹${NC} $1"; } step() { echo -e "\n${BLUE}โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•${NC}"; echo -e "${BLUE}๐Ÿ”ง $1${NC}"; echo -e "${BLUE}โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•${NC}"; } -# โ”€โ”€โ”€ Configuration โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ -GIT_REPO="${GIT_REPO:-https://git.dracodev.net/Outils/docker-scripts.git}" -SCRIPTS_DIR="${SCRIPTS_DIR:-$HOME/scripts}" -BRANCH="${BRANCH:-main}" +# โ”€โ”€โ”€ Configuration (fallbacks aprรจs chargement de la config) โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ +GIT_REPO="${GIT_REPO:-https://git.dracodev.net/Outils/docker-generic-scripts.git}" +SCRIPTS_DIR="${SCRIPTS_DIR:-/opt/docker-scripts}" +BRANCH="${GIT_BRANCH:-main}" DOCKER_APP_NAME="${DOCKER_APP_NAME:-gitea}" # โ”€โ”€โ”€ Usage โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ @@ -47,7 +54,7 @@ Options : Variables d'environnement : GIT_REPO URL du dรฉpรดt Git (dรฉfaut: $GIT_REPO) - SCRIPTS_DIR Dossier d'installation (dรฉfaut: \$HOME/scripts) + SCRIPTS_DIR Dossier d'installation (dรฉfaut: /opt/docker-scripts) BRANCH Branche Git ร  utiliser (dรฉfaut: main) EOF exit 0 @@ -177,27 +184,32 @@ make_executable() { setup_logs() { step "ร‰tape 4/6 : Configuration des logs" - # Charger la config pour connaรฎtre LOG_DIR - if [[ -f "$SCRIPTS_DIR/docker-scripts.conf" ]]; then - source "$SCRIPTS_DIR/docker-scripts.conf" - fi + # LOG_DIR, BACKUP_CRON_LOG, UPDATE_CRON_LOG dรฉjร  chargรฉs depuis docker-scripts.conf LOG_DIR="${LOG_DIR:-/var/log}" + BACKUP_CRON_LOG="${BACKUP_CRON_LOG:-$LOG_DIR/${DOCKER_APP_NAME}-backup-cron.log}" + UPDATE_CRON_LOG="${UPDATE_CRON_LOG:-$LOG_DIR/${DOCKER_APP_NAME}-update-cron.log}" if [[ -d "$LOG_DIR" ]] && [[ -w "$LOG_DIR" ]]; then ok "Dossier de logs $LOG_DIR accessible" elif [[ -d "$LOG_DIR" ]]; then warn "Pas de droit d'รฉcriture sur $LOG_DIR" info "Les logs seront รฉcrits dans $HOME/" + LOG_DIR="$HOME" + BACKUP_CRON_LOG="$HOME/${DOCKER_APP_NAME}-backup-cron.log" + UPDATE_CRON_LOG="$HOME/${DOCKER_APP_NAME}-update-cron.log" else if mkdir -p "$LOG_DIR" 2>/dev/null; then ok "Dossier de logs $LOG_DIR crรฉรฉ" else warn "Impossible de crรฉer $LOG_DIR โ€” logs dans $HOME/" + LOG_DIR="$HOME" + BACKUP_CRON_LOG="$HOME/${DOCKER_APP_NAME}-backup-cron.log" + UPDATE_CRON_LOG="$HOME/${DOCKER_APP_NAME}-update-cron.log" fi fi # Crรฉer les fichiers de log s'ils n'existent pas - touch "$HOME/${DOCKER_APP_NAME}-backup-cron.log" "$HOME/${DOCKER_APP_NAME}-update-cron.log" 2>/dev/null || true + touch "$BACKUP_CRON_LOG" "$UPDATE_CRON_LOG" 2>/dev/null || true return 0 } @@ -218,7 +230,7 @@ setup_logrotate() { need_sudo=true fi - local log_files="$HOME/${DOCKER_APP_NAME}-backup-cron.log $HOME/${DOCKER_APP_NAME}-update-cron.log /var/log/${DOCKER_APP_NAME}-backup.log /var/log/${DOCKER_APP_NAME}-update.log" + local log_files="$BACKUP_CRON_LOG $UPDATE_CRON_LOG /var/log/${DOCKER_APP_NAME}-backup.log /var/log/${DOCKER_APP_NAME}-update.log" cat << LOGROTATE # Rotation des logs Docker scripts @@ -444,8 +456,8 @@ echo "" echo "๐Ÿ“Š Logs :" echo " Backup : ${LOG_DIR:-/var/log}/${DOCKER_APP_NAME}-backup.log" echo " Update : ${LOG_DIR:-/var/log}/${DOCKER_APP_NAME}-update.log" -echo " Cron backup : $HOME/${DOCKER_APP_NAME}-backup-cron.log" -echo " Cron update : $HOME/${DOCKER_APP_NAME}-update-cron.log" +echo " Cron backup : ${BACKUP_CRON_LOG:-$HOME/${DOCKER_APP_NAME}-backup-cron.log}" +echo " Cron update : ${UPDATE_CRON_LOG:-$HOME/${DOCKER_APP_NAME}-update-cron.log}" echo "" echo "๐Ÿ• Tรขches cron :" echo " Backup : $(grep "$SCRIPTS_DIR/docker-backup.sh" <(crontab -l 2>/dev/null) | awk '{print $1" "$2" "$3" "$4" "$5}')"