++ Primo Caricamento

This commit is contained in:
2026-03-18 13:49:16 +01:00
commit d2080c936f
9 changed files with 2174 additions and 0 deletions

49
entrypoint.sh Normal file
View File

@@ -0,0 +1,49 @@
#!/usr/bin/env bash
# ============================================================
# entrypoint.sh - Avvia sia il web server che lo script di sync
# ============================================================
# Gestisce i due processi:
# 1. Flask web dashboard (background)
# 2. Script di sincronizzazione rclone (foreground)
#
# Lo shutdown pulito viene propagato a entrambi i processi.
# ============================================================
set -euo pipefail
# --- Crea directory condivise ---
mkdir -p /data/state /data/local
# --- Porta web (configurabile) ---
WEB_PORT="${WEB_PORT:-8080}"
echo "[ENTRYPOINT] Avvio dashboard web su porta ${WEB_PORT}..."
# Avvia il web server Flask in background
# - Usa python3 -u per output unbuffered (log immediati)
python3 -u /app/web/app.py &
WEB_PID=$!
echo "[ENTRYPOINT] Dashboard avviata (PID: ${WEB_PID})"
echo "[ENTRYPOINT] Avvio sincronizzazione..."
# --- Gestione shutdown: termina entrambi i processi ---
cleanup() {
echo "[ENTRYPOINT] Arresto in corso..."
# Invia SIGTERM al web server
kill "${WEB_PID}" 2>/dev/null || true
wait "${WEB_PID}" 2>/dev/null || true
echo "[ENTRYPOINT] Arresto completato."
}
trap cleanup SIGTERM SIGINT
# Avvia lo script di sync in foreground
# Questo è il processo principale: se termina, il container si ferma
/usr/local/bin/sync.sh &
SYNC_PID=$!
# Attendi che uno dei due processi termini
wait -n "${WEB_PID}" "${SYNC_PID}" 2>/dev/null || true
# Se siamo qui, un processo è terminato: ferma l'altro
cleanup