Cómo crear copias de seguridad automática en O2 Cloud usando Raspberry Pi 5 y Round Sync

¿Te gustaría librarte de las cuotas de almacenamiento en la nube, prescindir de Google Fotos y aprovechar el almacenamiento ilimitado que ofrece O2 Cloud, pero de forma 100% automatizada y privada?

En este artículo aprenderás a convertir tu Raspberry Pi 5 en un servidor de respaldo continuo las 24 horas del día. Configuraremos de manera nativa (sin Docker) el pasarela/gateway WebDAV de O2 Cloud desarrollado por la comunidad y sincronizaremos las fotos de tu móvil Android automáticamente mediante Round Sync (código abierto).

🛠️ Requisitos Previos

  • Servidor local: Raspberry Pi 5 ejecutando Debian 13 (Trixie) o Raspberry Pi OS equivalente.
  • Acceso al sistema: Conexión mediante SSH o terminal local con permisos de superusuario (sudo).
  • Dispositivo Android: Móvil con la app Round Sync instalada (disponible vía F-Droid, GitHub u Obtainium).
  • Cuenta activa: Credenciales de usuario y contraseña de O2 Cloud.

🚀 PASO 1: Preparación del sistema e instalación de dependencias

El gateway de O2 Cloud requiere Node.js para ejecutar el puente de red y un motor de navegador Chromium sin cabecera (headless) para gestionar la autenticación persistente con el servidor del operador.

Abre la terminal de tu Raspberry Pi y ejecuta:

# 1. Actualizar repositorios e paquetes del sistema
sudo apt update && sudo apt upgrade -y

# 2. Instalar Node.js, npm, git y las librerías necesarias para Chromium
sudo apt install -y nodejs npm git chromium-browser \
  libnss3 libatk-bridge2.0-0 libcups2 libdrm2 \
  libxkbcommon0 libxcomposite1 libxdamage1 libxfixes3 \
  libxrandr2 libgbm1 libasound2

Verificación: Comprueba que la versión de Node.js instalada sea funcional ejecutando:

node -v

📦 PASO 2: Clonar y compilar el Gateway WebDAV de O2 Cloud

Instalaremos el proyecto directamente en el directorio de aplicaciones del sistema (/opt) para mantener una estructura limpia.

# 1. Acceder al directorio /opt
cd /opt

# 2. Clonar el repositorio oficial del proyecto
sudo git clone https://github.com/mfontanini/o2cloud-webdav.git o2cloud-webdav

# 3. Asignar la propiedad de la carpeta a tu usuario de sistema (ejemplo: chapuboot)
sudo chown -R $USER:$USER /opt/o2cloud-webdav

# 4. Entrar en la carpeta del proyecto e instalar las dependencias
cd o2cloud-webdav
npm install

# 5. Compilar el código fuente del proyecto
npm run build

🔑 PASO 3: Autenticación inicial con la cuenta de O2 Cloud

Para que la Raspberry Pi pueda hablar en tu nombre con O2 Cloud, es necesario iniciar sesión por primera vez y generar los tokens de autenticación guardados en disco.

npm run login
  1. El script iniciará un entorno interactivo (o desplegará una pasarela temporal en un puerto como el 6080 si estás en modo headless sin pantalla).
  2. Abre el navegador de tu PC e introduce la IP local de tu Raspberry Pi seguida del puerto asignado (ejemplo: http://192.168.1.100:6080).
  3. Introduce tu usuario y contraseña de O2 Cloud y completa la verificación si se requiere.
  4. Una vez completado, la terminal confirmará que las credenciales/cookies han sido almacenadas con éxito.

⚙️ PASO 4: Configurar el servicio persistente en Systemd (24/7)

Para garantizar que el servicio WebDAV esté siempre activo, se ejecute al iniciar la Raspberry Pi y se reinicie automáticamente si falla, crearemos un servicio del sistema.

sudo nano /etc/systemd/system/o2cloud-webdav.service

Pega la siguiente configuración dentro del archivo (asegúrate de cambiar tu_usuario por tu nombre de usuario real en Linux si es diferente):

[Unit]
Description=O2 Cloud WebDAV Gateway (mfontanini)
After=network.target

[Service]
Type=simple
User=tu_usuario
WorkingDirectory=/opt/o2cloud-webdav
ExecStart=/usr/bin/npm start
Restart=always
RestartSec=10
Environment=NODE_ENV=production

[Install]
WantedBy=multi-user.target

Guarda el archivo pulsando Ctrl + O, presiona Enter, y sal con Ctrl + X.

A continuación, habilita y arranca el servicio:

# Recargar el demonio de systemd
sudo systemctl daemon-reload

# Habilitar el inicio automático con el sistema y arrancarlo ahora mismo
sudo systemctl enable --now o2cloud-webdav.service

Verificación: Revisa que el servicio esté corriendo correctamente sin errores:

sudo systemctl status o2cloud-webdav.service

Deberías ver el estado marcado como active (running).

📱 PASO 5: Configuración de Round Sync en Android

Con la Raspberry Pi emitiendo el servicio WebDAV en tu red local (habitualmente en el puerto 8080), pasamos a configurar la aplicación móvil.

1. Añadir el servidor remoto (Remote)

  1. Abre Round Sync en tu móvil Android.
  2. Ve al apartado Remotes (Servidores) y pulsa en + Añadir servidor.
  3. Selecciona el tipo de protocolo: WebDAV.
  4. Introduce los datos del servidor:
    • Nombre: O2 Cloud Raspberry
    • URL: http://IP_DE_TU_RASPBERRY:8080 (reemplaza IP_DE_TU_RASPBERRY por la IP local fija de tu Pi, ej: http://192.168.1.50:8080).
    • Usuario/Contraseña: Si no configuraste credenciales adicionales en el archivo .env del gateway, puedes dejarlo según la configuración establecida por defecto.
  5. Guarda y prueba la conexión.

2. Crear la tarea de automatización (Task)

  1. Dentro de Round Sync, ve a la pestaña Tasks (Tareas) y pulsa en + Crear tarea.
  2. Origen (Local): Selecciona la carpeta donde tu móvil guarda las fotos de la cámara (normalmente /storage/emulated/0/DCIM/Camera).
  3. Destino (Remoto): Selecciona el servidor O2 Cloud Raspberry y elige o crea la carpeta de destino deseada (ejemplo: /Fotos_Movil/2026).
  4. Modo de sincronización: Selecciona Subir (Copy/Sync) según prefieras conservar o no las copias locales.
  5. Programación y condiciones:
    • Marca la casilla Ejecutar solo con Wi-Fi conectado.
    • Opcional: Marca la casilla Solo cuando el dispositivo se esté cargando para no impactar la batería durante el día.

📊 Monitoreo y Mantenimiento

Si en algún momento deseas comprobar el estado de las transferencias o depurar posibles incidencias en la Raspberry Pi, puedes consultar los registros del servicio en tiempo real con:

sudo journalctl -u o2cloud-webdav.service -f

💡 Conclusión

¡Enhorabuena! Has construido una infraestructura privada y automatizada. Cada vez que llegues a casa y tu móvil se conecte a la red Wi-Fi, Round Sync detectará las nuevas imágenes y las enviará a través del gateway WebDAV alojado en tu Raspberry Pi 5, almacenándolas de forma transparente en tu espacio de O2 Cloud.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Scroll al inicio