Índice del diarioDockup / nota de campo
Note / self-host-trilium

Cómo alojar Trilium Notes por cuenta propia en 2026: directorio de datos, WebSockets y copias de seguridad

Guía práctica para alojar Trilium Notes por cuenta propia con Docker, puertos, datos persistentes, TLS, seguridad, copias de seguridad y los fallos que impiden usarlo en producción.

Un contenedor de Trilium Notes puede aparecer en verde mientras aquello que realmente necesitan los usuarios está fallando. En Trilium Notes, ese fallo oculto suele deberse a que el directorio de datos está montado en una ruta incorrecta o no tiene permisos de escritura. Esta guía considera como prueba de aceptación la siguiente operación: «crear notas enlazadas, añadir un archivo adjunto y una relación, buscarlos y verificar el historial de revisiones después de reiniciar», y diseña el despliegue partiendo de ese resultado.

Trilium Notes tiene una función concreta en el stack: es una base de conocimiento personal con estructura de árbol. Por tanto, la cuestión en producción no es si el puerto 8080 responde una vez, sino si el estado, las dependencias y la dirección pública siguen siendo coherentes después de un reinicio, una actualización y una restauración.

Conoce Trilium Notes antes de tocar Docker

El proceso HTTP de Trilium Notes escucha en el puerto 8080; mantén ese puerto en la red de la aplicación y publica únicamente la ruta de la plataforma. El requisito del runtime local es disponer de un directorio de datos duradero y memoria suficiente para la indexación. Valídalo con la carga de trabajo de aceptación; un health check en reposo no puede demostrar que el recurso sea suficiente.

Deja por escrito el límite en forma de un contrato breve: quién es responsable del requisito, qué credencial se utiliza, qué timeout es aceptable y cómo se manifiesta un fallo. Después, ejecuta esta transacción: crea notas enlazadas, añade un archivo adjunto y una relación, búscalos y verifica el historial de revisiones después de reiniciar. Observa la indexación de notas, el tamaño de los archivos adjuntos, los scripts y el crecimiento de document.db durante la ejecución, porque esa carga de trabajo proporciona un tamaño inicial más útil que un contenedor en reposo.

Prueba Trilium Notes desde fuera del servidor

Expón un único hostname HTTPS para Trilium Notes y mantén privado el puerto 8080 sin proxy. Publica la interfaz web mediante HTTPS conservando WebSockets. Así evitarás que los navegadores y los clientes de API conozcan dos direcciones que compiten entre sí.

Desde un cliente limpio, ejecuta la transacción validada e inspecciona la primera solicitud que falle. Usa la guía de dominios personalizados cuando el problema esté en DNS o TLS. Trata «el directorio de datos está montado en una ruta incorrecta o no tiene permisos de escritura» como un diagnóstico independiente de la aplicación una vez que la ruta esté validada.

Inicia Trilium Notes con valores predeterminados observables

Un lanzamiento con forma de producción es deliberadamente aburrido: estado con nombre, puerto explícito y ningún secreto dentro de la imagen.

docker run -d \
  --name trilium-notes \
  --restart unless-stopped \
  -p 127.0.0.1:8080:8080 \
  -v trilium-notes-data:/home/node/trilium-data \
  -e TRILIUM_DATA_DIR=/home/node/trilium-data \
  triliumnext/notes:latest

El ejemplo es una base, no un stack auxiliar completo. Confirma el requisito local antes de exponer el servicio: un directorio de datos duradero y memoria suficiente para la indexación. Comprueba los mounts efectivos y el listener; después, intenta crear notas enlazadas, añadir un archivo adjunto y una relación, buscarlos y verificar el historial de revisiones tras reiniciar. Fija la imagen que funciona antes del siguiente reinicio.

Supervisa la carga de trabajo, no solo el contenedor

Observa el trabajo que realiza Trilium Notes: la indexación de notas, el tamaño de los archivos adjuntos, los scripts y el crecimiento de document.db. Establece límites con margen suficiente para ese trabajo y evita un liveness probe que compita con él. La comprobación del operador también debería intentar crear notas enlazadas, añadir un archivo adjunto y una relación, buscarlos y verificar el historial de revisiones tras reiniciar de forma programada.

Para las actualizaciones, recuerda que las migraciones, los scripts y las extensiones de temas de TriliumNext deben probarse en un directorio de datos duplicado. Despliega la versión candidata sobre una copia restaurada y repite la prueba validada. Si el directorio de datos está montado en una ruta incorrecta o no tiene permisos de escritura, utiliza los logs del runtime y la solicitud de red real para descubrir qué supuesto ha cambiado.

Qué debe superar las pruebas antes de que lleguen datos reales a Trilium Notes

El registro de lanzamiento de Trilium Notes necesita datos concretos, no un «parece correcto». Guarda el digest de imagen seleccionado, el checksum de configuración, el hostname público y un resultado con marca de tiempo para esta operación: crear notas enlazadas, añadir un archivo adjunto y una relación, buscarlos y verificar el historial de revisiones tras reiniciar. Utiliza datos de ejemplo que no sean de producción para poder ejecutar la comprobación después de cada despliegue.

Demuestra por separado dos eventos del ciclo de vida. La sustitución de un contenedor debe conservar el funcionamiento normal; una recuperación limpia debe demostrar que vuelven las notas, las relaciones, los archivos adjuntos, los atributos y las revisiones, y que la búsqueda conocida encuentra la misma nota. Mientras se ejecutan las comprobaciones, mide la indexación de notas, el tamaño de los archivos adjuntos, los scripts y el crecimiento de document.db, y conserva el resultado como el margen esperado para esta versión.

Prueba también una condición denegada o inválida: envía una entrada inofensiva cerca del límite de recursos o de formato asociado a este límite: el directorio de datos está montado en una ruta incorrecta o no tiene permisos de escritura. Trilium Notes debe fallar de forma diagnosticable y no sobrescribir un estado saludable. Restablece la condición válida, vuelve a ejecutar el ejemplo y adjunta los logs relevantes con los datos sensibles ocultos. Estos artefactos proporcionan pruebas concretas para una futura decisión de rollback.

Haz copias de seguridad del estado que Trilium Notes no puede recrear

Define el recovery point y el recovery time de Trilium Notes en términos de document.db, archivos adjuntos, revisiones y configuración. Monta /home/node/trilium-data antes del bootstrap, escribe datos de ejemplo inofensivos y sustituye el contenedor para demostrar que esa ruta es realmente persistente. Un volumen con nombre resuelve la persistencia durante un redeploy; no resuelve una intrusión ni la pérdida del servidor.

Crea un entorno de restauración limpio, utiliza la misma versión fijada de la aplicación y demuestra que vuelven las notas, las relaciones, los archivos adjuntos, los atributos y las revisiones, y que la búsqueda conocida encuentra la misma nota. Registra los comandos, las correcciones de ownership y el tiempo transcurrido. La guía de copias de seguridad ofrece un estándar útil: una copia de seguridad es de confianza después de restaurarla, no después de subirla.

Elige el límite de confianza de Trilium Notes

Cierra la ventana de bootstrap en cuanto exista el primer administrador de confianza. La trampa concreta de Trilium Notes consiste en exponer una base de conocimiento personal sin un login sólido; el límite más seguro es tratar el cuaderno como datos privados, exigir un login sólido y no exponer un filesystem más amplio que su directorio de datos.

TRILIUM_DATA_DIR controla el comportamiento, no la confidencialidad; valida su tipo y valor, y almacena las credenciales reales de Trilium Notes por separado. La red privada debe transportar las credenciales de las dependencias, y los roles dentro de Trilium Notes deben conceder la acción útil mínima. Mantén fuera de los logs habituales los cuerpos de solicitudes sensibles y las respuestas de los proveedores.

Qué debería automatizar Dockup para Trilium Notes

Para Trilium Notes, Dockup puede crear la ruta y el certificado TLS, conservar los mounts, proporcionar los secretos y situar un directorio de datos duradero y memoria suficiente para la indexación en una red privada, tanto al desplegar en Dockup como en servidores conectados.

El gate de lanzamiento sigue siendo la transacción concreta de Trilium Notes: crear notas enlazadas, añadir un archivo adjunto y una relación, buscarlos y verificar el historial de revisiones tras reiniciar. Verifica también la condición de restauración: vuelven las notas, las relaciones, los archivos adjuntos, los atributos y las revisiones, y la búsqueda conocida encuentra la misma nota. Estas dos comprobaciones muestran si el despliegue funciona y si puede recuperarse.

Preguntas frecuentes

¿Qué necesita Trilium Notes para un despliegue en producción?

Enruta el contenedor de Trilium Notes en el puerto 8080 mediante un único origen HTTPS. El requisito del runtime local es disponer de un directorio de datos duradero y memoria suficiente para la indexación. No consideres Trilium Notes listo hasta que puedas crear notas enlazadas, añadir un archivo adjunto y una relación, buscarlos y verificar el historial de revisiones tras reiniciar.

¿Qué datos de Trilium Notes deben incluirse en una copia de seguridad?

Conserva /home/node/trilium-data e incluye document.db, archivos adjuntos, revisiones y configuración en el mismo manifiesto de recuperación. Una restauración limpia de Trilium Notes solo se considera correcta cuando vuelven las notas, las relaciones, los archivos adjuntos, los atributos y las revisiones, y la búsqueda conocida encuentra la misma nota.

¿Trilium Notes necesita HTTPS detrás de un reverse proxy?

Utiliza HTTPS para el origen público de Trilium Notes y mantén el puerto 8080 en la ruta interna. Aplica correctamente la configuración de Trilium Notes: publica la interfaz web mediante HTTPS conservando WebSockets. En Trilium Notes, HTTPS protege las credenciales o el contenido del usuario durante el tránsito y mantiene coherente el comportamiento del cliente sensible al origen.

¿Cómo debe probarse una actualización de Trilium Notes?

Restaura el estado actual de Trilium Notes en un despliegue aislado, aplica la versión candidata y repite su transacción de aceptación. Presta especial atención, ya que las migraciones, los scripts y las extensiones de temas de TriliumNext deben probarse en un directorio de datos duplicado. Conserva la imagen anterior de Trilium Notes hasta comprender sus límites de migración de datos y rollback.