Files
docker-stack-template/docker-scripts.conf
T
bruno 0fc2b8d0d6 Adopter la structure FHS /srv/docker/ et /opt/docker-scripts/
Changements majeurs :
- SCRIPTS_DIR passe de ~/scripts a /opt/docker-scripts (FHS /opt/)
- COMPOSE_DIR, VOLUME_DATA, VOLUME_MYSQL passes a /srv/docker/ (FHS /srv/)
- Ajout de GIT_REPO et GIT_BRANCH dans docker-scripts.conf
- setup.sh source la config des le debut pour centraliser tous les defauts
- Tous les fallbacks internes des scripts alignes avec la config
- docker-compose.yml de reference mis a jour
- README : nouvelles instructions d'installation et chemins

Avantages : un seul dossier par app Docker, backup/migration simplifies,
structure standard FHS, aucune modif de script necessaire par projet.
2026-06-26 15:22:47 -04:00

95 lines
5.9 KiB
Plaintext

# =============================================================================
# docker-scripts.conf — Configuration unifiée pour scripts Docker génériques
# =============================================================================
# Ce fichier est sourcé par tous les scripts (backup, auto-update, install_cron).
# Les valeurs peuvent être surchargées par des variables d'environnement.
#
# Pour réutiliser avec une autre app Docker, changer DOCKER_APP_NAME :
# DOCKER_APP_NAME=monapp bash docker-backup.sh
# =============================================================================
# ─── 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-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) ─────────────────────────
# 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 ─────────────────────────────────────────────────────────────
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}"
DB_PASSWORD="${DB_PASSWORD:-chab30}"
DB_ROOT_PASSWORD="${DB_ROOT_PASSWORD:-gitea}"
# ─── 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 ─────────────────────────────────────────────────────────────────────
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) <<<}"