Cómo configurar Obsidian LiveSync en Synology NAS usando Docker - 18/12/2024
¿Eres usuario de Obsidian en múltiples dispositivos con diferentes sistemas operativos y tienes un Synology NAS? Aprovecha la potencia de Docker para configurar tu propio servidor de sincronización y evita pagar la suscripción de Obsidian Sync. En este artículo, te guiaré paso a paso para configurar el plugin Obsidian LiveSync utilizando CouchDB en tu Synology NAS.
Índice
- Requisitos previos
- Paso 1: Preparación del entorno
- Paso 2: Configuración del archivo
local.ini
- Paso 3: Configuración del contenedor Docker con Portainer
- Paso 4: Configuración del proxy inverso (opcional pero recomendado)
- Paso 5: Configuración del plugin LiveSync en Obsidian en dispositivos principal y secundarios
- Conclusiones
Requisitos previos
- Un Synology NAS con Portainer instalado
- Acceso de administrador a tu NAS
- Conocimientos básicos de Docker
Paso 1: Preparación del entorno
-
Crear directorios para Docker:
- Abre “File Station” en tu Synology NAS.
- Navega a
/volume1/docker/
o la ruta que tengas configurada para docker. - Crea una nueva carpeta llamada
obsidian-couchdb
o como prefieras (Si cambias este nombre debes hacerlo igualmente el script del paso 3). - Dentro de
obsidian-couchdb
, crea dos subcarpetas:data
yconfig
.
-
Configurar permisos:
- Asegúrate de que el usuario que ejecuta Docker tenga permisos de lectura y escritura en estas carpetas.
Paso 2: Configuración del archivo local.ini
-
Crear el archivo
local.ini
:- En la carpeta
/volume1/docker/obsidian-couchdb/config
, crea un archivo llamadolocal.ini
. - Copia y pega el siguiente contenido en
local.ini
:
- En la carpeta
[couchdb]
single_node=true
max_document_size = 50000000
[chttpd]
require_valid_user = true
max_http_request_size = 4294967296
[chttpd_auth]
require_valid_user = true
authentication_redirect = /_utils/session.html
[httpd]
WWW-Authenticate = Basic realm="couchdb"
enable_cors = true
[cors]
origins = app://obsidian.md,capacitor://localhost,http://localhost,https://obsidian.tudominio.synology.me
credentials = true
headers = accept, authorization, content-type, origin, referer
methods = GET, PUT, POST, HEAD, DELETE
max_age = 3600
Este archivo configura CouchDB para que requiera autenticación y permita solicitudes desde la aplicación Obsidian. Nota que hemos añadido https://obsidian.tudominio.synology.me
a la lista de orígenes permitidos. Esta dirección se configurará en el Paso 4 cuando configuremos el proxy inverso (opcional).
Paso 3: Configuración del contenedor Docker con Portainer
-
Accede a Portainer:
- Abre Portainer desde el menú principal de tu Synology NAS.
-
Crear un nuevo stack:
- Haz clic en “Stacks” en el menú lateral.
- Presiona “Add stack” para crear uno nuevo.
-
Configura el stack usando el siguiente script:
version: "3.9"
services:
couchdb:
image: couchdb:latest
container_name: CouchDB-Obsidian
hostname: couchdb-obsidian
mem_limit: 2g
ports:
- 5984:5984
volumes:
- /volume1/docker/obsidian-couchdb/data:/opt/couchdb/data
- /volume1/docker/obsidian-couchdb/config:/opt/couchdb/etc/local.d
environment:
COUCHDB_USER: tu_usuario
COUCHDB_PASSWORD: tu_contraseña
PUID: 1026 # Cambia esto por el UID del usuario de Docker en tu NAS
PGID: 100 # Cambia esto por el GID del grupo 'users' en tu NAS
restart: unless-stopped
Explicación de los parámetros:
- image: Especifica la imagen de CouchDB que se usará.
- container_name: Nombre del contenedor para identificarlo fácilmente.
- hostname: Nombre del host dentro del contenedor.
- mem_limit: Limita la memoria que puede usar el contenedor.
- ports: Mapea el puerto interno del contenedor al puerto externo del NAS.
- volumes: Asigna carpetas locales a directorios dentro del contenedor para persistencia de datos y configuraciones.
- environment: Variables que configuran las credenciales y permisos:
COUCHDB_USER
yCOUCHDB_PASSWORD
: Usuario y contraseña para acceder a CouchDB.PUID
yPGID
: Identificadores de usuario y grupo que aseguran que los archivos creados por el contenedor tengan los permisos correctos.
- restart: Configura el contenedor para reiniciarse automáticamente si se detiene.
- Despliega el stack:
- Haz clic en “Deploy the stack” para iniciar CouchDB.
Paso 4: Configuración del proxy inverso (opcional pero recomendado)
Para acceder de forma segura a tu CouchDB desde fuera de tu red local, configura un proxy inverso:
- Configura un proxy inverso en Synology:
- Ve al “Panel de control” > “Portal de aplicaciones”.
- Selecciona la pestaña “Proxy inverso”.
- Haz clic en “Crear” e introduce lo siguiente:
- Descripción: “Obsidian CouchDB” o como prefieras
- Protocolo de origen: HTTPS (requiere certificado SSL)
- Nombre de host: obsidian.tudominio.synology.me (tu dominio)
- Puerto de origen: 443
- Protocolo de destino: HTTP
- Nombre de host destino: localhost
- Puerto destino: 5984
- Configura SSL (si usas HTTPS):
- Asegúrate de tener un certificado SSL válido para tu dominio configurado en “Seguridad” > “Certificado”.
Paso 5: Configuración del plugin LiveSync en Obsidian en dispositivos principal y secundarios
Para configurar el plugin Self-hosted LiveSync en tus dispositivos, sigue estos pasos:
-
Dispositivo principal:
- Instala el plugin Self-hosted LiveSync en Obsidian.
- Configura el plugin con la URI de tu servidor CouchDB (por ejemplo,
https://obsidian.tudominio.synology.me
ohttp://IP_DE_TU_NAS:5984
). Nota: Si usas la conexión vía http puedes tener problemas con dispositivos móviles. - Introduce el nombre de usuario y contraseña que configuraste para CouchDB en los pasos anteriores.
- Elige un nombre para la base de datos (por ejemplo, “mi_bóveda_obsidian”).
- Activa la opción “Crear base de datos si no existe”.
- Guarda la configuración y sincroniza tu bóveda (puede tomar un tiempo).
- Genera una URI con passphrase (no la pierdas)
-
Dispositivos secundarios:
- Instala el plugin Self-hosted LiveSync en Obsidian.
- Ve al dispositivo principal y busca la opción “Copy current settings as a new setup URI”
- El plugin mostrar una ayuda automática para configuración, pega esta URI y usa la passphrase que configuraste en el dispositivo principal.
- Guarda la configuración y sincroniza tu bóveda (puede tomar un tiempo).
Con esta configuración, todos tus dispositivos se sincronizarán a través de tu servidor CouchDB en el Synology NAS, manteniendo tus notas actualizadas en todos lados.
Conclusiones
Este en un plugin en beta, por lo que recomiendo tener backups siempre de tus bóvedas.
Si no dominas mucho, te recomiendo no jugar con las opciones avanzadas del plugin.
Ten en cuenta que solo se sincroniza el contenido, la configuración e instalación de plugins no se comparte por temas de compatibilidad (se puede activar en la zona avanzada, no la recomiendo porque termina en desastre)
El plugin funciona extremadamente bien tras mis pruebas en varias semanas. Lo único no recomendable es editar la misma nota en distintos dispositivos porque va generar conflicto de versiones y vas a tener que resolverlos.
De resto todo son ventajas. Así que ¡Felicidades! Ahora tienes tu propio servidor de sincronización Obsidian LiveSync funcionando en tu Synology NAS. Puedes sincronizar tus notas de Obsidian entre todos tus dispositivos sin depender de servicios en la nube externos.