Vai al contenuto

Guida

Fa parte di: Associazione e accesso

Esportazione automatica: backup cifrati

Con l’esportazione automatica (pacchetto Pro) l’esportazione completa della vostra associazione vi arriva regolarmente – prelevata da uno script o caricata da noi sulla vostra destinazione. È sempre cifrata con la vostra chiave: chi intercetta il file non può leggerlo, e da noi resta al massimo 24 ore.

10 minuti di lettura

Prima di tutto: senza chiave privata nessun backup

  • Ogni esportazione automatica è cifrata con age. Si apre solo con la vostra chiave privata (il file club-backup.key) oppure con la vostra password. Se si perdono entrambe, tutti i backup sono illeggibili – nemmeno noi possiamo recuperarli.
  • Conservate quindi la chiave privata in due luoghi sicuri (ad es. una chiavetta USB cifrata nella cassaforte dell’associazione e il gestore di password del consiglio direttivo) – ma non sul computer o sul NAS che contiene i backup.
  • L’esportazione automatica la configura solo il titolare. Ogni configurazione è confermata con un codice che inviamo all’indirizzo del titolare.

Come funziona

  • Pacchetto Pro: l’esportazione automatica fa parte del pacchetto Pro. L’esportazione completa manuale con codice monouso resta gratuita in ogni livello.
  • Due strade: una chiave di esportazione permette a uno script da voi (Utilità di pianificazione di Windows, Synology, Linux) di prelevare l’esportazione. Oppure indicate una destinazione (WebDAV/Nextcloud, SFTP, S3) e carichiamo noi l’esportazione secondo una pianificazione.
  • Al massimo un’esportazione automatica al giorno per associazione – prelievo e caricamento insieme.
  • Sempre cifrata: l’esportazione viene cifrata già da noi, prima di essere salvata. Dopo il prelievo o il caricamento la eliminiamo subito, altrimenti dopo 24 ore.
  • Dopo ogni esportazione automatica il titolare riceve un’e-mail con data e ora, dimensione e indirizzo – a scelta invece un riepilogo settimanale.
  • Si configura nell’Amministrazione (/admin) in “Organizzazione” → “Dati anagrafici” → “Esportazione completa” → scheda “Automatica”, nella WebApp o nell’app in “Impostazioni” → “Area admin” → “Dati anagrafici”.

Installare age

  1. age è un piccolo programma di cifratura libero e gratuito (age-encryption.org). Serve sul computer su cui create la chiave e aprite i backup – non sul NAS che si limita a prelevarli.
  2. Windows: nel prompt dei comandi o in PowerShell digitate “winget install FiloSottile.age”.
  3. macOS: “brew install age”. Linux: tramite il gestore di pacchetti, ad es. “sudo apt install age”.
  4. Verifica: “age --version” mostra la versione installata.

Creare la chiave

age-keygen -o club-backup.key
Public key: age1…   ← questa riga va inserita nell’Amministrazione

Configurare la cifratura – passo per passo

  1. Aprite la scheda “Automatica” dell’esportazione completa e fate clic su “Configura cifratura”.
  2. Scegliete “Chiave pubblica (consigliata)” e incollate la riga che inizia con age1.
  3. Fate clic su “Crea file di prova”. Viene salvato il piccolo file test-automatischer-export.txt.age.
  4. Decifratelo da voi: “age -d -i club-backup.key test-automatischer-export.txt.age”. Compare una parola di controllo come K7Q4-M2XD.
  5. Inserite la parola di controllo e fate clic su “Conferma parola di controllo”. Inviamo un codice al titolare; con il codice la cifratura è attiva.
  6. Così è certo che potete davvero aprire i vostri backup – una chiave copiata male si nota adesso, non in caso di emergenza.

Password invece della chiave

Al posto di una chiave si può usare anche una password di almeno 12 caratteri. Il file si apre allora con “age -d file.zip.age”; age chiede la password.

Tenete presente: per cifrare, il nostro server deve conoscere la password. Da noi è conservata solo in forma cifrata, ma il gestore potrebbe tecnicamente decifrarla. Con una chiave pubblica questo è escluso – per questo consigliamo la chiave.

Creare una chiave di esportazione per uno script

  1. In “Chiavi di esportazione” inserite un nome, ad es. “NAS nella sede del club”, e scegliete la durata (al massimo 12 mesi).
  2. Facoltativo: se avete un indirizzo IP fisso, inseritelo in “solo da questi indirizzi IP” – la chiave funziona allora solo da lì.
  3. Fate clic su “Crea chiave di esportazione” e inserite il codice ricevuto per e-mail.
  4. La chiave viene mostrata una sola volta. Salvatela subito in un luogo sicuro per lo script – non nello script stesso.
  5. 30 e 7 giorni prima della scadenza vi avvisiamo per e-mail. “Rinnova” crea una nuova chiave; quella vecchia vale ancora 7 giorni, così potete aggiornare lo script con calma.

Windows: script per l’Utilità di pianificazione (PowerShell)

# backup-export.ps1 – preleva l’esportazione completa cifrata
# Install-Module CredentialManager -Scope CurrentUser   (einmalig / once)
# New-StoredCredential -Target 'drinklist-export' -UserName export -Password '<Export-Schlüssel / export key>' -Persist LocalMachine
$key  = (Get-StoredCredential -Target 'drinklist-export').GetNetworkCredential().Password
$base = 'https://drinklist.app/api/v1'
$h    = @{ Authorization = "Bearer $key" }
$export = Invoke-RestMethod -Method Post -Uri "$base/exports" -Headers $h
do { Start-Sleep -Seconds 30; $state = Invoke-RestMethod -Uri "$base/exports/$($export.id)" -Headers $h } while ($state.status -in 'Waiting','Running')
if ($state.status -ne 'Ready') { throw "Export: $($state.status)" }
$file = "D:\Backup\Verein\komplettexport-$(Get-Date -Format yyyy-MM-dd).zip.age"
Invoke-WebRequest -Uri "$base/exports/$($export.id)/download" -Headers $h -OutFile $file
# Aprire solo se serve, su un computer sicuro: age -d -i club-backup.key -o export.zip <file>

Configurare l’Utilità di pianificazione di Windows

  1. Salvate lo script come backup-export.ps1, ad es. in C:\Scripts. Memorizzate una volta la chiave di esportazione con New-StoredCredential in Gestione credenziali di Windows (righe 2 e 3 dello script).
  2. Aprite l’Utilità di pianificazione → “Crea attività” → nome “Backup associazione”, “Esegui indipendentemente dalla connessione degli utenti”.
  3. Attivazione: giornaliera, ad es. alle 03:30. Azione: programma “powershell.exe”, argomenti “-NoProfile -ExecutionPolicy Bypass -File C:\Scripts\backup-export.ps1”.
  4. Avviatelo una volta a mano e controllate che nella cartella di backup compaia un file *.zip.age.

Synology/NAS o Linux: script per cron

#!/bin/sh
# backup-export.sh – preleva l’esportazione completa cifrata
set -eu
KEY=$(cat /volume1/scripts/.drinklist-export-key)   # chmod 600
BASE=https://drinklist.app/api/v1
ID=$(curl -fsS -X POST -H "Authorization: Bearer $KEY" "$BASE/exports" | sed -n 's/.*"id":\([0-9]*\).*/\1/p')
while :; do
  STATUS=$(curl -fsS -H "Authorization: Bearer $KEY" "$BASE/exports/$ID" | sed -n 's/.*"status":"\([A-Za-z]*\)".*/\1/p')
  [ "$STATUS" = "Ready" ] && break
  case "$STATUS" in Waiting|Running) sleep 30 ;; *) echo "Export: $STATUS" >&2; exit 1 ;; esac
done
curl -fsS -H "Authorization: Bearer $KEY" -o "/volume1/backup/verein/export-$(date +%F).zip.age" "$BASE/exports/$ID/download"
# Il NAS non ha bisogno di age – i file si aprono solo su un computer sicuro

Synology: configurare l’Utilità di pianificazione

  1. Scrivete la chiave di esportazione in un file (ad es. /volume1/scripts/.drinklist-export-key) e rendetelo leggibile solo dall’utente di backup con “chmod 600”.
  2. Salvate lo script come /volume1/scripts/backup-export.sh e rendetelo eseguibile (“chmod 700”).
  3. Pannello di controllo → Utilità di pianificazione → Crea → Attività pianificata → Script definito dall’utente; utente: l’utente di backup; pianificazione: giornaliera alle 03:30; comando: /volume1/scripts/backup-export.sh.
  4. Su Linux basta una voce nella crontab: “30 3 * * * /volume1/scripts/backup-export.sh”.

Senza script: carichiamo noi sulla vostra destinazione

  1. In “Destinazione” scegliete il tipo: WebDAV (Nextcloud, Synology con il pacchetto WebDAV Server, porta https 5006), SFTP o S3.
  2. Nextcloud: usate l’indirizzo della cartella, ad es. https://cloud.club.org/remote.php/dav/files/backup/drinklist/, e una password per app di un utente di backup dedicato. Create prima la cartella.
  3. SFTP: inserite server, porta (22 o 2222), cartella, utente e password oppure una chiave SSH privata. Memorizziamo la chiave del server al primo test – se cambia, ci fermiamo per motivi di sicurezza.
  4. S3: endpoint (vuoto = Amazon), regione, bucket e un accesso che può solo scrivere (PutObject) – non gli servono né lettura né eliminazione.
  5. Scegliete la frequenza (giornaliera o settimanale) e l’orario – vale nel fuso orario della vostra associazione.
  6. “Verifica connessione e configura”: scriviamo un piccolo file di prova. Se funziona, il codice arriva al titolare; con il codice la destinazione è attiva.
  7. Se il caricamento non riesce, riproviamo tre volte e inviamo un’e-mail. Dopo tre esecuzioni fallite di fila mettiamo in pausa la destinazione finché non la riattivate.

Aprire un backup (decifrare)

age -d -i club-backup.key -o full-export.zip komplettexport-2026-10-07.zip.age
age -d -o full-export.zip komplettexport-2026-10-07.zip.age   # variante con password

La sicurezza in breve

  • Una chiave di esportazione può solo prelevare l’esportazione cifrata – niente conti, niente registrazioni, nessun altro dato.
  • Può crearla solo il titolare, con conferma tramite codice per e-mail; amministratori e supporto non possono creare chiavi di esportazione.
  • Accessi da un nuovo paese o richieste respinte ripetute mettono in pausa la chiave; il titolare riceve un’e-mail e può riattivarla o revocarla.
  • Se l’organizzazione è bloccata per una violazione, l’esportazione automatica è in pausa; l’esportazione manuale nell’Amministrazione resta disponibile.
  • Se cambia il titolare, chiavi e destinazioni restano. Il nuovo titolare riceve un’e-mail e può revocarle e configurare di nuovo la cifratura.

Se qualcosa non funziona

  • 429 “only one automatic export per day”: oggi c’è già stata un’esportazione automatica – domani si può di nuovo.
  • 403 “export key paused”: il rilevamento degli abusi ha messo in pausa la chiave. Il titolare la riattiva nell’Amministrazione con “Riattiva”.
  • 409 al download: l’esportazione è già stata prelevata o è stata eliminata dopo 24 ore – richiedetene una nuova il giorno dopo.
  • 423: l’organizzazione è bloccata; rivolgetevi al supporto.
  • Invece di interrogare nello script, un webhook può segnalare l’evento “export.ready” (Amministrazione → Integrazioni).

Non siete andati avanti?

Se una guida lascia una domanda aperta o qualcosa appare diverso da come è descritto: aprite un ticket, rispondiamo lì dentro. Il supporto funziona solo tramite ticket, non via e-mail.