Servidor de sincronización de Obsidian autoalojado y gratuito, y aplicación web
InventTasks sigue siendo local-first cuando activas la sincronización: los dispositivos conservan archivos normales y funcionan sin conexión, mientras tu servidor autoalojado transmite los cambios, mantiene un historial limitado, proporciona copias de seguridad y aloja la aplicación web. El servidor está pensado para los dispositivos de una persona o para varias cuentas de usuario aisladas, no para que un equipo edite simultáneamente la misma tarea.
Desplegar el servidor#
Descarga el paquete de servidor listo para usar desde https://inventtasks.solidinvent.pl/download/inventtasks-server.zip. Incluye Docker Compose, configuración de Caddy, scripts de mantenimiento e instrucciones detalladas de despliegue. El paquete descarga la imagen publicada para varias arquitecturas ghcr.io/solidinvent-dev/inventtasks-server:latest; fija una etiqueta de versión concreta si quieres actualizaciones predecibles. El contenedor escucha en el puerto 8480 y almacena los datos SQLite y los blobs de archivos en /data.
- Crea un volumen persistente para
/data. - En el primer inicio, establece
ADMIN_USERy unADMIN_PASSWORDde al menos ocho caracteres. Estos valores solo crean la primera cuenta cuando la base de datos todavía no contiene ninguna. - Coloca Caddy, Traefik, Nginx u otro proxy inverso delante del contenedor. Utiliza HTTPS siempre que el tráfico salga del equipo local o de una red privada de confianza; los tokens de workspace son credenciales de portador (bearer).
- Abre la URL del servidor, inicia sesión y crea un objeto Task manager o Vault. Su token de sincronización se muestra una sola vez; guárdalo en un gestor de contraseñas. Al rotarlo, el token anterior queda invalidado.
La opción de emergencia ADMIN_RESET=1 restablece en el siguiente inicio la contraseña de ADMIN_USER con el valor de ADMIN_PASSWORD; elimínala y reinicia inmediatamente después. Establece ENABLE_VAULT_SYNC=0 si quieres impedir la creación de nuevos objetos Vault. Entre los ajustes de capacidad útiles están MAX_FILE_MB (50 MB de forma predeterminada) y MAX_WORKSPACE_MB (sin límite de forma predeterminada).
El panel permite exportar un ZIP con los archivos actuales o con todo el historial, importar un ZIP en modo merge o replace, restaurar archivos eliminados y ejecutar copias de seguridad manuales o programadas. Las copias programadas pueden ejecutarse cada día a una hora fija o cada N horas, y conservar el número elegido bajo BACKUP_DIR. El paquete de despliegue también contiene una herramienta de exportación legible que convierte /data o un backup del servidor en un vault normal de Obsidian, opcionalmente con historial, solo el contenido, enlaces relativos, la hora de vencimiento en los nombres de archivo y encabezados en inglés o polaco.
Para obtener una copia fiable de la infraestructura, utiliza estas funciones de exportación y backup o crea un snapshot coherente de /data con el servicio detenido. No confíes en copiar el directorio de una base SQLite en ejecución sin garantizar la coherencia de la instantánea. Comprueba /healthz después del despliegue y de cada actualización.
Sincronizar un workspace de InventTasks#
Crea en el servidor un objeto de tipo Task manager y abre Settings → InventTasks → File sync (self-hosted) para ese workspace local:
| Campo | Significado |
|---|---|
| Enable sync | Inicia la reconciliación en segundo plano de los archivos situados bajo la raíz de este workspace de InventTasks |
| Server URL | Por ejemplo, https://sync.example.com |
| API token | El token de sincronización mostrado una vez en el panel del servidor; no es una clave de la External API |
| Server workspace ID | El ID del objeto Task manager; utiliza el mismo ID en todos los dispositivos que lo compartan |
| Full check interval | Escaneo completo periódico cada 1–120 minutos; los cambios locales se ponen en cola antes |
| Live updates | Mantiene una conexión WebSocket para detectar rápidamente los cambios procedentes de otros dispositivos |
| Keep conflict copies | Después de un conflicto, escribe también la versión local perdedora junto al archivo |
Utiliza Test connection y después Sync now. Al vincular por primera vez dos lados que ya contienen datos, InventTasks pregunta si quieres fusionarlos, sobrescribir el servidor, sobrescribir los archivos locales o cancelar. Merge suele ser la opción más segura. Un objeto de servidor nuevo y vacío acepta directamente la primera subida local.
Cuando dos dispositivos modifican el mismo archivo, gana la versión con la fecha de modificación más reciente y el contenido perdedor se guarda en el historial de versiones del servidor. El historial es finito: los valores predeterminados son 30 días y 20 versiones por ruta, configurables por el operador del servidor. Una protección contra eliminaciones masivas detiene una descarga sospechosa y permite restaurar los archivos del servidor, aceptar la eliminación local o decidir más tarde. Las copias de conflicto opcionales ofrecen otra protección local, pero no sustituyen a los backups.
Consulta y restaura versiones anteriores desde Settings → File sync → Version history o mediante el comando de restauración de la paleta. Al restaurar una versión, InventTasks guarda primero en el historial el contenido actual que será sustituido, siempre que lo permitan los límites de retención.
Sincronización autoalojada gratuita del vault completo de Obsidian#
Vault sync es independiente del workspace de tareas y se puede utilizar incluso sin configurar ningún workspace de InventTasks. Proporciona una alternativa gratuita y autoalojada a Obsidian Sync para el resto del vault: notas, archivos adjuntos, imágenes y otros archivos. Las raíces de los workspaces de InventTasks, .git, la papelera y el estado de ejecución de InventTasks se excluyen para que los archivos de tareas no se transfieran dos veces.
- Crea en el servidor un objeto de tipo Vault y copia su token, que se muestra una sola vez.
- Abre Settings → InventTasks → Vault sync (self-hosted) en cada dispositivo participante e introduce la URL del servidor, el token y el ID del objeto Vault.
- Revisa los ajustes opcionales de inclusión y exclusión:
| Opción | Significado |
|---|---|
Sync Obsidian settings (.obsidian) |
Incluye temas, snippets y ajustes compatibles de la aplicación; el diseño del workspace y los archivos de caché específicos del dispositivo siguen excluidos. Desactivado de forma predeterminada |
Sync community plugins (.obsidian/plugins) |
Incluye el código y los datos de otros plugins; los ajustes y credenciales de InventTasks específicos del dispositivo siguen excluidos. Desactivado de forma predeterminada |
| Skip new files larger than (MB) | Límite local de subida para archivos que el servidor todavía no conoce; 0 significa que el plugin no impone un límite, pero el límite del servidor sigue aplicándose |
| Excluded paths | Un patrón por línea: Folder/ omite un subárbol, *.mp4 coincide con esa extensión y # inicia un comentario |
Vault sync utiliza las mismas opciones iniciales, actualizaciones en vivo, resolución de conflictos en favor de la última escritura, historial limitado, herramientas de restauración y protección contra eliminaciones masivas que la sincronización del workspace de tareas. Evita sincronizar simultáneamente los mismos archivos con InventTasks Vault sync y otro servicio bidireccional como Obsidian Sync.
Aplicación web y navegador del Vault#
El mismo contenedor sirve la aplicación web en /. Inicia sesión con el nombre de usuario y la contraseña de una cuenta; las cookies de sesión son HttpOnly. Las cuentas están aisladas y cada una puede poseer varios objetos Task manager y Vault.
Un objeto Task manager abre la interfaz de InventTasks con List, Board, Calendar, Table, Gantt, Timeline, Docs, búsqueda y edición respaldadas por la copia del servidor. Las actualizaciones en vivo reflejan los cambios de otros clientes conectados. Actualmente, la aplicación web no ofrece notificaciones externas, sincronización de calendario, backups incrementales del plugin ni enlaces obsidian://, y tampoco expone un editor de texto .md sin procesar para los recursos de tareas.
Un objeto Vault abre un navegador de archivos. Permite previsualizar Markdown, imágenes, audio, vídeo y PDF; crear notas y carpetas; editar Markdown o texto; subir, descargar, renombrar, mover y eliminar archivos; seguir wikienlaces; y consultar o restaurar versiones de archivos. Estas operaciones modifican la copia del servidor y se sincronizan con los dispositivos configurados.
API externa#
Para automatizaciones, activa la External API por separado en cada objeto del servidor y elige el modo Off, Read-only o Full. Utiliza una clave específica con formato ITX.…, no el token de sincronización; la clave se muestra una vez y se almacena como hash en el servidor. La consola de API está en /api-console, la especificación OpenAPI 3.1 en /api/ext/v2/openapi.json y la guía completa en la documentación de la API. Mantén el acceso API desactivado si no lo necesitas, utiliza el modo con menos permisos y rota cualquier clave que pudiera haberse expuesto.