Tu VPS ya tiene copias de seguridad diarias del servidor; esta guía es para tus propias copias de la aplicación, que puedes restaurar por separado o llevarte a otro servidor. n8n no hace copias automáticas por sí mismo: tienes que programarlas tú. Aquí tienes lo que hay que guardar y los comandos para hacerlo. Todos se ejecutan en tu VPS por SSH como root.
Qué hay que guardar
- La base de datos: flujos, credenciales, usuarios e historial de ejecuciones.
- La clave de cifrado
N8N_ENCRYPTION_KEY, en/opt/n8n/.env. Sin ella, las credenciales de la copia no se pueden leer. - Los ficheros que uses en tus flujos, en
/opt/n8n/local-files(dentro de n8n,/files).
Copia de la base de datos
mkdir -p /opt/n8n/backups
cd /opt/n8n && docker compose exec -T postgres sh -c 'pg_dump -U "$POSTGRES_USER" "$POSTGRES_DB"' | gzip > backups/n8n-$(date +%F).sql.gz
Queda un fichero por día en /opt/n8n/backups/. El comando astrol-n8n-update hace también una copia como esta antes de cada actualización.
Exportar flujos y credenciales
Además de la base de datos, puedes exportar los flujos y las credenciales a ficheros JSON, útiles para llevarlos a otra instalación:
cd /opt/n8n
docker compose exec n8n n8n export:workflow --backup --output=/files/backup/workflows/
docker compose exec n8n n8n export:credentials --backup --output=/files/backup/credentials/
Los ficheros quedan en /opt/n8n/local-files/backup/. Las credenciales se exportan cifradas con tu clave.
Programar la copia diaria
Abre el programador de tareas con crontab -e y añade estas dos líneas. La primera copia la base de datos cada día a las 04:00; la segunda borra las copias de más de 7 días para que no se llene el disco:
0 4 * * * cd /opt/n8n && docker compose exec -T postgres sh -c 'pg_dump -U "$POSTGRES_USER" "$POSTGRES_DB"' | gzip > /opt/n8n/backups/n8n-$(date +\%F).sql.gz
30 4 * * * find /opt/n8n/backups -name 'n8n-*.sql.gz' -mtime +7 -delete
Guarda las copias fuera del VPS
Una copia que solo está en el propio servidor no te protege si lo reinstalas o lo pierdes. Descárgalas a tu ordenador, por ejemplo con:
scp root@TU_IP:/opt/n8n/backups/*.sql.gz .
O con un cliente SFTP (FileZilla, WinSCP) entrando con el usuario root.
Restaurar flujos y credenciales
Para importar lo exportado en una instancia de n8n:
cd /opt/n8n
docker compose exec n8n n8n import:workflow --separate --input=/files/backup/workflows/
docker compose exec n8n n8n import:credentials --separate --input=/files/backup/credentials/
Importante: unas credenciales exportadas cifradas solo se pueden importar en un n8n con la misma N8N_ENCRYPTION_KEY. Si vas a llevarlas a una instalación nueva, exporta con --decrypted en lugar de --backup: quedan en texto plano, así que bórralas en cuanto las importes.
Para restaurar la base de datos completa, abre un ticket y te guiamos paso a paso: es una operación que conviene hacer con calma.
Relacionado
- Reinstalar o cambiar la aplicación de tu VPS
- Cómo actualizar n8n en tu VPS
- Primeros pasos con tu VPS con n8n
Contratar: VPS con n8n en Frankfurt · en Miami
¿Te ha servido este artículo?
¿Necesitas más ayuda?
Abre un ticket y el equipo de soporte lo revisa contigo.