Comment auto-héberger Trilium Notes en 2026 : répertoire de données, WebSockets et sauvegardes
Guide pratique de l’auto-hébergement de Trilium Notes couvrant Docker, les ports, la persistance des données, TLS, la sécurité, les sauvegardes et les problèmes qui empêchent une utilisation en production.
Un conteneur Trilium Notes peut être au vert alors que la fonctionnalité importante pour les utilisateurs ne fonctionne pas. Avec Trilium Notes, cette défaillance invisible vient généralement du fait que le répertoire de données est monté au mauvais chemin ou qu’il n’est pas accessible en écriture. Ce guide considère comme test d’acceptation l’opération suivante : « créer des notes liées, ajouter une pièce jointe et une relation, les rechercher et vérifier l’historique des révisions après un redémarrage », puis construit le déploiement à rebours à partir de ce résultat.
Trilium Notes joue un rôle précis dans la stack : celui d’une base de connaissances personnelle structurée en arborescence. La question à se poser en production n’est donc pas de savoir si le port 8080 répond une fois, mais si l’état, les dépendances et l’adresse publique restent cohérents après un redémarrage, une mise à jour et une restauration.
Cartographier Trilium Notes avant de toucher à Docker
Le processus HTTP de Trilium Notes écoute sur le port 8080 ; gardez ce port sur le réseau applicatif et ne publiez que la route de la plateforme. Le prérequis du runtime local est un répertoire de données durable et suffisamment de mémoire pour l’indexation. Validez-le avec la charge correspondant au test d’acceptation ; un health check exécuté sur une instance inactive ne peut pas prouver que les ressources sont suffisantes.
Formalisez la limite sous la forme d’un court contrat : qui est responsable du prérequis, quel identifiant est utilisé, quel timeout est acceptable et comment l’échec se manifeste. Exécutez ensuite cette transaction : créer des notes liées, ajouter une pièce jointe et une relation, les rechercher et vérifier l’historique des révisions après un redémarrage. Observez l’indexation des notes, la taille des pièces jointes, les scripts et la croissance de document.db pendant l’exécution, car cette charge fournit une estimation initiale plus utile qu’un conteneur inactif.
Tester Trilium Notes depuis l’extérieur du serveur
Exposez un seul hostname HTTPS pour Trilium Notes et gardez le port 8080 brut privé. Publiez l’interface web via HTTPS en préservant les WebSockets. Les navigateurs et les clients API n’auront ainsi pas à gérer deux adresses concurrentes.
Depuis un client vierge, exécutez la transaction validée et examinez la première requête qui échoue. Consultez le guide des domaines personnalisés en cas de problème de DNS ou de TLS. Une fois la route validée, traitez séparément le diagnostic applicatif « le répertoire de données est monté au mauvais chemin ou n’est pas accessible en écriture ».
Lancer Trilium Notes avec des valeurs par défaut observables
Un lancement adapté à la production doit rester volontairement simple : un état nommé, un port explicite et aucun secret dans l’image.
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
Cet exemple constitue une base, et non une stack complète. Vérifiez le prérequis local avant toute exposition : un répertoire de données durable et suffisamment de mémoire pour l’indexation. Vérifiez les montages effectifs et le listener, puis essayez de créer des notes liées, d’ajouter une pièce jointe et une relation, de les rechercher et de vérifier l’historique des révisions après un redémarrage. Épinglez l’image qui fonctionne avant le prochain redémarrage.
Surveiller la charge, pas seulement le conteneur
Observez le travail effectué par Trilium Notes : l’indexation des notes, la taille des pièces jointes, les scripts et la croissance de document.db. Définissez les limites en conservant une marge pour cette charge et évitez une liveness probe qui entre en concurrence avec elle. Le contrôle de l’opérateur doit continuer à tenter, selon un calendrier défini, de créer des notes liées, d’ajouter une pièce jointe et une relation, de les rechercher et de vérifier l’historique des révisions après un redémarrage.
Pour les mises à jour, n’oubliez pas que les migrations, scripts et extensions de thème de TriliumNext doivent être testés sur un répertoire de données dupliqué. Déployez la version candidate sur une copie restaurée et répétez le test validé. Si le répertoire de données est monté au mauvais chemin ou n’est pas accessible en écriture, utilisez les logs du runtime et la requête réseau réelle pour déterminer quelle hypothèse a changé.
Ce qui doit fonctionner avant l’arrivée des vraies données Trilium Notes
Le dossier de mise en production de Trilium Notes doit contenir des faits, pas un simple « ça a l’air bon ». Enregistrez le digest de l’image sélectionnée, le checksum de la configuration, le hostname public et le résultat horodaté des opérations suivantes : créer des notes liées, ajouter une pièce jointe et une relation, les rechercher et vérifier l’historique des révisions après un redémarrage. Utilisez des données d’exemple non sensibles afin de pouvoir exécuter ce contrôle après chaque déploiement.
Prouvez séparément deux événements du cycle de vie. Le remplacement d’un conteneur doit préserver le fonctionnement normal ; une restauration complète doit montrer que les notes, les relations, les pièces jointes, les attributs et les révisions sont récupérés et que la recherche connue retrouve la même note. Pendant les contrôles, mesurez l’indexation des notes, la taille des pièces jointes, les scripts et la croissance de document.db, puis conservez le résultat comme enveloppe de référence pour cette version.
Testez également une condition refusée ou invalide : envoyez une entrée inoffensive proche de la limite de ressource ou de format associée à cette limite : le répertoire de données est monté au mauvais chemin ou n’est pas accessible en écriture. Trilium Notes doit échouer de manière diagnostiquable et ne doit pas écraser un état sain. Rétablissez la condition valide, relancez l’exemple et joignez les logs pertinents après masquage des informations sensibles. Ces éléments fournissent des preuves concrètes pour décider d’un futur rollback.
Sauvegarder l’état que Trilium Notes ne peut pas recréer
Définissez les objectifs de point de reprise et de délai de récupération de Trilium Notes en fonction de document.db, des pièces jointes, des révisions et de la configuration. Montez /home/node/trilium-data avant le bootstrap, écrivez des données d’exemple inoffensives et remplacez le conteneur pour prouver que ce chemin est réellement persistant. Un volume nommé résout la persistance lors d’un redéploiement ; il ne protège ni contre une compromission ni contre la perte du serveur.
Créez un environnement de restauration propre, utilisez la même version applicative épinglée et prouvez que les notes, les relations, les pièces jointes, les attributs et les révisions sont récupérés et que la recherche connue retrouve la même note. Consignez les commandes, les corrections de propriétaires et le temps écoulé. Le guide des sauvegardes fournit une bonne référence : une sauvegarde n’est fiable qu’après sa restauration, pas après son téléversement.
Définir la limite de confiance de Trilium Notes
Fermez la fenêtre de bootstrap dès qu’un premier administrateur de confiance existe. Le piège concret de Trilium Notes consiste à exposer une base de connaissances personnelle sans authentification solide ; la limite la plus sûre consiste à considérer le carnet comme une donnée privée, à exiger une authentification forte et à n’exposer aucun système de fichiers plus large que son répertoire de données.
TRILIUM_DATA_DIR contrôle le comportement, pas la confidentialité ; validez son type et sa valeur, et stockez séparément les véritables identifiants de Trilium Notes. Le réseau privé doit transporter les identifiants des dépendances, et les rôles au sein de Trilium Notes doivent accorder uniquement les actions strictement nécessaires. Évitez de conserver les corps de requête sensibles et les réponses des providers dans les logs courants.
Ce que Dockup devrait automatiser pour Trilium Notes
Pour Trilium Notes, Dockup peut créer la route et le certificat TLS, préserver les montages, fournir les secrets et placer un répertoire de données durable ainsi que suffisamment de mémoire pour l’indexation sur un réseau privé, tout en déployant sur Dockup ou sur des serveurs attachés.
La release gate reste toutefois la transaction concrète de Trilium Notes : créer des notes liées, ajouter une pièce jointe et une relation, les rechercher et vérifier l’historique des révisions après un redémarrage. Vérifiez également la condition de restauration : les notes, les relations, les pièces jointes, les attributs et les révisions sont récupérés et la recherche connue retrouve la même note. Ces deux contrôles montrent si le déploiement fonctionne et s’il peut être restauré.
Foire aux questions
De quoi Trilium Notes a-t-il besoin pour un déploiement en production ?
Acheminez le conteneur Trilium Notes sur le port 8080 via une seule origine HTTPS. Le prérequis du runtime local est un répertoire de données durable et suffisamment de mémoire pour l’indexation. Ne considérez pas Trilium Notes comme prêt tant que vous ne pouvez pas créer des notes liées, ajouter une pièce jointe et une relation, les rechercher et vérifier l’historique des révisions après un redémarrage.
Quelles données de Trilium Notes doivent figurer dans une sauvegarde ?
Conservez /home/node/trilium-data et incluez document.db, les pièces jointes, les révisions et la configuration dans le même manifest de restauration. Une restauration propre de Trilium Notes n’est validée que lorsque les notes, les relations, les pièces jointes, les attributs et les révisions sont récupérés et que la recherche connue retrouve la même note.
Trilium Notes nécessite-t-il HTTPS derrière un reverse proxy ?
Utilisez HTTPS pour l’origine publique de Trilium Notes et gardez le port 8080 sur la route interne. Appliquez correctement le paramètre de Trilium Notes : publiez l’interface web via HTTPS en préservant les WebSockets. Pour Trilium Notes, HTTPS protège les identifiants ou le contenu utilisateur pendant leur transit et garantit un comportement cohérent des clients dépendant de l’origine.
Comment tester une mise à niveau de Trilium Notes ?
Restaurez l’état actuel de Trilium Notes dans un déploiement isolé, appliquez la version candidate et répétez sa transaction d’acceptation. Soyez particulièrement attentif, car les migrations, scripts et extensions de thème de TriliumNext doivent être testés sur un répertoire de données dupliqué. Conservez l’image précédente de Trilium Notes jusqu’à ce que les limites de migration des données et de rollback soient bien comprises.
