Guía
Forma parte de: Club y cuenta
Exportación automática: copias de seguridad cifradas
Con la exportación automática (paquete Pro), la exportación completa de vuestro club os llega con regularidad: la recoge un script o la subimos nosotros a vuestro destino. Siempre va cifrada con vuestra propia clave: quien intercepte el archivo no puede leerlo, y en nuestros servidores permanece como máximo 24 horas.
10 minutos de lectura
Antes de nada: sin clave privada no hay copia de seguridad
- Cada exportación automática se cifra con age. Solo se puede abrir con vuestra clave privada (el archivo club-backup.key) o con vuestra contraseña. Si se pierden ambas, todas las copias son ilegibles; tampoco nosotros podemos recuperarlas.
- Guardad por eso la clave privada en dos lugares seguros (p. ej. una memoria USB cifrada en la caja fuerte del club y el gestor de contraseñas de la junta directiva), pero no en el ordenador ni en el NAS donde están las copias.
- La exportación automática solo la configura el propietario. Cada configuración se confirma con un código que enviamos a la dirección del propietario.
Cómo funciona
- Paquete Pro: la exportación automática forma parte del paquete Pro. La exportación completa manual con código de un solo uso sigue siendo gratuita en todos los niveles.
- Dos caminos: una clave de exportación permite que un script en vuestro lado (Programador de tareas de Windows, Synology, Linux) recoja la exportación. O indicáis un destino (WebDAV/Nextcloud, SFTP, S3) y nosotros subimos la exportación según un horario.
- Como máximo una exportación automática al día por club, recogida y subida juntas.
- Siempre cifrada: la exportación se cifra ya en nuestro lado antes de guardarse. Tras la recogida o la subida la eliminamos de inmediato; si no, a las 24 horas.
- Tras cada exportación automática el propietario recibe un correo con hora, tamaño y dirección; si lo prefiere, un resumen semanal en su lugar.
- Se configura en la Administración (/admin) en «Organización» → «Datos maestros» → «Exportación completa» → pestaña «Automática», en la WebApp o la app en «Ajustes» → «Área admin» → «Datos maestros».
Instalar age
- age es un pequeño programa de cifrado libre y gratuito (age-encryption.org). Lo necesitáis en el ordenador donde creáis la clave y abrís las copias, no en el NAS que solo las recoge.
- Windows: en el símbolo del sistema o en PowerShell, escribid «winget install FiloSottile.age».
- macOS: «brew install age». Linux: mediante el gestor de paquetes, p. ej. «sudo apt install age».
- Comprobar: «age --version» muestra la versión instalada.
Crear la clave
age-keygen -o club-backup.key
Public key: age1… ← esta línea se introduce en la Administración
Configurar el cifrado paso a paso
- Abrid la pestaña «Automática» de la exportación completa y haced clic en «Configurar cifrado».
- Elegid «Clave pública (recomendado)» y pegad la línea que empieza por age1.
- Haced clic en «Crear archivo de prueba». Se guarda el pequeño archivo test-automatischer-export.txt.age.
- Descifradlo en vuestro lado: «age -d -i club-backup.key test-automatischer-export.txt.age». Aparece una palabra de control como K7Q4-M2XD.
- Introducid la palabra de control y haced clic en «Confirmar palabra de control». Enviamos un código al propietario; con el código el cifrado queda activo.
- Así os aseguráis de que de verdad podéis abrir vuestras copias: una clave mal copiada se nota ahora, no en una emergencia.
Contraseña en lugar de clave
En lugar de una clave también se puede usar una contraseña de al menos 12 caracteres. El archivo se abre entonces con «age -d archivo.zip.age»; age pide la contraseña.
Tened en cuenta que, para cifrar, nuestro servidor tiene que conocer la contraseña. La guardamos solo cifrada, pero el operador podría descifrarla técnicamente. Con una clave pública eso es imposible; por eso recomendamos la clave.
Crear una clave de exportación para un script
- En «Claves de exportación» introducid un nombre, p. ej. «NAS en la sede del club», y elegid la validez (como máximo 12 meses).
- Opcional: si tenéis una dirección IP fija, introducidla en «solo desde estas direcciones IP»; la clave solo funcionará desde allí.
- Haced clic en «Crear clave de exportación» e introducid el código del correo.
- La clave se muestra una sola vez. Guardadla enseguida en un lugar seguro para el script, no en el propio script.
- Os avisamos por correo 30 y 7 días antes de que caduque. «Renovar» crea una clave nueva; la antigua sigue valiendo 7 días más para que podáis cambiar el script con calma.
Windows: script para el Programador de tareas (PowerShell)
# backup-export.ps1 – recoge la exportación completa cifrada
# 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
# Abrir solo cuando haga falta, en un ordenador de confianza: age -d -i club-backup.key -o export.zip <archivo>
Configurar el Programador de tareas de Windows
- Guardad el script como backup-export.ps1, p. ej. en C:\Scripts. Guardad una vez la clave de exportación con New-StoredCredential en el Administrador de credenciales de Windows (líneas 2 y 3 del script).
- Abrid el Programador de tareas → «Crear tarea» → nombre «Copia del club», «Ejecutar tanto si el usuario inició sesión como si no».
- Desencadenador: diario, p. ej. a las 03:30. Acción: programa «powershell.exe», argumentos «-NoProfile -ExecutionPolicy Bypass -File C:\Scripts\backup-export.ps1».
- Ejecutadlo una vez a mano y comprobad que aparece un archivo *.zip.age en la carpeta de copias.
Synology/NAS o Linux: script para cron
#!/bin/sh
# backup-export.sh – recoge la exportación completa cifrada
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"
# El NAS no necesita age: los archivos solo se abren en un ordenador de confianza
Synology: configurar el Programador de tareas
- Escribid la clave de exportación en un archivo (p. ej. /volume1/scripts/.drinklist-export-key) y haced que solo pueda leerlo el usuario de copias con «chmod 600».
- Guardad el script como /volume1/scripts/backup-export.sh y hacedlo ejecutable («chmod 700»).
- Panel de control → Programador de tareas → Crear → Tarea programada → Script definido por el usuario; usuario: el usuario de copias; programación: diaria a las 03:30; comando: /volume1/scripts/backup-export.sh.
- En Linux basta con una entrada en la crontab: «30 3 * * * /volume1/scripts/backup-export.sh».
Sin script: nosotros subimos a vuestro destino
- En «Destino» elegid el tipo: WebDAV (Nextcloud, Synology con el paquete WebDAV Server, puerto https 5006), SFTP o S3.
- Nextcloud: usad la dirección de la carpeta, p. ej. https://cloud.club.org/remote.php/dav/files/backup/drinklist/, y una contraseña de aplicación de un usuario de copias propio. Cread antes la carpeta.
- SFTP: introducid servidor, puerto (22 o 2222), carpeta, usuario y contraseña o una clave SSH privada. Memorizamos la clave del servidor en la primera prueba; si cambia, nos detenemos por motivos de seguridad.
- S3: endpoint (vacío = Amazon), región, bucket y un acceso que solo pueda escribir (PutObject); no necesita ni leer ni borrar.
- Elegid la frecuencia (diaria o semanal) y la hora; se aplica en la zona horaria de vuestro club.
- «Probar conexión y configurar»: escribimos un pequeño archivo de prueba. Si funciona, el código va al propietario; con el código el destino queda activo.
- Si la subida falla, lo reintentamos tres veces y enviamos un correo. Tras tres ejecuciones fallidas seguidas pausamos el destino hasta que lo volváis a habilitar.
Abrir una copia (descifrar)
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 contraseña
La seguridad de un vistazo
- Una clave de exportación solo puede recoger la exportación cifrada: ni cuentas, ni registros, ni otros datos.
- Solo el propietario puede crearla, con confirmación mediante código por correo; los administradores y el soporte no pueden crear claves de exportación.
- Los accesos desde un país nuevo o las solicitudes rechazadas repetidas pausan la clave; el propietario recibe un correo y puede volver a habilitarla o revocarla.
- Si la organización está bloqueada por una infracción, la exportación automática queda en pausa; la exportación manual en la Administración sigue disponible.
- Si cambia el propietario, las claves y los destinos se mantienen. El nuevo propietario recibe un correo y puede revocarlos y configurar de nuevo el cifrado.
Si algo no funciona
- 429 «only one automatic export per day»: hoy ya hubo una exportación automática; mañana vuelve a funcionar.
- 403 «export key paused»: la detección de abusos ha pausado la clave. El propietario la habilita en la Administración con «Volver a habilitar».
- 409 al descargar: la exportación ya se recogió o se eliminó tras 24 horas; solicitad una nueva al día siguiente.
- 423: la organización está bloqueada; contactad con el soporte.
- En lugar de consultar desde el script, un webhook puede avisar del evento «export.ready» (Administración → Integraciones).
¿No ha podido continuar?
Si una guía deja una pregunta abierta o algo se ve distinto a lo descrito, abra un ticket: le respondemos dentro de él. El soporte funciona solo por tickets, no por correo electrónico.