++ new project
This commit is contained in:
@@ -1,95 +0,0 @@
|
||||
# ============================================================
|
||||
# Docker Compose - S3 to Local Mirror + Web Dashboard (Multi-Sync)
|
||||
# ============================================================
|
||||
# Servizio che sincronizza MULTIPLE bucket S3-compatibili
|
||||
# verso cartelle locali montate come volumi.
|
||||
# Include una dashboard web in tempo reale con supporto tab.
|
||||
#
|
||||
# Uso:
|
||||
# 1. Configurare il file .env con MULTIPLE bucket (SYNC_1, SYNC_2, etc.)
|
||||
# 2. docker compose up -d
|
||||
# 3. Aprire http://localhost:8080 per la dashboard con tab switcher
|
||||
# 4. I file appariranno nei rispettivi mount point
|
||||
#
|
||||
# Formato .env per multiple sync:
|
||||
# SYNC_CONFIGS='[
|
||||
# {"id":"sync1", "bucket":"bucket-a", "local_path":"/data/local1", "interval":300},
|
||||
# {"id":"sync2", "bucket":"bucket-b", "local_path":"/data/local2", "interval":600}
|
||||
# ]'
|
||||
# ============================================================
|
||||
|
||||
services:
|
||||
s3-sync:
|
||||
build:
|
||||
context: .
|
||||
dockerfile: Dockerfile
|
||||
container_name: s3-to-local-sync
|
||||
restart: unless-stopped
|
||||
|
||||
# Variabili d'ambiente passate al container
|
||||
environment:
|
||||
# --- S3 (configurazione base, usata se SYNC_CONFIGS non è definito) ---
|
||||
- S3_ENDPOINT=${S3_ENDPOINT}
|
||||
- S3_ACCESS_KEY=${S3_ACCESS_KEY}
|
||||
- S3_SECRET_KEY=${S3_SECRET_KEY}
|
||||
- S3_BUCKET=${S3_BUCKET}
|
||||
- S3_PATH_PREFIX=${S3_PATH_PREFIX:-}
|
||||
- S3_REGION=${S3_REGION:-}
|
||||
- S3_FORCE_PATH_STYLE=${S3_FORCE_PATH_STYLE:-true}
|
||||
- S3_INSECURE_SSL=${S3_INSECURE_SSL:-false}
|
||||
# --- Sync / Pianificazione ---
|
||||
- SYNC_INTERVAL=${SYNC_INTERVAL:-300}
|
||||
- SYNC_SCHEDULE=${SYNC_SCHEDULE:-}
|
||||
- SYNC_ON_START=${SYNC_ON_START:-true}
|
||||
- SYNC_MODE=${SYNC_MODE:-mirror}
|
||||
- SYNC_TRANSFERS=${SYNC_TRANSFERS:-4}
|
||||
- SYNC_BANDWIDTH=${SYNC_BANDWIDTH:-0}
|
||||
- SYNC_LOG_LEVEL=${SYNC_LOG_LEVEL:-INFO}
|
||||
# --- Notifiche Gotify ---
|
||||
- GOTIFY_ENABLED=${GOTIFY_ENABLED:-false}
|
||||
- GOTIFY_URL=${GOTIFY_URL:-}
|
||||
- GOTIFY_TOKEN=${GOTIFY_TOKEN:-}
|
||||
- GOTIFY_PRIORITY=${GOTIFY_PRIORITY:-5}
|
||||
# --- Web Dashboard ---
|
||||
- WEB_PORT=${WEB_PORT:-8080}
|
||||
- STATE_DIR=/data/state
|
||||
# --- Multi-Sync Configuration (opzionale, se speci ficato override S3_BUCKET) ---
|
||||
- SYNC_CONFIGS=${SYNC_CONFIGS:-}
|
||||
# --- Sistema ---
|
||||
- PUID=${PUID:-1000}
|
||||
- PGID=${PGID:-1000}
|
||||
- TZ=${TZ:-Europe/Rome}
|
||||
|
||||
# Volumi:
|
||||
# - Cartelle locali per sync multiple (default)
|
||||
# - Cartella locale legacy per sync singola
|
||||
# - Volume per lo stato interno (persistente tra i restart)
|
||||
volumes:
|
||||
- ${LOCAL_SYNC_PATH_1:-./data/sync1}:/data/local1
|
||||
- ${LOCAL_SYNC_PATH_2:-./data/sync2}:/data/local2
|
||||
- ${LOCAL_SYNC_PATH:-./data}:/data/local
|
||||
- sync-state:/data/state
|
||||
|
||||
# Porta per la dashboard web
|
||||
ports:
|
||||
- "${WEB_PORT:-8080}:${WEB_PORT:-8080}"
|
||||
|
||||
# Healthcheck: verifica che sia il sync che il web server siano attivi
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "pgrep -f sync.sh && wget -q --spider http://localhost:${WEB_PORT:-8080}/ || exit 1"]
|
||||
interval: 60s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
start_period: 30s
|
||||
|
||||
# Limiti risorse (opzionali, decommentare se necessario)
|
||||
# deploy:
|
||||
# resources:
|
||||
# limits:
|
||||
# memory: 256M
|
||||
# cpus: "0.5"
|
||||
|
||||
# Volume per lo stato persistente della sync (storico, log, etc.)
|
||||
volumes:
|
||||
sync-state:
|
||||
driver: local
|
||||
Reference in New Issue
Block a user