Serveur de synchronisation Obsidian auto-hébergé et gratuit, et application web
InventTasks reste local-first lorsque la synchronisation est activée : chaque appareil conserve des fichiers ordinaires et fonctionne hors ligne, tandis que votre serveur auto-hébergé relaie les modifications, conserve un historique limité, fournit des sauvegardes et héberge l'application Web. Le serveur est conçu pour les appareils d'une même personne ou pour plusieurs comptes utilisateur isolés, et non pour la modification simultanée d'une même tâche en équipe.
Déployer le serveur#
Téléchargez le paquet serveur prêt à l'emploi depuis https://inventtasks.solidinvent.pl/download/inventtasks-server.zip. Il contient Docker Compose, une configuration Caddy, des scripts de maintenance et des instructions de déploiement détaillées. Le paquet récupère l'image multiarchitecture publiée ghcr.io/solidinvent-dev/inventtasks-server:latest ; épinglez une balise de version si vous souhaitez des mises à niveau prévisibles. Le conteneur écoute sur le port 8480 et stocke la base SQLite ainsi que les blobs de fichiers dans /data.
- Créez un volume persistant pour
/data. - Au premier démarrage, définissez
ADMIN_USERet unADMIN_PASSWORDd'au moins huit caractères. Ils initialisent le premier compte uniquement lorsque la base ne contient encore aucun compte. - Placez Caddy, Traefik, Nginx ou un autre reverse proxy devant le conteneur. Utilisez HTTPS dès que le trafic quitte la machine locale ou un réseau privé de confiance ; les jetons de workspace sont des identifiants bearer.
- Ouvrez l'URL du serveur, connectez-vous et créez un objet Task manager ou Vault. Son jeton de synchronisation n'est affiché qu'une seule fois ; conservez-le dans un gestionnaire de mots de passe. Toute rotation invalide le jeton précédent.
L'option d'urgence ADMIN_RESET=1 réinitialise ADMIN_USER à partir de ADMIN_PASSWORD au démarrage suivant ; retirez-la puis redémarrez immédiatement le service. Définissez ENABLE_VAULT_SYNC=0 si la création de nouveaux objets Vault doit être interdite. Parmi les réglages de capacité utiles figurent MAX_FILE_MB (50 Mo par défaut) et MAX_WORKSPACE_MB (illimité par défaut).
Le tableau de bord peut exporter un ZIP des fichiers actuels ou de l'historique complet, importer un ZIP en mode fusion ou remplacement, restaurer les fichiers supprimés, et exécuter ou planifier des sauvegardes. Les sauvegardes planifiées peuvent s'exécuter chaque jour à une heure fixe ou toutes les N heures et conserver le nombre choisi de copies sous BACKUP_DIR. Le paquet de déploiement fournit aussi un outil d'export lisible qui convertit /data ou une sauvegarde serveur en coffre Obsidian ordinaire, avec, au choix, l'historique, le contenu seul, les liens relatifs, l'heure d'échéance dans les noms de fichiers et des en-têtes en anglais ou en polonais.
Pour une sauvegarde d'infrastructure fiable, utilisez ces exports ou sauvegardes, ou créez un snapshot cohérent de /data pendant que le service est arrêté. Ne vous contentez pas de copier un répertoire SQLite actif sans garantir la cohérence du snapshot. Vérifiez /healthz après le déploiement et les mises à niveau.
Synchroniser un workspace InventTasks#
Créez un objet serveur de type Task manager, puis ouvrez Paramètres → InventTasks → File sync (self-hosted) pour ce workspace local :
| Champ | Signification |
|---|---|
| Enable sync | Lance la réconciliation en arrière-plan des fichiers situés sous la racine de ce workspace InventTasks |
| Server URL | Par exemple https://sync.example.com |
| API token | Le jeton de synchronisation à affichage unique du tableau de bord ; ce n'est pas une clé d'API externe |
| Server workspace ID | L'ID de l'objet Task manager ; utilisez le même ID sur chaque appareil qui le partage |
| Full check interval | Analyse complète périodique (1 à 120 minutes) ; les modifications locales sont mises en file d'attente plus tôt |
| Live updates | Maintient une connexion WebSocket afin de détecter rapidement les modifications des autres appareils |
| Keep conflict copies | Écrit également la version locale perdante à côté du fichier après un conflit |
Utilisez Test connection, puis Sync now. Lors du premier appairage non vide, InventTasks vous demande de fusionner, d'écraser le serveur, d'écraser les fichiers locaux ou d'annuler ; Merge est généralement le choix le plus sûr. Un nouveau serveur vide accepte directement le premier envoi local.
Lorsque deux appareils modifient le même fichier, la modification dont l'horodatage est le plus récent l'emporte et le contenu perdant est placé dans l'historique des versions du serveur. Cet historique est limité : par défaut, il couvre 30 jours et 20 versions par chemin, valeurs configurables par l'opérateur du serveur. Une protection contre les suppressions massives suspend tout téléchargement entrant suspect et vous permet de restaurer les fichiers du serveur, d'accepter leur suppression locale ou de décider plus tard. Les copies de conflit facultatives constituent un filet de sécurité local supplémentaire, mais ne remplacent pas les sauvegardes.
Parcourez et restaurez les versions antérieures depuis Paramètres → File sync → Version history, ou utilisez la commande de restauration dans la palette de commandes. Lors d'une restauration, le contenu actuel remplacé est d'abord conservé dans l'historique lorsque la durée de rétention le permet.
Synchronisation gratuite et auto-hébergée du coffre Obsidian#
Vault sync est indépendant du workspace de tâches et fonctionne même si aucun workspace InventTasks n'est configuré. Il offre une solution gratuite et auto-hébergée de type Obsidian Sync pour le reste du coffre : notes, pièces jointes, images et autres fichiers. Les racines des workspaces InventTasks, .git, la corbeille et l'état d'exécution d'InventTasks sont exclus afin que les fichiers de tâches ne soient pas transférés deux fois.
- Créez un objet serveur de type Vault et copiez son jeton à affichage unique.
- Ouvrez Paramètres → InventTasks → Vault sync (self-hosted) et saisissez l'URL du serveur, le jeton et l'ID de l'objet Vault sur chaque appareil concerné.
- Vérifiez les options facultatives d'inclusion et d'exclusion :
| Option | Signification |
|---|---|
Sync Obsidian settings (.obsidian) |
Inclut les thèmes, snippets et réglages d'application pris en charge ; la disposition du workspace propre à chaque appareil et les fichiers de cache restent exclus. Désactivé par défaut |
Sync community plugins (.obsidian/plugins) |
Inclut le code et les données des autres plugins ; les réglages propres à l'appareil et les identifiants d'InventTasks restent exclus. Désactivé par défaut |
| Skip new files larger than (MB) | Limite d'envoi local pour les fichiers que le serveur n'a encore jamais vus ; 0 désactive la limite côté plugin, mais celle du serveur reste applicable |
| Excluded paths | Un motif par ligne : Folder/ ignore toute une arborescence, *.mp4 correspond à cette extension et # commence un commentaire |
Vault sync utilise les mêmes choix initiaux, mises à jour en direct, résolution par dernière modification, historique limité, outils de restauration et protection contre les suppressions massives que la synchronisation du workspace de tâches. Ne synchronisez pas simultanément les mêmes fichiers avec InventTasks Vault sync et un autre service bidirectionnel tel qu'Obsidian Sync.
Application Web et navigateur de coffre#
Le même conteneur sert l'application Web à la racine /. Connectez-vous avec le nom d'utilisateur et le mot de passe d'un compte ; les cookies de session sont HttpOnly. Les comptes sont isolés et chacun peut posséder plusieurs objets Task manager et Vault.
Un objet Task manager ouvre l'interface InventTasks avec List, Board, Calendar, Table, Gantt, Timeline, Docs, recherche et édition, le tout adossé à la copie du serveur. Les mises à jour en direct reflètent les modifications des autres clients connectés. L'application Web ne propose actuellement ni notifications externes, ni synchronisation calendrier, ni sauvegardes incrémentielles du plugin, ni liens obsidian://, et n'expose pas d'éditeur .md brut pour les ressources de tâches.
Un objet Vault ouvre un navigateur de fichiers. Il peut prévisualiser le Markdown, les images, l'audio, la vidéo et les PDF ; créer des notes et des dossiers ; modifier du Markdown ou du texte ; téléverser, télécharger, renommer, déplacer et supprimer des fichiers ; suivre les liens wiki ; ainsi que consulter ou restaurer les versions de fichiers. Ces opérations modifient la copie du serveur et sont synchronisées vers les appareils configurés.
API externe#
Pour les automatisations, activez séparément l'API externe sur un objet serveur en mode Off, Read-only ou Full. Elle utilise une clé ITX.… dédiée, et non le jeton de synchronisation ; la clé n'est affichée qu'une seule fois et est stockée sous forme de hachage sur le serveur. La console API se trouve à l'adresse /api-console, la spécification OpenAPI 3.1 à /api/ext/v2/openapi.json, et le guide complet dans la documentation de l'API. Laissez l'accès API désactivé s'il n'est pas nécessaire, utilisez le mode le plus restrictif possible et renouvelez toute clé susceptible d'avoir été exposée.