Backup e ripristino
Il backup è responsabilità di chi gestisce l’installazione. È anche il modo per spostare Arenile da un server all’altro o da una soluzione all’altra (ad esempio da un server in sede a un VPS): il file di backup di SQLite è lo stesso in ogni edizione.
Cosa salvare
Sezione intitolata “Cosa salvare”| Cosa | Dove | Perché |
|---|---|---|
| Il database | file di backup prodotto da arenile backup (SQLite) o pg_dump (PostgreSQL) |
Tutti i dati: configurazione, prenotazioni, clienti, incassi |
ARENILE_SECRET_KEY |
il tuo gestore di password o una cassaforte | Senza di essa chiavi Stripe, segreti e TOTP salvati non si decifrano |
Il file .env o la configurazione |
copia sicura | Per ricreare il server identico |
Backup con SQLite
Sezione intitolata “Backup con SQLite”arenile backup produce una copia consistente anche con il server in funzione (usa VACUUM INTO di
SQLite): non serve fermare nulla. Il file di destinazione non deve esistere già e viene creato con permessi
600.
docker compose exec arenile /arenile backup --out /data/backup/arenile-$(date +%F).dbdocker compose cp arenile:/data/backup/arenile-$(date +%F).db ./arenile backup --out /var/backups/arenile/arenile-$(date +%F).dbAutomatizzare
Sezione intitolata “Automatizzare”Un backup notturno con cron sull’host, con copia fuori dal server (qui con rclone, ma va bene qualsiasi
strumento) e pulizia delle copie più vecchie di 30 giorni:
30 3 * * * root cd /opt/arenile && \ docker compose exec -T arenile /arenile backup --out /data/backup/arenile-$(date +\%F).db && \ docker compose cp arenile:/data/backup/arenile-$(date +\%F).db /var/backups/arenile/ && \ rclone copy /var/backups/arenile remoto:arenile-backup && \ find /var/backups/arenile -name 'arenile-*.db' -mtime +30 -deleteBackup con PostgreSQL
Sezione intitolata “Backup con PostgreSQL”Il comando integrato funziona solo con SQLite: con PostgreSQL usa gli strumenti standard del database.
docker compose -f docker-compose.postgres.yml exec postgres \ pg_dump -U arenile -Fc arenile > arenile-$(date +%F).dumpRipristino
Sezione intitolata “Ripristino”-
Ferma il server. Il ripristino va fatto a server fermo:
Finestra del terminale docker compose stop arenile -
Lancia il ripristino con un container temporaneo che monta il file di backup e usa lo stesso volume:
Finestra del terminale docker compose run --rm --entrypoint /arenile \-v "$PWD/arenile-2027-08-15.db:/restore.db:ro" arenile restore --in /restore.dbIl comando verifica che il file sia un database SQLite integro e di Arenile (controllo di integrità), rinomina il database corrente in
arenile.db.pre-restore-<data>(non viene mai cancellato) e copia il backup al suo posto. -
Riavvia il server: le eventuali migrazioni mancanti vengono applicate all’avvio.
Finestra del terminale docker compose up -d
Con PostgreSQL: pg_restore --clean --dbname="$DATABASE_URL" arenile.dump.
Regole d’oro
Sezione intitolata “Regole d’oro”- 3-2-1: tre copie, su due supporti diversi, una fuori sede.
- Prova il ripristino su un’istanza di prova prima dell’inizio della stagione: un backup mai ripristinato non è un backup.
- Backup prima di ogni aggiornamento (vedi Aggiornamenti).
- Conserva
ARENILE_SECRET_KEYinsieme alla procedura di ripristino, ma non nello stesso posto del file di backup.
Spostare Arenile su un altro server
Sezione intitolata “Spostare Arenile su un altro server”- Installa Arenile sul nuovo server con la stessa
ARENILE_SECRET_KEY. - Fai un backup sul vecchio server e ripristinalo sul nuovo.
- Aggiorna il DNS e
ARENILE_BASE_URLse cambia il dominio. - Se il dominio cambia, aggiorna anche l’URL del webhook nella dashboard di Stripe e il codice del widget sul sito (vedi Pagamenti online).

