Said Rahal

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

  1. Requisitos previos
  2. Paso 1: Preparación del entorno
  3. Paso 2: Configuración del archivo local.ini
  4. Paso 3: Configuración del contenedor Docker con Portainer
  5. Paso 4: Configuración del proxy inverso (opcional pero recomendado)
  6. Paso 5: Configuración del plugin LiveSync en Obsidian en dispositivos principal y secundarios
  7. Conclusiones

Requisitos previos

Paso 1: Preparación del entorno

  1. 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 y config.
  2. 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

  1. Crear el archivo local.ini:

    • En la carpeta /volume1/docker/obsidian-couchdb/config, crea un archivo llamado local.ini.
    • Copia y pega el siguiente contenido en local.ini:
[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

  1. Accede a Portainer:

    • Abre Portainer desde el menú principal de tu Synology NAS.
  2. Crear un nuevo stack:

    • Haz clic en “Stacks” en el menú lateral.
    • Presiona “Add stack” para crear uno nuevo.
  3. 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:

  1. 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:

  1. Configura un proxy inverso en Synology:
  1. Configura SSL (si usas HTTPS):

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:

  1. 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 o http://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)
  2. 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.