++ new project

This commit is contained in:
2026-03-18 16:57:46 +01:00
parent f1711db72a
commit c06c916e1d
13 changed files with 1 additions and 3008 deletions

View File

@@ -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