Rebrand from "Docker Scripts" to "Docker Stack Template" and restructure the README as a step-by-step guide. Add `--check` option to `setup.sh` for validating system prerequisites with configurable `CMD_DEPEND`.
109 lines
6.7 KiB
Plaintext
109 lines
6.7 KiB
Plaintext
# =============================================================================
|
|
# 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) <<<}"
|