Duplicati Docker Compose: Backups Cifrados Automáticos 2025

Duplicati Docker Compose backups cifrados automáticos

Duplicati Docker Compose es la solución definitiva para crear backups automáticos, cifrados e incrementales de tus datos críticos. Esta herramienta de código abierto te permite proteger volúmenes Docker, configuraciones y archivos importantes enviándolos a múltiples destinos en la nube con encriptación AES-256, todo orquestado desde una interfaz web intuitiva.

¿Qué es Duplicati y por qué usarlo con Docker Compose?

Duplicati es una aplicación gratuita y de código abierto bajo licencia MIT que crea backups cifrados, comprimidos e incrementales en servidores remotos y almacenamiento en la nube. Funciona en Windows, macOS y Linux, y se integra perfectamente con Docker para proteger tus contenedores.

A diferencia de otras soluciones de backup, esta herramienta destaca por su capacidad de enviar datos a más de 20 destinos diferentes: Amazon S3, Backblaze B2, Google Drive, Dropbox, Microsoft OneDrive, SFTP, WebDAV y muchos más. Todo con cifrado de extremo a extremo que garantiza que nadie más que tú pueda acceder a tus datos.

Las características principales incluyen backups incrementales que solo transmiten los cambios desde la última copia, programación automática para mantener tus backups actualizados sin intervención manual, y soporte para archivos abiertos o bloqueados mediante Volume Snapshot Service (VSS) en Windows y Logical Volume Manager (LVM) en Linux.

Duplicati Docker Compose: Configuración básica paso a paso

La instalación mediante Docker Compose simplifica enormemente el despliegue. Utilizaremos la imagen oficial mantenida por LinuxServer.io, reconocida por su calidad y actualizaciones constantes.

Primero, crea un directorio para tu proyecto:

mkdir -p ~/duplicati
cd ~/duplicati

Ahora crea el archivo docker-compose.yml con la siguiente configuración:

version: '3.8'

services:
  duplicati:
    image: lscr.io/linuxserver/duplicati:latest
    container_name: duplicati
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/Madrid
      - SETTINGS_ENCRYPTION_KEY=tu_clave_secreta_aqui
    volumes:
      - ./config:/config
      - ./backups:/backups
      - /var/lib/docker/volumes:/source:ro
      - /home:/home:ro
    ports:
      - "8200:8200"
    restart: unless-stopped

Esta configuración monta los volúmenes de Docker en modo solo lectura (:ro) para mayor seguridad, establece un directorio local para almacenar backups temporales, y expone la interfaz web en el puerto 8200.

Configuración de variables de entorno en Duplicati Docker Compose

Las variables de entorno son cruciales para personalizar tu instalación:

  • PUID y PGID: Define el usuario y grupo que ejecutará el contenedor. Usa id -u y id -g para obtener tus valores.
  • TZ: Zona horaria para programar backups correctamente (ej: Europe/Madrid, America/Mexico_City).
  • SETTINGS_ENCRYPTION_KEY: Clave para cifrar la configuración local y evitar almacenar contraseñas en texto plano.
  • CLI_ARGS (opcional): Argumentos adicionales para la línea de comandos.
  • DUPLICATI__WEBSERVICE_PASSWORD (opcional): Contraseña para acceder a la interfaz web.

Para mayor seguridad, considera usar Docker secrets con un archivo preload.json que contenga las credenciales sensibles.

Cómo crear tu primer backup con Duplicati Docker Compose

Una vez desplegado el contenedor con docker compose up -d, accede a la interfaz web navegando a http://tu-ip:8200. La primera vez te pedirá configurar una contraseña o usar un token temporal que aparece en los logs.

El asistente de configuración te guiará por tres pasos fundamentales:

1. Configuración general del backup

Asigna un nombre descriptivo a tu backup (ej: «Volúmenes Docker») y opcionalmente una descripción. Si quieres cifrado de extremo a extremo, marca la opción de encriptación e introduce una contraseña fuerte que NUNCA debes perder.

2. Selección del destino

Aquí es donde brilla la versatilidad del sistema. Puedes elegir entre más de 20 proveedores diferentes. Para este tutorial, configuraremos Backblaze B2 por su excelente relación precio-rendimiento:

  • Selecciona «B2 Cloud Storage» del menú desplegable
  • Introduce tu Account ID y Application Key
  • Especifica el nombre del bucket
  • Define una ruta dentro del bucket (ej: /docker-backups)

Alternativamente, puedes usar almacenamiento local, SFTP, o cualquier proveedor compatible con S3 como MinIO.

3. Selección de archivos origen

Navega por el árbol de directorios y selecciona qué quieres respaldar. Para volúmenes Docker, marca /source (que mapeamos a /var/lib/docker/volumes). Puedes aplicar filtros para excluir archivos temporales o logs que no necesitas preservar.

Programación automática de backups en Duplicati Docker Compose

Uno de los puntos fuertes es el programador integrado. En la configuración del backup, accede a la pestaña «Schedule» y define:

  • Frecuencia: Diaria, semanal, o personalizada con expresiones cron
  • Hora de ejecución: Preferiblemente en horarios de baja actividad
  • Días de la semana: Para backups semanales o quincenales

Una estrategia recomendada es configurar backups diarios incrementales a las 2:00 AM y un backup completo semanal los domingos. Esto optimiza el uso de almacenamiento y ancho de banda.

Duplicati Docker Compose: Opciones avanzadas de cifrado

El cifrado es una característica central. Por defecto utiliza AES-256, un estándar de cifrado simétrico prácticamente irrompible con las tecnologías actuales. También soporta GNU Privacy Guard (GPG) para quienes prefieran cifrado asimétrico.

En las opciones avanzadas puedes configurar:

  • Tamaño de bloques: Archivos más grandes procesan datos en bloques más grandes para mejor rendimiento
  • Nivel de compresión: Balance entre tamaño final y tiempo de procesamiento
  • Deduplicación: Elimina bloques duplicados entre diferentes archivos
  • Retención: Cuántas versiones antiguas conservar antes de eliminarlas automáticamente

Para entornos de producción, habilita la verificación de integridad después de cada backup para detectar corrupción de datos.

Restauración de backups desde Duplicati

Cuando necesites restaurar datos, la interfaz ofrece dos modalidades:

Restauración directa: Ve a tu backup configurado, clic en «Restore» y selecciona la versión temporal que deseas recuperar. Puedes navegar por el árbol de archivos y elegir restaurar todo o solo archivos específicos.

Restauración desde archivos: Si perdiste la configuración pero conservas los archivos de backup, usa la opción «Restore from configuration» ingresando manualmente el destino y la contraseña de cifrado.

Importante: Define siempre una ubicación de restauración diferente a la original para evitar sobrescribir datos accidentalmente. Verifica el contenido restaurado antes de moverlo a su ubicación definitiva.

Gestión de almacenamiento y retención de versiones

El crecimiento descontrolado de backups puede generar costos inesperados en almacenamiento cloud. Configura políticas de retención inteligentes:

  • Retención por tiempo: Conservar todas las versiones de los últimos 30 días
  • Retención por cantidad: Mantener las últimas 10 versiones
  • Retención inteligente: Combinar ambas (últimas 10 versiones o 30 días, lo que sea más largo)

La opción «Smart retention» es particularmente útil: conserva todas las versiones recientes, luego adelgaza gradualmente las versiones antiguas manteniendo una por semana, luego una por mes, etc.

Monitorización y notificaciones de backups

Un backup que falla silenciosamente es inútil. Configura notificaciones para recibir alertas cuando algo va mal:

En la configuración del backup, pestaña «Advanced options», busca las opciones de notificación por email. Necesitarás configurar un servidor SMTP (puedes usar Gmail, Outlook, o un servidor dedicado).

Parámetros típicos:

[email protected]
[email protected]
send-mail-url=smtp://smtp.gmail.com:587
[email protected]
send-mail-password=tu-app-password

Configura envío de emails solo en caso de error para evitar spam en tu bandeja de entrada.

Integración con otros servicios Docker Compose

Puedes extender tu stack añadiendo servicios complementarios en el mismo archivo compose. Por ejemplo, integrar con otros servicios Docker Compose para crear un ecosistema completo:

version: '3.8'

services:
  duplicati:
    image: lscr.io/linuxserver/duplicati:latest
    container_name: duplicati
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/Madrid
    volumes:
      - ./config:/config
      - ./backups:/backups
      - /var/lib/docker/volumes:/source:ro
    ports:
      - "8200:8200"
    restart: unless-stopped
    networks:
      - homelab

  watchtower:
    image: containrrr/watchtower
    container_name: watchtower
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    environment:
      - WATCHTOWER_CLEANUP=true
      - WATCHTOWER_SCHEDULE=0 0 4 * * *
    restart: unless-stopped
    networks:
      - homelab

networks:
  homelab:
    driver: bridge

Esta configuración añade Watchtower para actualizar automáticamente tus contenedores, incluyendo el propio sistema de backups.

Solución de problemas comunes

Durante el uso pueden surgir algunos inconvenientes típicos:

Error de permisos al acceder a archivos: Verifica que PUID y PGID coincidan con tu usuario. Si necesitas acceder a archivos de root, ejecuta sudo chown -R 1000:1000 ./config en el directorio de configuración.

Backups extremadamente lentos: Reduce el nivel de compresión o aumenta el tamaño de bloques. También verifica tu ancho de banda de subida disponible.

Error «Database is locked»: Otro proceso está accediendo a la base de datos. Detén el contenedor completamente con docker compose down y reinicia.

No puede leer archivos abiertos: Habilita la variable de entorno DOTNET_SYSTEM_IO_DISABLEFILELOCKING=true para permitir lectura de archivos bloqueados, aunque esto puede causar inconsistencias en los datos.

Mejores prácticas de seguridad

Para maximizar la seguridad de tus backups:

  • Regla 3-2-1: Mantén 3 copias de tus datos, en 2 tipos de medios diferentes, con 1 copia offsite
  • Cifrado siempre activo: Nunca envíes backups sin cifrar a proveedores cloud
  • Contraseñas robustas: Usa contraseñas de al menos 20 caracteres con símbolos, números y letras mixtas
  • Pruebas periódicas: Restaura archivos mensualmente para verificar que los backups funcionan
  • Múltiples destinos: Configura backups paralelos a diferentes proveedores para redundancia
  • Monitorización activa: Nunca confíes en que «está funcionando» sin verificar los logs

Guarda la contraseña de cifrado en un gestor de contraseñas separado del servidor donde corre el servicio. Si pierdes esa contraseña, tus backups serán irrecuperables.

Preguntas frecuentes (FAQ)

¿Cuánto espacio ocupan los backups incrementales?

El primer backup es completo y ocupa el tamaño total de tus datos (menos la compresión). Los backups incrementales posteriores solo almacenan los bloques que han cambiado, típicamente entre 5-15% del tamaño original en sistemas con cambios moderados.

¿Es seguro usar Duplicati para datos empresariales críticos?

Sí, siempre que sigas las mejores prácticas: cifrado habilitado, múltiples destinos, verificación de integridad activa, y pruebas periódicas de restauración. Miles de empresas lo usan en producción con excelentes resultados.

¿Puedo hacer backups mientras los contenedores están ejecutándose?

Sí, funciona correctamente con contenedores en ejecución. Para máxima consistencia en bases de datos, considera detener el contenedor brevemente o usar comandos de dump antes del backup.

¿Cuál es el mejor destino de backup para homelabs?

Backblaze B2 ofrece excelente relación calidad-precio (0.005$/GB/mes). Para mayor control, considera MinIO auto-hospedado en un servidor secundario o NAS. Google Drive es conveniente si ya tienes suscripción de Google Workspace.

¿Cómo migro backups de otro sistema a Duplicati?

No hay migración directa desde otros sistemas. Deberás crear nuevos backups desde cero. Sin embargo, puedes restaurar datos desde tu sistema antiguo y luego configurar la solución para respaldar esos datos restaurados.

Conclusión

Implementar una estrategia de backups sólida no es opcional en ningún entorno tecnológico moderno. La combinación de cifrado robusto, múltiples destinos soportados, backups incrementales eficientes, y una interfaz web intuitiva hace de esta solución una opción excepcional para proteger tus datos Docker.

La facilidad de despliegue mediante Docker Compose elimina las complejidades de instalación tradicionales, permitiéndote tener un sistema de backups empresarial funcionando en minutos. Ya sea que administres un homelab personal, un servidor de desarrollo, o infraestructura de producción, esta herramienta escala para cubrir tus necesidades.

No esperes a perder datos para implementar backups. Despliega tu instancia hoy mismo, configura tus primeros trabajos de backup, y duerme tranquilo sabiendo que tus datos están protegidos, cifrados, y listos para restaurar cuando los necesites. La inversión de tiempo inicial se pagará múltiples veces el día que realmente necesites recuperar información crítica.

Avatar

Por Mid

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x