Saltar al contenido
Por plataforma

Synology

KumoYami en un NAS Synology con Container Manager.

En un Synology, KumoYami corre en Container Manager (el paquete de Docker de DSM 7.2 y posteriores; en versiones anteriores se llamaba Docker). Puede publicar directamente las carpetas compartidas del NAS.

Qué modelos sirven

Hace falta un modelo que admita Container Manager: en general, las series «+», «xs» y similares. Comprueba el procesador de tu modelo en la ficha técnica de Synology.

ARM: próximamente

La imagen de KumoYami todavía es solo para procesadores x86_64 (Intel y AMD). La versión para ARM (arm64: Raspberry Pi, Mac con Apple Silicon, VPS y NAS con ARM) llegará en una próxima versión; esta guía se actualizará entonces.

Los modelos con procesador ARM (muchos de las series «j» y «value») tendrán que esperar a esa versión.

Instalar

Prepara las carpetas

En File Station, crea una carpeta para KumoYami dentro de la carpeta compartida docker (Container Manager la crea al instalarse), por ejemplo docker/kumoyami, y dentro de ella otra llamada datos.

Inicia sesión en el registro y descarga la imagen

La imagen de KumoYami está en un registro privado. En Synology, ese inicio de sesión tiene que hacerlo root:

  • La pestaña Registro de Container Manager no sirve para registros privados con token (como este): da «No se puede conectar al registro» y el proyecto falla después con unauthorized. No la uses.
  • docker login guarda la sesión en la carpeta del usuario que lo ejecuta. Un login por SSH con tu usuario sin sudo no le sirve a root; con sudo, o en una tarea de root, queda en /root/.docker/config.json, que es el que vale.

Sin SSH, con una tarea de root: Panel de control → Programador de tareas → Crear → Tarea programada → Script definido por el usuario. En General, usuario root; en Configuración de tareas, este script con tu identificador y tu clave:

echo 'KY1.TU-CLAVE-ENTERA' | /usr/local/bin/docker login registry.kumoyami.com -u lic_xxxxxxxxxxxx --password-stdin
/usr/local/bin/docker pull registry.kumoyami.com/kumoyami:latest
chown 1000:1000 /volume1/docker/kumoyami/datos

Guárdala, selecciónala y pulsa Ejecutar. Cuando termine (la descarga tarda unos minutos), borra la tarea: lleva tu clave escrita.

Con SSH (actívalo en Panel de control → Terminal y SNMP y entra con un administrador), lo mismo con sudo:

sudo docker login registry.kumoyami.com -u lic_xxxxxxxxxxxx    # contraseña: la clave KY1.… entera
sudo docker pull registry.kumoyami.com/kumoyami:latest
sudo chown 1000:1000 /volume1/docker/kumoyami/datos

El chown deja la carpeta datos escribible para el usuario del contenedor (uid 1000). Cambia volume1 si tu carpeta docker está en otro volumen.

Crea el proyecto

En Container Manager → Proyecto → Crear:

  • Nombre: kumoyami.
  • Ruta: la carpeta docker/kumoyami.
  • Origen: crear un docker-compose.yml y pegar este contenido (la versión autónoma, con las rutas del NAS):
docker-compose.yml
services:
  web:
    image: registry.kumoyami.com/kumoyami:latest
    restart: unless-stopped
    environment:
      DATA_DIR: /app/datos
    volumes:
      - /volume1/docker/kumoyami/datos:/app/datos
      # Carpetas compartidas que quieras publicar (:ro = solo lectura):
      # - /volume1/fotos:/data/fotos:ro
    ports:
      - "4890:3000"

Si el asistente ofrece configurar un portal web (Web Station), puedes omitirlo. Como la imagen ya está descargada, el proyecto arranca con ella sin tener que entrar en el registro.

Por SSH también vale, siempre con sudo y desde la carpeta del proyecto (después aparece igualmente en Container Manager, para ver los registros, parar y arrancar):

cd /volume1/docker/kumoyami
sudo docker compose up -d

Abre el panel

Visita http://IP-DEL-NAS:4890/admin. El asistente pide el código de configuración: está en los registros del contenedor (Container Manager → Contenedor → kumoyami-web-1 → Registro, busca «Código») o por SSH:

sudo docker logs kumoyami-web-1 2>&1 | grep -i código

Sigue con el asistente.

HTTPS con el proxy inverso de DSM

DSM incluye un proxy inverso y certificados de Let's Encrypt, así que no necesitas Caddy ni Nginx:

  1. Apunta tu dominio (por ejemplo nube.example.com) a la IP pública de tu casa y abre en el router los puertos 80 y 443 hacia el NAS.
  2. Pide el certificado en Panel de control → Seguridad → Certificado.
  3. Crea la regla de proxy inverso: busca Proxy inverso en el Panel de control (en DSM 7 está en las opciones avanzadas del Portal de inicio de sesión). Origen: HTTPS, tu dominio, puerto 443. Destino: HTTP, localhost, puerto 4890.
  4. Asigna el certificado al dominio en Seguridad → Certificado → Configuración.

Si tu conexión no permite abrir puertos (CGNAT, router del operador), usa Cloudflare Tunnel.

Actualizar

No cuentes con que Container Manager descargue la imagen nueva: necesita el registro privado y la sesión de root. Actualiza con una tarea de root, que puede repetirse sola (por ejemplo, cada día a las 4:00): Programador de tareas → Crear → Tarea programada → Script definido por el usuario, usuario root, con:

cd /volume1/docker/kumoyami && /usr/local/bin/docker compose pull && /usr/local/bin/docker compose up -d && /usr/local/bin/docker image prune -f

Por SSH es lo mismo: cd /volume1/docker/kumoyami && sudo docker compose pull && sudo docker compose up -d. La web se reinicia unos segundos y tus datos no cambian. Si tu periodo de actualizaciones terminó, el registro solo deja bajar las versiones que cubre: mira Actualizar.

El nombre del contenedor

Container Manager nombra el contenedor a partir del proyecto y el servicio: con el proyecto kumoyami será kumoyami-web-1. Si eliges otro nombre, cámbialo en los comandos.