Antes de entrar en faena es importante indicar que no todos los NAS de Synology permiter correr docker. En esta lista podeis ver todos los dispositivos soportados:
- FS series: FS6400, FS3600, FS3400, FS3017, FS2017, FS1018, FS2500
- HD series: HD6500
- SA series: SA3600, SA3400, SA3200D
- 22 series: RS822RP+, RS822+, RS422+, DS3622xs+, DS2422+, DS1522+, DVA1622
- 21 series: RS4021xs+, RS3621xs+, RS3621RPxs, RS2821RP+, RS2421RP+, RS2421+, RS1221RP+, RS1221+, DS1821+, DS1621xs+, DS1621+, DVA3221
- 20 series: RS820RP+, RS820+, DS1520+, DS920+, DS720+, DS620slim, DS420+, DS220+
- 19 series: RS1619xs+, RS1219+, DS2419+II, DS2419+, DS1819+, DS1019+, DVA3219
- 18 series: RS3618xs, RS2818RP+, RS2418RP+, RS2418+, RS818RP+, RS818+, DS3018xs, DS1618+, DS918+, DS718+, DS218+
- 17 series: RS18017xs+, RS4017xs+, RS3617xs+, RS3617RPxs, RS3617xs, DS3617xsII, DS3617xs, DS1817+, DS1517+
- 16 series: RS18016xs+, RS2416RP+, RS2416+, DS916+, DS716+II, DS716+, DS216+II, DS216+
- 15 series: RS815RP+, RS815+, RC18015xs+, DS3615xs, DS2415+, DS1815+, DS1515+, DS415+
- 14 series: RS3614xs+, RS3614RPxs, RS3614xs, RS2414RP+, RS2414+, RS814RP+, RS814+
- 13 series: RS10613xs+, RS3413xs+, DS2413+, DS1813+, DS1513+, DS713+
Puesta en marcha de un contenedor Docker en Synology
Dicho esto vamos con una pequeña introducción para entender que es Docker. Docker es una plataforma que permite ejecutar contenedores (container en inglés). Sin entrar en temas muy técnicos, los contendores vendrían a ser unas máquinas virtuales «aligeradas». No buscan virtualizar un hardware sobre el que correr un sistema operativo completo, sino correr aplicaciones en un sistema operativo con lo justo y necesario.
Estos contenedores son portables y se ejecutan sobre el sistema operativo de la máquina host, es decir directamente sobre el DSM (Linux) de Synology. Esto permite que se lancen mas rápidamente y que consuman menos espacio/memoria/cpu. Para poder correr máquinas virtuales en Synology necesitamos un equipo con cierta potencia (CPU/Memoria) y obviamente no podremos tener corriendo el mismo número de dockers.
Mas o menos se entiende que hace Docker, pero entonces te estarás preguntando que tienes que hacer si quieres tener un contenedor con una instalación de Home Assistant en un docker. Pues muy sencillo, basta con descargar una imagen docker de Home Assistant y ejecutarla. Desde ese momento ya tenemos disponible en nuestro Synology un Home Assistant completamente funcional y pudiendo acceder al mismo desde un navegador.
Pero no nos adelantemos, veamos cómo funciona dockers en Synology. Lo primero que necesitamos es la instalación en DSM. Docker es una aplicación oficial y la podéis descargar desde el Centro de Paquetes.

Tras la instalación, lanzamos la aplicación Docker y se nos mostrará la memoria actual disponible y el consumo de CPU de nuestra unidad Synology. Es importante tener en cuenta que los contenedores consumen poco pero utilizan los recursos de nuestro Synology, por lo que debemos controlar sobrepasarlos.

Volvamos ahora a las imágenes de docker. Hay básicamente 2 formas de subirlas a nuestro Synology. La primera opción es bajarlas del respositorio de Docker. Cualquier persona puede subir su imagen al respositorio oficial de docker; describiendo la funcionalidad del mismo, su uso y la licencia. Esta opción en Synology se llama Registry; donde disponemos de un buscador que nos mostrará las imágenes que coinciden con nuestra búsqueda. Si introducimos «Home Assistant» nos saldrán distintas imágenes.

Usualmente la primera suele ser la más relevante, pero en este caso concreto es mejor elegir la segunda. Para elegir la mejor images es recomendable que lleve el sello de oficial, pero también debemos fijarnos en el número de «estrellas». En este caso pese a que la segunda no es oficial, tiene un número de «estrellas» de 2000 frente a 0, con respecto a la primera opción.

Si aún así tenemos dudas, podemos pulsar el icono de la derecha para abrir la web de docker, donde encontraremos toda la información de la imagen seleccionada. Para la descarga basta con pulsar el botón derecho sobre la imagen y seleccionar descargar, posteriormente elegimos la versión y ya está disponible para lanzar un contenedor desde la pestaña de «Image». Mi recomendación es elegir siempre la última versión, salvo que busquéis específicamente una versión concreta de la aplicación.


Me gustaría destacar la posibilidad de añadir un repositorio diferente al oficial de docker. La opción de «Settings» sirve precisamente para esta tarea.

Vamos ahora con la segunda forma de añadir imágenes. Esta alternativa se encuentra dentro de la pestaña de «Image», donde se muestran todas las imágenes descargadas/disponibles en nuestro NAS Synology. En la parte superior pulsamos el botón add y disponemos de 2 opciones para indicar dónde está la imagen docker: URL o bien cogerla de nuestro equipo/NAS.

Vamos ahora con la creación del contenedor. Basta con pulsar «Launch» sobre la imagen que queremos lanzar. Se ejecutará un asistente que nos irá preguntando por las distintas configuraciones del contenedor y de la imagen. Esta es la parte mas compleja, porque dependiendo de la aplicación que instalemos será necesario introducir configuración adicional. En el caso de Home Assistant sólo es necesario especificar el puerto, ya que el creador de la imagen no lo ha añadido al docker. El puerto por defecto de Home Assistant es el 8123 y podemos utilizar el mismo o uno diferente en nuestro NAS. En este caso vamos a mantener el mismo ya que no entra en conflicto con ningún otro servicio Synology.





Al finalizar el asistente la página cambiará de pantalla e irá a la pestaña de «Container». Desde esa pestaña podemos acceder a la gestión completa de los contenedores que están corriendo o pausados en el NAS. No voy a explicar minuciosamente todas las opciones, pero ofrece una gestión muy completa y similar a la disponible de Docker Desktop, la versión desktop de Docker para Windows, Mac y Linux.


Una vez corriendo, si queremos acceder a la App basta con utilizar la IP del NAS y conectar al puerto donde estará corriendo Home Assistant. Desde la Web configuraremos el servicio como si lo tuviéramos corriendo en un equipo de la red.

Las imágenes Docker mas interesantes/curiosas
Ya hemos visto como localizar una imagen, descargarla y lanzar un contenedor que corra la imagen. Veamos cuales son las imágenes más interesantes que podéis instalar en vuestro equipo. Las que voy a nombrar son solo unos pocos ejemplos, si necesitáis algo no dudes en buscar la imagen en el respositorio oficial o bien en cualquier otro respositorio.
Pi-Hole
Pi-Hole es una app que se encarga de filtrar el tráfico de nuestros DNSs y mediante este filtrado elimina banners y nos protege de acceder a determinados sitios no seguros. La instalación es realmente sencilla y basta con bajarla del respositorio de Docker e instalarla modificando los siguientes valores:
- En «General Settings» pulsar sobre «Advanced Settings» y en el siguiente dialogo es necesario cambiar el valor de la variable DNSMASQ_USER por root


- En el apartados de puertos, es necesario modificar los puertos y en lugar de la opción automática, poner el mismo puerto de destino para el puerto 53 UDP y TCP. En caso de detectarse algún problema con los puertos asignados, Docker nos avisará para que lo modifiquemos.

Tras lanzarse el docker es necesario modificar la configuración de DNSs de los equipos de nuestra LAN para incluir la IP del NAS de Synology. La administración de Pi-Hole usará un puerto aleatorio seleccionada en el lanzamiento del contenedor. En los detalles del contenedor podemos ver los puertos asignados, en nuestro caso el puerto 49164. Desde la administración podemos ver estadísticas de uso y porcentajes de Webs bloqueadas.


SHELLNGN PRO
SHELLNGN es un software que nos permite conectar a nuestras máquina via SSH, SFTP, VNC o RDP desde la Web. Es importante destacar que es un software comercial y nos ofrece 1 mes de pruebas, posteriormente tiene un coste de 47,19 dolares al año.
La instalación es realmente sencilla y tan solo es necesario especificar un puerto que se redireccionará al puerto 8080 del contenedor. En nuestro caso hemos mantenido el mismo puerto, pero se puede dejar en la opción auto.

Tras la instalación se introducen las credenciales como administrador y una vez dentro, ya podemos crear nuestras conexiones a servidores locales o remotos. Es importante indicar que la conexión se realizará desde el NAS y no desde el equipo que accede a la web.

VaultWarden
VaultWarden es una implementación alternativa del servidor de Bitwarden escrita en Rust y compatible con clientes Bitwarden. Esto nos permitirá almacenar nuestras constraseñas e información sensible directamente en nuestro NAS Synology.
La instalación es también muy sencilla y sólo es necesario asignar una carpeta durante el proceso de instalación. En el apartado de volúmenes hemos elegido una carpeta local y vacía de nuestro NAS y la hemos montado en la carpeta /data/ .


Tras lanzarse tendremos que conocer el puerto web, salvo que lo hayamos especificado durante la creación del contenedor.
