# ============================================================================= # docker-scripts.conf — Configuration pour scripts Docker (TEMPLATE GLOBAL) # ============================================================================= # Ce fichier dans /opt/docker-scripts/ est le TEMPLATE par défaut. # Toutes les valeurs utilisent ${VAR:-defaut} pour être surchargeables. # # Pour déployer une nouvelle app : # 1. cp /opt/docker-scripts/docker-scripts.conf /srv/docker/monapp/ # 2. Éditer DOCKER_APP_NAME, IMAGE_NAME et les mots de passe # 3. Les scripts chargent automatiquement la config de l'app en priorité # # Surcharge possible par variable d'environnement : # DOCKER_APP_NAME=monapp bash docker-backup.sh # ============================================================================= # ─── Prérequis système ──────────────────────────────────────────────────────── # Liste des commandes requises (séparées par des virgules). # setup.sh --check les valide automatiquement. CMD_DEPEND="${CMD_DEPEND:-git,docker,curl,tar,gzip,crontab}" # ─── Identité ───────────────────────────────────────────────────────────────── # 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-stack-template.git}" GIT_BRANCH="${GIT_BRANCH:-main}" # Nom de l'application Docker (définit tous les dérivés) # 🔧 À CHANGER pour chaque app : DOCKER_APP_NAME="monapp" DOCKER_APP_NAME="${DOCKER_APP_NAME:-gitea}" # ─── Chemins (dérivés de DOCKER_APP_NAME et HOSTNAME) ───────────────────────── # 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}" # ─── Conteneurs (dérivés de DOCKER_APP_NAME) ────────────────────────────────── APP_SERVICE="${APP_SERVICE:-${DOCKER_APP_NAME}_server}" APP_CONTAINER="${APP_CONTAINER:-${DOCKER_APP_NAME}_server}" DB_SERVICE="${DB_SERVICE:-${DOCKER_APP_NAME}_db}" DB_CONTAINER="${DB_CONTAINER:-${DOCKER_APP_NAME}_db}" # ─── Image Docker ───────────────────────────────────────────────────────────── # 🔧 À CHANGER pour chaque app IMAGE_NAME="${IMAGE_NAME:-gitea/gitea}" IMAGE_TAG="${IMAGE_TAG:-latest}" # ─── Base de données (dérivés de DOCKER_APP_NAME) ───────────────────────────── DB_NAME="${DB_NAME:-$DOCKER_APP_NAME}" DB_USER="${DB_USER:-$DOCKER_APP_NAME}" # 🔧 À CHANGER : mots de passe (doivent correspondre à .env) DB_PASSWORD="${DB_PASSWORD:-change_me_in_production}" DB_ROOT_PASSWORD="${DB_ROOT_PASSWORD:-change_me_in_production}" # ─── Volumes Docker - chemins HÔTE (dérivés de DOCKER_APP_NAME) ─────────────── # 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 ───────────────────────────────────────────────────────────────────── # 🔧 À CHANGER pour chaque app HEALTH_CHECK_URL="${HEALTH_CHECK_URL:-http://localhost:3000}" HEALTH_CHECK_TIMEOUT="${HEALTH_CHECK_TIMEOUT:-30}" # Endpoint version (ex: /api/v1/version pour Gitea). Laisser vide pour détection auto. VERSION_ENDPOINT="${VERSION_ENDPOINT:-}" # ─── Logs (dérivés de DOCKER_APP_NAME) ──────────────────────────────────────── LOG_DIR="${LOG_DIR:-/var/log}" UPDATE_LOG="${UPDATE_LOG:-$LOG_DIR/${DOCKER_APP_NAME}-update.log}" BACKUP_LOG="${BACKUP_LOG:-$LOG_DIR/${DOCKER_APP_NAME}-backup.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}" LOG_RETENTION_DAYS="${LOG_RETENTION_DAYS:-90}" # ─── Rétention backups ──────────────────────────────────────────────────────── RETENTION_DAYS="${RETENTION_DAYS:-30}" RETENTION_WEEKLY="${RETENTION_WEEKLY:-4}" RETENTION_MONTHLY="${RETENTION_MONTHLY:-6}" # ─── Options backup ─────────────────────────────────────────────────────────── COMPRESS="${COMPRESS:-true}" VERIFY_BACKUP="${VERIFY_BACKUP:-true}" STOP_CONTAINERS="${STOP_CONTAINERS:-false}" ENABLE_NOTIFICATIONS="${ENABLE_NOTIFICATIONS:-false}" # ─── Notifications ──────────────────────────────────────────────────────────── NOTIFY_METHOD="${NOTIFY_METHOD:-log}" TELEGRAM_BOT_TOKEN="${TELEGRAM_BOT_TOKEN:-}" TELEGRAM_CHAT_ID="${TELEGRAM_CHAT_ID:-}" NTPY_TOPIC="${NTPY_TOPIC:-}" # ─── Backup distant (optionnel) ─────────────────────────────────────────────── REMOTE_BACKUP_ENABLED="${REMOTE_BACKUP_ENABLED:-false}" REMOTE_BACKUP_METHOD="${REMOTE_BACKUP_METHOD:-rsync}" REMOTE_BACKUP_HOST="${REMOTE_BACKUP_HOST:-}" REMOTE_BACKUP_USER="${REMOTE_BACKUP_USER:-}" REMOTE_BACKUP_PATH="${REMOTE_BACKUP_PATH:-}" REMOTE_BACKUP_SSH_KEY="${REMOTE_BACKUP_SSH_KEY:-$HOME/.ssh/id_rsa}" # ─── Cron (dérivés de DOCKER_APP_NAME) ──────────────────────────────────────── CRON_BACKUP_SCHEDULE="${CRON_BACKUP_SCHEDULE:-0 2 * * *}" CRON_UPDATE_SCHEDULE="${CRON_UPDATE_SCHEDULE:-0 4 * * *}" CRON_MARKER="${CRON_MARKER:-# >>> ${DOCKER_APP_NAME^^} SCRIPTS (managed by install_cron.sh) <<<}"