Trilium Notes: Base de conocimiento personal autoalojada

Publicado por


Trilium
Open Source

Trilium Notes: Base de conocimiento personal autoalojada

Aplicación de toma de notas jerárquica multiplataforma para construir grandes bases de conocimiento personales con sincronización, cifrado y scripting.

Vídeo tutorial en YouTube

Mira el vídeo completo sobre cómo instalar y usar Trilium Notes: Base de conocimiento personal autoalojada en el canal GENBYTE:

¿Qué es Trilium Notes: Base de conocimiento personal autoalojada?

Trilium Notes es una aplicación gratuita y de código abierto para la toma de notas jerárquica, diseñada para escalar hasta cientos de miles de notas. Permite organizar la información en árboles de profundidad arbitraria, clonar notas en múltiples ubicaciones y acceder a ellas desde cliente de escritorio, interfaz web o dispositivos móviles. El proyecto nació como fork comunitario (TriliumNext) del repositorio original de Zadam y se distribuye bajo licencia AGPL-3.0.

Combina editor enriquecido WYSIWYG, soporte para código, mapas de relaciones, lienzos tipo Excalidraw, mapas mentales, mapas geográficos y API REST para automatización, todo en una única base de datos SQLite autocontenida.

Características principales

Organización jerárquica y clonación

Las notas se disponen en árboles de profundidad ilimitada; una misma nota puede aparecer en varias ramas mediante clonación sin duplicar contenido.

Editor enriquecido y Markdown

Editor WYSIWYG con tablas, imágenes, fórmulas matemáticas y autoformato Markdown; incluye editor de código con resaltado de sintaxis para decenas de lenguajes.

Tipos de nota especializados

Canvas (Excalidraw), mapas de relaciones, mapas mentales (Mind Elixir), mapas geográficos (Leaflet/GPX), hojas de cálculo y notas de texto.

Cifrado por nota

Cifrado fuerte con granularidad por nota; las notas protegidas requieren contraseña para descifrar su contenido.

Sincronización autoalojada

Servidor de sincronización propio compatible con clientes de escritorio, web y móviles (TriliumDroid, Pocket Trilium, Trinote); versión de sincronización controlada para evitar incompatibilidades.

Scripting y API REST

Motor de scripting interno (ETAPI) y API REST documentada para automatización, atributos personalizados y widgets de usuario.

Interfaz móvil optimizada

Frontend táctil para smartphones y tabletas accesible desde navegador; aplicaciones nativas de terceros para Android e iOS.

Importación y exportación

Importación desde Evernote y Markdown; exportación a Markdown y otros formatos; Web Clipper para capturar contenido web.

Temas y personalización

Tema oscuro integrado, soporte para temas de usuario, botones de barra lateral personalizables y widgets definidos por el usuario.

Métricas y observabilidad

Endpoint de métricas compatible con Prometheus y panel de Grafana incluido para monitorizar uso y rendimiento.

Requisitos del sistema

  • Docker y Docker Compose para despliegue en contenedor
  • Puerto 8080 disponible en el host (configurable)
  • Directorio persistente para datos (trilium-data) con permisos de escritura para UID 1000
  • Navegador moderno (Chrome o Firefox últimos) para interfaz web
  • Opcional: proxy inverso (Nginx, Traefik, Caddy) para TLS y acceso remoto

Instalación con Docker Compose

Despliegue con Docker Compose

Crea un archivo docker-compose.yml con el siguiente contenido y ejecuta docker-compose up -d. Los datos se almacenan en ./trilium-data relativo al archivo.

services:
trilium:
image: triliumnext/trilium:latest
restart: unless-stopped
ports:
– '8080:8080'
volumes:
– ./trilium-data:/home/node/trilium-data
– /etc/timezone:/etc/timezone:ro
– /etc/localtime:/etc/localtime:ro

# Ejecutar:
# docker-compose up -d

Acceder al proyecto

Interfaz web

Accede a http://localhost:8080 (o http://<IP-host>:8080) tras iniciar el contenedor. La interfaz es casi idéntica a la aplicación de escritorio.

Cliente de escritorio

Descarga el binario para Windows, macOS o Linux desde la página de releases de GitHub; apunta al mismo servidor de sincronización si usas modo servidor.

Dispositivos móviles

Usa el navegador móvil para acceder a la interfaz táctil del servidor, o aplicaciones nativas de terceros: TriliumDroid (Android), Pocket Trilium (Android), Trinote (iOS).

Casos de uso

  • Base de conocimiento personal con miles de notas interconectadas
  • Wiki privada para documentación técnica, proyectos o investigación
  • Gestión de notas de reuniones, tareas y referencias con búsqueda full-text
  • Diario cifrado y almacenamiento seguro de información sensible
  • Automatización mediante scripts y API REST para integración con flujos de trabajo
  • Publicación selectiva de notas en internet mediante función de compartición
  • Captura rápida de contenido web con Web Clipper

Configuración avanzada

Versión fija de imagen

Sustituye la etiqueta latest por una versión concreta (ej. v0.106.0) para evitar actualizaciones automáticas no deseadas.

image: triliumnext/trilium:v0.106.0

Directorio de datos personalizado

Cambia la ruta del host en el volumen para almacenar los datos en otra ubicación.

volumes:
– /ruta/absoluta/datos:/home/node/trilium-data

Proxy inverso con TLS

Configura Nginx, Traefik o Caddy delante del contenedor para terminar TLS y exponer en puerto 443; asegura cabeceras X-Forwarded-* para que Trilium genere URLs correctas.

# Ejemplo Nginx
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}

Autenticación OpenID Connect y TOTP

Habilita proveedores OIDC y autenticación de dos factores (TOTP) desde la interfaz de administración del servidor para login seguro.

Desactivar actualizaciones automáticas del servidor

Recomendado al usar clientes móviles nativos (TriliumDroid, Pocket Trilium) para mantener la versión de sincronización compatible.

Gestión y mantenimiento

Actualización de versión

Modifica la etiqueta de imagen en docker-compose.yml y ejecuta docker-compose pull && docker-compose up -d. Revisa la guía de actualización oficial para migraciones de base de datos.

docker-compose pull
docker-compose up -d

Copia de seguridad

Realiza backup del directorio trilium-data (contiene base de datos SQLite, adjuntos y configuración). Puede copiarse en caliente gracias a WAL de SQLite, pero se recomienda detener el contenedor para consistencia total.

# Backup en caliente (consistente gracias a WAL)
tar -czf trilium-backup-$(date +%F).tar.gz trilium-data

# Backup en frío (detener servicio)
docker-compose down
tar -czf trilium-backup-$(date +%F).tar.gz trilium-data
docker-compose up -d

Restauración

Detén el contenedor, sustituye el directorio trilium-data por el backup y vuelve a iniciar.

docker-compose down
rm -rf trilium-data
tar -xzf trilium-backup-2025-01-15.tar.gz
docker-compose up -d

Métricas y monitorización

Expón el endpoint /metrics (puerto 8080) a Prometheus y usa el dashboard de Grafana incluido en la documentación para alertas de uso de disco, memoria y latencia.

Stack técnico

  • TypeScript (frontend y backend)
  • Node.js (servidor)
  • Electron (cliente de escritorio)
  • SQLite (base de datos embebida)
  • CKEditor 5 (editor WYSIWYG)
  • CodeMirror (editor de código)
  • Excalidraw (canvas)
  • Mind Elixir (mapas mentales)
  • Leaflet (mapas geográficos)
  • Tabulator (tablas interactivas)
  • FancyTree (árbol de navegación)
  • jsPlumb (mapas de relaciones)
  • Docker (despliegue)
  • pnpm (gestor de paquetes)
  • Vite (bundler)
  • Vitest (testing)

Referencias oficiales

Apoya el canal GENBYTE

Sígueme en mis redes sociales

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *