From feefc51d6f583ba227929501113ee862b6fc1b9c Mon Sep 17 00:00:00 2001 From: Bruno Charest Date: Fri, 19 Jun 2026 14:28:05 -0400 Subject: [PATCH] =?UTF-8?q?fix:=20restore=20both=20TOCs=20=E2=80=94=20Help?= =?UTF-8?q?=20(18=20links)=20and=20Settings=20(14=20links)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Help TOC: 18 help-* links restored from git - Settings TOC: 14 cfg-* links with correct section anchors - Both TOCs now live in their respective nav containers --- frontend/index.html | 5023 ++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 4964 insertions(+), 59 deletions(-) diff --git a/frontend/index.html b/frontend/index.html index 9be8cbc..9e16457 100644 --- a/frontend/index.html +++ b/frontend/index.html @@ -2578,78 +2578,4983 @@ ✕ - + +
+
+
+
Guide officiel
+

📘 Bienvenue dans ObsiGate

+

+ ObsiGate est votre porte d'entrée web vers + vos vaults Obsidian. Accédez, naviguez et + recherchez dans toutes vos notes depuis + n'importe quel appareil via une interface + moderne et responsive. +

+
+ ⚡ Navigation rapide + 🗂️ Multi-vault + 🏷️ Tags intelligents + 📝 Lecture et édition + 🔍 Recherche TF-IDF +
+
+ +
+ +
+

🧭 Interface utilisateur

+ +

En-tête

+

+ La barre supérieure contient les éléments + essentiels : +

+ + +

Sidebar (barre latérale)

+

La sidebar est divisée en deux onglets :

+
    +
  • + Vaults : Arborescence des + fichiers et dossiers +
  • +
  • + Tags : Nuage de tags + cliquables +
  • +
+

Fonctionnalités de la sidebar :

+
    +
  • + Filtrage : Barre de + recherche pour filtrer fichiers/tags +
  • +
  • + Sélection rapide : Dropdown + pour changer de vault +
  • +
  • + Redimensionnement : Glissez + le bord droit pour ajuster la largeur +
  • +
  • + Masquage : Cliquez sur + l'icône sidebar dans le header +
  • +
+ +

Zone de contenu

+

La zone centrale affiche :

+
    +
  • + Breadcrumb : Chemin du + fichier (cliquable pour repositionner la + sidebar) +
  • +
  • + Titre et tags : Métadonnées + du fichier +
  • +
  • + Boutons d'action : Copier, + Source, Télécharger, Éditer, Ouvrir dans + nouvelle fenêtre +
  • +
  • + Contenu rendu : Markdown + avec wikilinks et images +
  • +
+
+ +
+

🗺️ Navigation

+ +

Arborescence des vaults

+

+ Cliquez sur un vault pour l'ouvrir et voir son + contenu. Les dossiers affichent un chevron et un + badge avec le nombre d'éléments. +

+
    +
  • + Développer/Réduire: + Cliquez sur un dossier +
  • +
  • + Ouvrir un fichier: Cliquez + sur le nom du fichier +
  • +
  • + Icônes : Chaque type de + fichier a son icône (markdown, code, etc.)
  • +
+ +

Filtrage de la sidebar

+

+ Utilisez la barre de filtrage en haut de la + sidebar pour rechercher rapidement : +

+
    +
  • + Recherche instantanée: + Tapez pour filtrer fichiers et dossiers +
  • +
  • + Case-sensitive: Bouton + "Aa" pour respecter la casse +
  • +
  • + Effacer : Bouton "×" pour + réinitialiser le filtre
  • +
  • + Résultats groupés: + Affichage par vault avec chemins complets +
  • +
+ +

Breadcrumb et repositionnement

+

+ Le chemin affiché au-dessus du contenu est + interactif : +

+
    +
  • + Cliquez sur le vault: + Focus sur le vault dans la sidebar +
  • +
  • + Cliquez sur un segment: + Navigation vers ce dossier +
  • +
  • + Auto-scroll: La sidebar se + positionne automatiquement +
  • +
+ +

Sélection de vault

+

+ Changez de contexte pour filtrer l'affichage : +

+
    +
  • + Menu header: Dropdown + "Vault" dans le menu Options +
  • +
  • + Sidebar dropdown : + Sélection rapide en haut de l'onglet Vaults
  • +
  • + Tous les vaults: Vue + globale de tous vos contenus +
  • +
  • + Vault spécifique: Focus + sur un seul vault +
  • +
+
+ +
+

📑 Gestion des onglets

+

+ ObsiGate supporte l'ouverture de plusieurs + fichiers simultanément dans des onglets. +

+ +

Ouverture d'onglets

+
    +
  • + Simple clic : Ouvre le + fichier dans un onglet temporaire (aperçu, + italique)
  • +
  • + Double clic: Ouvre le + fichier dans un onglet persistant +
  • +
  • + Navigation récente : + L'onglet "Récent" dans la sidebar liste vos + derniers fichiers
  • +
+ +

Navigation entre onglets

+
    +
  • + Clic sur un onglet: Active + l'onglet +
  • +
  • + Ctrl+Tab: Onglet suivant +
  • +
  • + Ctrl+Shift+Tab : Onglet + précédent
  • +
  • + Ctrl+W: Fermer l'onglet + actif +
  • +
  • + Bouton ✕: Ferme l'onglet + (sauf s'il est seul) +
  • +
+ +

Fonctionnalités

+
    +
  • + Barre d'onglets : Affichage + horizontal avec le nom du fichier et son + icône
  • +
  • + Onglet actif : Surligné en + couleur d'accentuation
  • +
  • + Prévisualisation : Un + onglet temporaire (italique) est remplacé + par le prochain clic
  • +
  • + Onglets persistants : + Restent ouverts jusqu'à fermeture manuelle
  • +
+
+ +
+

🔍 Recherche

+ +

Recherche simple

+

+ Tapez dans la barre de recherche en haut pour + lancer une recherche fulltext : +

+
    +
  • + Recherche dans tout: + Titre, contenu, tags, chemins +
  • +
  • + Scoring intelligent : + Résultats classés par pertinence TF-IDF
  • +
  • + Snippets surlignés: + Extraits avec termes en surbrillance +
  • +
  • + Pagination : Navigation par + pages de 50 résultats
  • +
+ +

Opérateurs avancés

+

+ Utilisez des opérateurs pour affiner votre + recherche : +

+
    +
  • + tag:docker ou + #docker : Filtrer par tag +
  • +
  • + vault:IT : Rechercher dans un + vault spécifique +
  • +
  • + title:kubernetes : Chercher + dans les titres uniquement +
  • +
  • + path:recettes/soupes : Filtrer + par chemin +
  • +
  • + ext:md : Filtrer par type de + fichier +
  • +
  • + "phrase exacte" : Recherche de + phrase entre guillemets +
  • +
+

+ Exemples: + ext:sh recherche dans les scripts + bash, ext:py dans les scripts + Python, ext:md dans les fichiers + Markdown. +

+

+ Exemple combiné : + tag:linux vault:IT ext:md serveur web + recherche "serveur web" dans les fichiers + Markdown du vault IT avec le tag linux. +

+ +

Autocomplétion

+

+ L'autocomplétion vous aide à trouver rapidement + : +

+
    +
  • + Historique : Les 50 + dernières recherches (localStorage)
  • +
  • + Fichiers: Suggestions de + titres de fichiers +
  • +
  • + Tags: Suggestions de tags + avec compteurs +
  • +
  • + Navigation clavier : ↑/↓ + pour naviguer, Enter pour sélectionner
  • +
+ +

Chips de filtres actifs

+

+ Les opérateurs utilisés s'affichent sous forme + de chips colorés : +

+
    +
  • + Visualisation: Voir d'un + coup d'œil les filtres actifs +
  • +
  • + Suppression: Cliquez sur + "×" pour retirer un filtre +
  • +
  • + Couleurs : Chaque type + d'opérateur a sa couleur
  • +
+ +

Facettes et tri

+

+ Les résultats incluent des facettes pour affiner + : +

+
    +
  • + Facettes tags : Compteurs + par tag dans les résultats
  • +
  • + Facettes vaults: Compteurs + par vault +
  • +
  • + Tri par pertinence : Score + TF-IDF (défaut)
  • +
  • + Tri par date : Dernière + modification
  • +
+
+ +
+

🏷️ Tags

+ +

Tag cloud

+

+ L'onglet Tags de la sidebar affiche un nuage de + tags : +

+
    +
  • + Tous les tags: Extraits + des frontmatters YAML et inline (#tag) +
  • +
  • + Cliquable : Cliquez pour + filtrer les résultats
  • +
  • + Filtrage: Utilisez la + barre de filtrage pour chercher un tag +
  • +
  • + Contexte vault : Les tags + s'adaptent au vault sélectionné
  • +
+ +

Tags inline vs frontmatter

+

ObsiGate supporte deux types de tags :

+
    +
  • + Frontmatter YAML: + tags: [docker, linux] ou + tags: docker, linux +
  • +
  • + Inline: + #docker dans le contenu + markdown +
  • +
  • + Fusion automatique : Les + deux types sont combinés
  • +
+ +

Filtrage de tags template

+

+ Dans les Configurations, vous pouvez masquer les + tags de template : +

+
    +
  • + Patterns wildcards: Ex: + #<% ... %> ou + #{{ ... }} +
  • +
  • + Regex générée : Aperçu de + la regex appliquée
  • +
  • + Ajout/Suppression : Gérez + vos patterns de filtrage
  • +
+
+ +
+

📄 Fichiers

+ +

Visualisation

+

Les fichiers markdown sont rendus avec :

+
    +
  • + Wikilinks cliquables: + [[lien]] et + [[lien|texte]] +
  • +
  • + Images Obsidian: Support + de ![[image.png]] +
  • +
  • + Syntax highlighting: + Coloration des blocs de code +
  • +
  • + Tables, listes, quotes: + Rendu complet du markdown +
  • +
+ +

Actions sur fichiers

+

Boutons disponibles au-dessus du contenu :

+
    +
  • + Copier: Copie le contenu + source dans le presse-papiers +
  • +
  • + Source: Affiche/masque le + markdown brut +
  • +
  • + Télécharger : Télécharge le + fichier
  • +
  • + Éditer : Ouvre l'éditeur + CodeMirror
  • +
  • + Ouvrir dans nouvelle fenêtre: Ouvre le fichier dans un nouvel onglet +
  • +
+ +

Édition avec CodeMirror 6

+

L'éditeur intégré offre :

+
    +
  • + Coloration syntaxique: + Support de nombreux langages +
  • +
  • + Numéros de ligne: + Navigation facile +
  • +
  • + Autocomplétion: + Suggestions contextuelles +
  • +
  • + Recherche: Ctrl+F pour + chercher dans le fichier +
  • +
  • + Sauvegarde: Bouton ✓ pour + enregistrer +
  • +
  • + Suppression: Bouton + corbeille pour supprimer +
  • +
+ +

Types de fichiers supportés

+

ObsiGate indexe et affiche :

+
    +
  • + Markdown : .md (rendu + complet) +
  • +
  • + Code : .py, .js, .ts, .jsx, + .tsx, .java, .c, .cpp, .rs, .go, etc. +
  • +
  • + Config : .json, .yaml, + .yml, .toml, .xml, .ini, .env +
  • +
  • + Scripts : .sh, .bash, .ps1, + .bat +
  • +
  • + Web : .html, .css, .scss +
  • +
  • + Autres : .txt, .log, .sql, + .csv +
  • +
+
+ + +
+

✏️ Édition avancée

+ +

Éditeur CodeMirror 6

+

+ L'éditeur intégré offre une expérience complète + d'édition : +

+
    +
  • + Coloration syntaxique: + Python, JS, HTML, CSS, Java, C++, Rust, Go + et bien d'autres +
  • +
  • + Numéros de ligne : + Navigation facilitée dans les fichiers longs
  • +
  • + Find in page: Ctrl+F pour + chercher dans le fichier (casse, regex, mot + entier) +
  • +
  • + Sauvegarde automatique : + Auto-save silencieux après 2s d'inactivité, + flash vert de confirmation
  • +
  • + Bouton ✓: Sauvegarde + manuelle +
  • +
  • + Bouton 🗑️: Suppression du + fichier +
  • +
  • + Barre d'outils AI : + Complétion, réécriture, traduction (voir + section🤖 IA) +
  • +
+
+ + +
+

🗺️ Vue Graphe

+

+ La vue graphe offre une visualisation + interactive des connexions entre vos notes via + les wikilinks. +

+ +

Ouverture

+
    +
  • + Menu contextuel: Clic + droit sur un vault ou dossier → Vue + Graphique +
  • +
  • + Bouton dédié : Dans la + barre d'outils (le cas échéant)
  • +
+ +

Interaction

+
    +
  • + Zoom/Pan : Molette pour + zoomer, cliquer-glisser pour se déplacer
  • +
  • + Slider de profondeur : + Contrôle la profondeur d'exploration (0-3)
  • +
  • + Filtre par tag : N'affiche + que les nœuds avec un tag spécifique
  • +
  • + Filtre par type: + Inclut/exclut fichiers, dossiers, markdown, + autres +
  • +
  • + Recherche visuelle: Barre + de recherche pour surligner des nœuds +
  • +
  • + Mode focus : Centre la vue + sur un nœud spécifique
  • +
  • + Navigation ← → ↑: + Historique de navigation entre les nœuds +
  • +
+ +

Affichage

+
    +
  • + Nœuds : Fichiers (carrés) + et dossiers (cercles) avec icônes
  • +
  • + Arêtes: Wikilinks sortants + (bleu) et backlinks entrants (vert) +
  • +
  • + Panneau d'info : + Métadonnées du nœud (tags, liens, chemin)
  • +
  • + Ctrl+survol : Aperçu du + contenu de la note sans naviguer
  • +
  • + Plein écran: Bouton pour + agrandir la vue +
  • +
  • + Export PNG: Sauvegardez le + graphe en image +
  • +
+ +

Performance

+

+ La vue utilise l'algorithme Barnes-Hut pour + calculer la disposition en O(n log n), + garantissant des performances fluides même avec + des centaines de nœuds. +

+
+ + + + +
+

🤖 Intelligence Artificielle dans l'Éditeur

+

+ ObsiGate intègre un assistant IA directement + dans l'éditeur de texte. Pour l'activer, + configurez au moins un provider AI dans le + fichier .env (DeepSeek, OpenRouter + ou Gemini). +

+ +

Activation

+
    +
  1. + Ajoutez votre clé API dans + .env : + DEEPSEEK_API_KEY=sk-... +
  2. +
  3. + Redémarrez le conteneur : + docker compose down && docker compose + up -d --build +
  4. +
  5. + Ouvrez un fichier en mode Édition (bouton ✏️ + Éditer) +
  6. +
  7. + La barre d'outils AI apparaît sous le titre + de l'éditeur +
  8. +
+ +

Barre d'outils AI

+

+ La barre d'outils contient les boutons suivants + : +

+
    +
  • + ✦ AI — Complétion inline + (Ctrl+J). Complète + automatiquement le texte là où se trouve le + curseur. +
  • +
  • + Éditer ▾ — Menu de + modification du texte sélectionné :
      +
    • + 🪄 + Improve writing : + Améliore la qualité, la clarté et le + flux du texte +
    • +
    • + 🔤 + Fix spelling & grammar + : Corrige les fautes d'orthographe + et de grammaire +
    • +
    • + 📏 Make shorter : + Rend le texte plus concis tout en + préservant l'information +
    • +
    • + 📐 Make longer : + Ajoute des détails, exemples ou + explications +
    • +
    • + 📋 + Simplify language : + Simplifie le langage, évite le + jargon +
    • +
    +
  • +
  • + Ton ▾ — Change le ton du + texte : +
      +
    • + 💼 Professional : + Ton formel et professionnel +
    • +
    • + 💬 Casual : Ton + décontracté et conversationnel +
    • +
    +
  • +
  • + Traduire ▾ — Traduit le + texte sélectionné vers une autre langue :
      +
    • + 🇬🇧 English · 🇨🇳 Chinese · 🇯🇵 + Japanese · 🇩🇪 German · 🇫🇷 French · + 🇪🇸 Spanish +
    • +
    +
  • +
  • + Générer ▾ — Génère du + contenu à partir de la sélection :
      +
    • + ℹ️ Explain this : + Explique le texte sélectionné de + façon claire +
    • +
    • + 📝 Summarize : + Résume le texte de façon concise +
    • +
    • + ✏️ + Continue writing : + Continue l'écriture à partir du + texte +
    • +
    +
  • +
  • + 💬 Réécrire — Réécrit le + texte selon vos instructions personnalisées. + Une boîte de dialogue vous demande votre + instruction.
  • +
  • + 🧰 Boîte ▾ — Outils de + conversion : +
      +
    • + 📋 + Convert to list : + Transforme le texte en liste + Markdown +
    • +
    • + 📊 + Convert to table : + Transforme en tableau Markdown +
    • +
    • + ⚙️ + Generate frontmatter + : Génère un bloc YAML frontmatter +
    • +
    • + 🔷 + Convert to canvas : + Convertit en diagramme Mermaid.js +
    • +
    +
  • +
+ +

Indicateurs visuels

+
    +
  • + Pendant une requête AI, un toast + ⏳ AI: traitement en cours... + s'affiche +
  • +
  • + Une fois terminé, + AI: texte traité ✓ confirme + le succès +
  • +
  • + En cas d'erreur de clé API : + AI: clé API invalide +
  • +
+ +

Sauvegarde automatique

+

+ L'éditeur sauvegarde automatiquement après 2 + secondes d'inactivité. Le bouton de sauvegarde + flashe en vert brièvement pour + confirmer. +

+ +

Providers supportés

+ + + + + Modèle par défaut + + + + + + + + + + + + + + + + +
ProviderVariable .env
DeepSeekDEEPSEEK_API_KEYdeepseek-chat
OpenRouterOPENROUTER_API_KEYopenai/gpt-4o-mini
GeminiGEMINI_API_KEYgemini-2.0-flash
+

+ Pour changer de provider par défaut : + AI_DEFAULT_PROVIDER=openrouter +

+
+ +
+

⌨️ Palette de commandes

+

+ La palette de commandes permet d'accéder + rapidement aux fichiers et aux actions sans + utiliser la souris. +

+ +

Ouverture

+
    +
  • + Ctrl+Shift+Espace : Palette + de fichiers (recherche par titre) +
  • +
  • + Ctrl+Alt+Espace : Palette + de commandes (liste d'actions) +
  • +
  • + Tab : Bascule entre mode + fichiers et mode commandes +
  • +
+ +

Mode fichiers

+

+ Tapez le nom d'un fichier pour le trouver + rapidement. La recherche utilise l'API + /api/suggest pour des suggestions + instantanées. Appuyez sur Enter pour + ouvrir le fichier sélectionné. +

+ +

Mode commandes

+

+ Tapez > (ou Ctrl+Alt+Espace) + pour voir la liste des actions disponibles : +

+
    +
  • + 🏠 Accueil : Retour à + l'accueil +
  • +
  • + ✏️ Éditer fichier courant : + Ouvre l'éditeur sur l'onglet actif +
  • +
  • + 🪟 Pop-out : Ouvre le document dans une fenêtre détachée +
  • +
  • + 📄 Créer fichier markdown : + Crée un nouveau fichier .md et l'ouvre dans + l'éditeur +
  • +
  • + 🗑️ + Supprimer fichier courant : + Supprime le fichier de l'onglet actif +
  • +
  • + 📁 Créer répertoire : Crée + un nouveau dossier +
  • +
  • + 🗑️ Supprimer répertoire : + Supprime un dossier et son contenu +
  • +
  • + 🌓 Changer le thème : + Bascule clair/sombre +
  • +
  • + 🔄 Réindexer : Force la + réindexation complète +
  • +
  • + ❓ Aide : Ouvre ce guide +
  • +
  • + ⚙️ Configuration : Ouvre + les paramètres +
  • +
+ +

Navigation

+
    +
  • + ↑ ↓ : Se déplacer dans la liste +
  • +
  • Enter : Ouvrir/sélectionner
  • +
  • Esc : Fermer la palette
  • +
  • + Tab : Basculer entre fichiers et + commandes +
  • +
+
+ +
+

⌨️ Raccourcis clavier

+ +

Navigation

+
    +
  • + Ctrl+K ou Cmd+K : + Focaliser la barre de recherche +
  • +
  • + / : Focaliser la recherche + (hors champ texte) +
  • +
  • + Escape : Fermer les suggestions + / quitter la recherche +
  • +
+ +

Recherche et autocomplétion

+
    +
  • + ↑ / ↓ : Naviguer + dans les suggestions +
  • +
  • + Enter : Sélectionner la + suggestion active ou lancer la recherche +
  • +
  • + Escape : Fermer le dropdown de + suggestions +
  • +
+ +

Interface

+
    +
  • + Ctrl+T : Basculer le thème + clair/sombre +
  • +
  • + Ctrl+Shift+Espace : Palette de + fichiers +
  • +
  • + Ctrl+Alt+Espace : Palette de + commandes +
  • +
  • + Escape : Fermer la palette / + les suggestions +
  • +
+ +

Onglets

+
    +
  • + Ctrl+W : Fermer l'onglet actif +
  • +
  • Ctrl+Tab : Onglet suivant
  • +
  • + Ctrl+Shift+Tab : Onglet + précédent +
  • +
+ +

Éditeur CodeMirror

+
    +
  • + Ctrl+F : Rechercher dans le + fichier +
  • +
  • Ctrl+Z : Annuler
  • +
  • Ctrl+Y : Refaire
  • +
  • + Ctrl+S : Sauvegarder (si + configuré) +
  • +
+
+ + + + +
+

🔗 Partage et Webhooks

+ +

Publication publique

+

+ ObsiGate permet de partager des documents via un + lien public temporaire. +

+
    +
  • + Bouton Partager : Dans les + actions du fichier, génère un lien unique
  • +
  • + Token unique : 64 + caractères hexadécimaux, impossible à + deviner
  • +
  • + Expiration configurable : + Durée de vie en heures
  • +
  • + Lecture seule : La vue + publique n'affiche que le contenu sans + édition
  • +
  • + Gestion des liens : Liste + et révocation dans les Configurations
  • +
  • + Export PDF : Téléchargement + du document partagé en PDF via/s/{token}/pdf +
  • +
+
+ + +
+

🪝 Webhooks

+

+ Les webhooks permettent à ObsiGate de + notifier automatiquement des services + externes + lorsque des fichiers ou dossiers sont modifiés. + Chaque événement déclenche un + POST HTTP vers l'URL de votre + choix, avec un payload JSON détaillé. +

+ +

Cas d'usage

+
    +
  • + Automatisation CI/CD : + Déclencher un build quand une note de + procédure est mise à jour
  • +
  • + Synchronisation : Copier + les nouveaux fichiers vers un autre système + (SharePoint, Google Drive)
  • +
  • + Notifications : Alerter un + canal Slack/Discord quand un document est + créé
  • +
  • + Audit externe : Logger + toutes les modifications dans une base de + données externe
  • +
  • + Déploiement : Publier un + article de blog quand un fichier est marquépublish: true +
  • +
+ +

Événements supportés

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Événement + + Déclencheur + + Données +
+ file_created + + Création via l'API ou la palette + + vault, + path +
+ file_deleted + + Suppression via l'API ou l'éditeur + + vault, + path +
+ file_renamed + + Renommage via l'API + + vault, + old_path, + new_path +
+ directory_created + + Création de dossier via l'API + + vault, + path +
+ directory_deleted + + Suppression de dossier via l'API + + vault, + path +
+ directory_renamed + + Renommage de dossier via l'API + + vault, + old_path, + new_path +
+
+

+ Note : l'événement + file_modified est réservé pour + usage futur. Les modifications de contenu + via l'éditeur ne déclenchent pas encore de + webhook. +

+ +

Format du payload

+

+ Chaque webhook reçoit un POST avec + Content-Type: application/json : +

+
{
+  "event": "file_created",
+  "timestamp": "2026-06-03T14:30:00.123456+00:00",
+  "data": {
+    "vault": "IT",
+    "path": "procedures/deploiement.md"
+  }
+}
+ +

Sécurité : signature HMAC-SHA256

+

+ Si vous configurez un secret, chaque requête + inclut un header + X-ObsiGate-Signature : +

+
X-ObsiGate-Signature: sha256=9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08
+

+ Pour vérifier côté récepteur : calculez + HMAC-SHA256(corps_brut, secret) et + comparez. Le header + X-ObsiGate-Event contient aussi le + type d'événement pour un routage rapide. +

+ +

Configuration

+

+ Les webhooks se gèrent dans le modal + Configurations (⚙️ menu + Options), section Webhooks. Réservé aux + administrateurs. +

+
    +
  1. + Allez dans ⚙️ Configurations → onglet + Webhooks +
  2. +
  3. + Remplissez : + Nom (descriptif), + URL (endpoint cible), + Secret (optionnel) +
  4. +
  5. Cochez les événements à écouter
  6. +
  7. Cliquez Ajouter
  8. +
+

+ Les webhooks peuvent être activés/désactivés, + modifiés ou supprimés à tout moment. Le + last_fired_at indique la dernière + exécution. +

+ +

Exemples concrets

+ +

Récepteur Python (Flask)

+
from flask import Flask, request\nimport hmac, hashlib\n\napp = Flask(__name__)\nWEBHOOK_SECRET = "mon-secret"  # même que dans ObsiGate\n\n@app.route("/webhook", methods=["POST"])\ndef webhook():\n    # Vérifier la signature\n    signature = request.headers.get("X-ObsiGate-Signature", "")\n    body = request.get_data()\n    expected = "sha256=" + hmac.new(\n        WEBHOOK_SECRET.encode(), body, hashlib.sha256\n    ).hexdigest()\n    if not hmac.compare_digest(signature, expected):\n        return "Invalid signature", 403\n\n    payload = request.get_json()\n    print(f"Événement: {payload['event']}")\n    print(f"Fichier: {payload['data']['vault']}/{payload['data']['path']}")\n    return "OK", 200\n\napp.run(port=5000)
+ +

n8n / Make (no-code)

+
    +
  1. + Créez un + Webhook Trigger dans n8n ou + Make +
  2. +
  3. + Copiez l'URL générée (ex: + https://n8n.monserveur.com/webhook/abc123) +
  4. +
  5. + Dans ObsiGate, ajoutez un webhook pointant + vers cette URL +
  6. +
  7. Sélectionnez les événements souhaités
  8. +
  9. + Le workflow se déclenche automatiquement à + chaque événement +
  10. +
+ +

Notification Discord

+

+ Utilisez un webhook relais (n8n, Make, ou un + script) pour transformer le payload ObsiGate en + message Discord : +

+
# Exemple avec curl + jq dans un script bash
+WEBHOOK_URL="https://discord.com/api/webhooks/..."
+OBSIGATE_SECRET="mon-secret"
+
+# Lire le payload depuis stdin
+read -r payload
+event=$(echo "$payload" | jq -r '.event')
+path=$(echo "$payload" | jq -r '.data.path')
+
+curl -H "Content-Type: application/json" -d "{
+  \"content\": \"📝 **$event** — $path\"
+}" "$WEBHOOK_URL"
+ +

Tester avec curl

+
# Simuler ce qu'ObsiGate envoie (pour tester votre endpoint)
+curl -X POST https://votre-serveur.com/webhook \
+  -H "Content-Type: application/json" \
+  -H "X-ObsiGate-Event: file_created" \
+  -H "X-ObsiGate-Signature: sha256=$(echo -n '{"event":"file_created",...}' | openssl dgst -sha256 -hmac 'mon-secret' | cut -d' ' -f2)" \
+  -d '{"event":"file_created","timestamp":"2026-06-03T14:30:00Z","data":{"vault":"IT","path":"notes/test.md"}}'
+ +

Limitations actuelles

+
    +
  • + Timeout de 5 secondes par + requête — les webhooks sont "fire and + forget" (pas de retry) +
  • +
  • + Les modifications détectées par le watcher + filesystem (watchdog) + ne déclenchent pas de + webhooks — seules les opérations via l'API + REST sont prises en compte +
  • +
  • + file_modified n'est pas encore + dispatché (réservé pour version future) +
  • +
  • Pas de retry automatique en cas d'échec
  • +
  • + Pas de filtrage par vault — un webhook + écoute toutes les vaults +
  • +
+
+
+

💾 Sauvegardes et Audits

+ +

Backup automatique

+

+ ObsiGate crée automatiquement des sauvegardes + avant chaque modification destructive. +

+
    +
  • + Avant écriture : Sauvegarde + du contenu original dans + .obsigate-backup/ +
  • +
  • + Timestamp : Chaque backup + est horodaté
  • +
  • + Répertoire dédié : + .obsigate-backup/ dans le + répertoire de la vault +
  • +
+ +

Audit log

+

+ Toutes les opérations sensibles sont tracées + dans un journal. +

+
    +
  • + Journal : Fichier + data/audit.log au format JSON + lines +
  • +
  • + Événements tracés : + Écritures, suppressions, changements de + configuration
  • +
  • + Rotation : Rotation + automatique à 10 Mo
  • +
+
+ + +
+

🛡️ Sécurité

+ +

Authentification

+
    +
  • + JWT + Argon2id : Tokens JWT + avec mots de passe hachés Argon2id
  • +
  • + Contrôle d'accès par vault + : Chaque utilisateur voit uniquement ses + vaults +
  • +
  • + Refresh tokens : Cookies + HttpOnly avec rotation automatique +
  • +
  • + Rate limiting : 10 + tentatives / 15 min par IP + verrouillage + compte +
  • +
  • + Compte admin : Créé + automatiquement au premier démarrage
  • +
+ +

Protection

+
    +
  • + Secret redactor : Masque + JWT, clés API, tokens GitHub dans les + aperçus
  • +
  • + Path traversal : Validation + des chemins contre les attaques + ../ +
  • +
  • + Headers CSP : + Content-Security-Policy, X-Frame-Options, + XSS-Protection +
  • +
  • + Atomic writes : Écriture + via fichier temporaire + renommage atomique
  • +
  • + Non-root Docker : Conteneur + tourne avec UID 1000 +
  • +
+
+ +
+

🎨 Personnalisation

+ +

Thème clair/sombre

+

Basculez entre les thèmes :

+
    +
  • + Menu Options : Cliquez sur + "Thème" dans le menu
  • +
  • + Raccourci : + Ctrl+T +
  • +
  • + Persistance : Votre choix + est sauvegardé en localStorage
  • +
  • + Highlight.js : Les blocs de + code s'adaptent au thème
  • +
+ +

Redimensionnement de la sidebar

+

+ Sur desktop, ajustez la largeur de la sidebar : +

+
    +
  • + Handle de redimensionnement + : Bordure droite de la sidebar +
  • +
  • + Glisser-déposer : Cliquez + et glissez pour ajuster +
  • +
  • + Limites : Min 200px, Max + 500px +
  • +
  • + Persistance : La largeur + est sauvegardée
  • +
+ +

Configuration avancée

+

+ Le modal Configurations (menu Options) permet de + : +

+
    +
  • + Paramètres de recherche : + Délai debounce, résultats par page, timeout
  • +
  • + Paramètres backend : + Workers, boosts TF-IDF, expansions préfixe
  • +
  • + Filtrage de tags : Patterns + pour masquer les tags template +
  • +
  • + Diagnostics : Stats index, + mémoire, moteur de recherche
  • +
  • + Réindexation : Forcer un + rescan des vaults +
  • +
+
+ +
+

💡 Astuces et bonnes pratiques

+ +

Workflow recommandé

+
    +
  1. + Sélectionnez un contexte : + Choisissez un vault pour réduire le bruit
  2. +
  3. + Explorez l'arborescence : + Naviguez dans les dossiers +
  4. +
  5. + Utilisez les tags : Filtrez + par tags pour affiner +
  6. +
  7. + Recherchez intelligemment : + Combinez opérateurs et texte libre
  8. +
  9. + Profitez de l'historique : + Réutilisez vos recherches fréquentes
  10. +
+ +

Optimisations

+
    +
  • + Masquez la sidebar : Plus + d'espace pour le contenu +
  • +
  • + Utilisez le filtrage sidebar + : Plus rapide que la recherche globale pour + trouver un fichier +
  • +
  • + Favorisez les opérateurs : + tag: et + vault: accélèrent la recherche +
  • +
  • + Breadcrumb cliquable : + Repositionnez rapidement la sidebar +
  • +
+ +

Trucs et astuces

+
    +
  • + Navigation visuelle : Le + breadcrumb repositionne automatiquement la + sidebar +
  • +
  • + Gestion de l'espace : + Réduisez les sections Vaults/Tags selon vos + besoins
  • +
  • + Confort de lecture : + Ajustez la largeur de la sidebar +
  • +
  • + Mobile-friendly : Utilisez + le bouton hamburger sur mobile +
  • +
  • + Wikilinks : Naviguez entre + notes comme dans Obsidian +
  • +
  • + Images : Support complet + des syntaxes Obsidian +
  • +
+ +

Cas d'usage avancés

+
    +
  • + Recherche multi-critères : + tag:docker tag:linux vault:IT + nginx +
  • +
  • + Exploration par tags : + Cliquez sur un tag dans une note pour voir + toutes les notes similaires +
  • +
  • + Édition rapide : Ouvrez + l'éditeur, modifiez, sauvegardez
  • +
  • + Export : Téléchargez des + fichiers pour backup ou partage
  • +
  • + Multi-fenêtres : Ouvrez + plusieurs notes dans des onglets séparés
  • +
+
+ + +
+ + + + + + + + + + + + + +
+
+
+ Fichiers ouverts +
+ + +
+
+
+
+
+ + + +
+
+
+ Conflit hors-ligne +
+ +
+
+

+
+ + +
+
+
+
+ +
+
+ +
+ +

ObsiGate

+

Vos notes Obsidian,
simplement accessibles.

+ v2.0.0-dev +
+
+
+
+ — + Fichiers +
+
+ — + Vaults +
+
+ 285 + Tests +
+
+
+

Construit avec

+
+ 🐍 FastAPI + ⚡ vanilla JS + 🎨 CSS custom + 🐳 Docker + 🔍 TF-IDF + 📝 CodeMirror 6 + 🧜 Mermaid.js + 🧠 Argon2id + 🔄 Watchdog + 📊 WeasyPrint + 🧪 Playwright + 🤖 AI multi-provider +
+
+ +
+
+
+ +ctype html> + + + + + ObsiGate + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + +
+ +
+
+ + + + + +
+ +
+
+ +
+ +
+ + +
+
+ + + + + + +
+
+ +
+ + +
+ + All +
+ +
+
+ +
+ +
+
+
+
+ + +
+ + + + + + + + + + +
+ 📂 Toutes les vaults +
+
+ + + + +
+
+ +
+ + + + +
+ + +
+
+
+ Chargement... +
+
+
+ +
+
+ + Raccourcis & Astuces + +
+
+
+ Ctrl+Shift+Space + Palette de commandes +
+
+ Ctrl+Alt+Space + Palette de fichiers (nav. + rapide) +
+
+ Ctrl+K + Focus barre de recherche +
+
+ / + Recherche rapide (hors champ + texte) +
+
+ Ctrl+S + Sauvegarder le fichier + ouvert +
+
+ Ctrl+F + Rechercher dans le + document +
+
+ Esc + Fermer l'editeur / modale +
+
+ Ctrl+J + Completion IA inline (dans + l'editeur) +
+
+ Alt+I + Insertion rapide (editeur + Forge) +
+
+ F1 + Aide de l'editeur Forge +
+
+
+ + Survolez un document avec + Ctrl pour un + apercu rapide. Cliquez sur + Forge dans la + barre d'outils pour l'editeur + avance. +
+
+
+
+ + +
+
+
+ + Aucun bookmark +

+ Épinglez des fichiers pour les retrouver + ici. +

+
+
+ + +
+
+
+ +
+
+
+
+
+
+
+
+
+
+
+ +
+ + +
+
+
+ + Aucun document partagé +

+ Partagez un document pour le voir + apparaître ici +

+
+
+
+
+
+ + + + + + + +
+
+ + +
+
+
+ ObsiGate + + / + +
+ Saved + + + +
+
+
+
+ +
+
+ + +
+
+
+
Configurations
+
+ +
+
+
+ +
+
+ + + + +
+

+ 📋 Historique récent + Redémarrage non requis +

+
+ + + Entre 5 et 100 fichiers (sauvegarde sur + le serveur) +
+
+ + + Nombre maximum de versions backup + conservees par fichier (1-50) +
+
+ + +
+

+ Paramètres backend + Redémarrage requis +

+

+ Ces paramètres sont sauvegardés sur le + serveur. Certains nécessitent un redémarrage + ou une réindexation. +

+ +
+ + + Threads dédiés à la recherche + (1-8) +
+
+ + + Contenu indexé par fichier (10K-1M). + Réindexation requise. +
+
+ + + Multiplicateur de pertinence pour les + correspondances dans le titre +
+
+ + + Multiplicateur de pertinence pour les + correspondances dans les tags +
+
+ + + Nombre max de tokens élargis par + préfixe (10-200) +
+ +
+ + + +
+
+ + +
+

Filtrage de tags

+

+ Définissez les patterns de tags à masquer + dans la sidebar. Vous pouvez utiliser des + wildcards pour cibler les tags de template. +

+ +
+ +
+ + +
+ + +
+ + +
+

Synchronisation automatique

+

+ Surveillance des fichiers en temps réel via + watchdog. Les modifications sont détectées + automatiquement et l'index est mis à jour + sans redémarrage. +

+ +
+ + + Activer/désactiver la surveillance + automatique des fichiers +
+
+ + + Forcer le mode polling au lieu de + inotify natif (utile si le mode natif ne + fonctionne pas) +
+
+ + + Intervalle de scrutation en mode + polling (1-30 secondes) +
+
+ + + Délai avant traitement des changements + groupés (0.5-10 secondes) +
+
+ + +
+

🗂️ Fichiers cachés

+

+ Contrôlez l'affichage des fichiers/dossiers + cachés (commençant par .) par + vault. +

+

+ i️ Note : Tous les fichiers + sont toujours indexés et cherchables. Ce + paramètre contrôle uniquement leur + visibilité dans l'interface. +

+ +
+ +
+ +
+ +
+
+ + +
+

Diagnostics

+

+ Statistiques de l'index et du moteur de + recherche. +

+
+
+ Chargement... +
+
+ +
+ + +
+

🤖 Cles API Intelligence Artificielle

+

+ Configurez vos cles API. Cliquez sur + Tester pour charger les + modeles. +

+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + +
+

🎨 Thèmes

+

+ Choisissez un thème visuel. Chaque thème + offre un mode sombre et clair. +

+
+
Chargement...
+
+
+ + +
+

👤 Profil utilisateur

+

+ Préférences personnelles pour personnaliser + l'expérience ObsiGate. +

+
+
+ + + Utilisée par l'autocomplétion et le ghost text. +
+
+ + +
+ + + +
+
+ + +
+

📦 À propos

+
+
+ Chargement... +
+
+
+ + +
+

🔔 Webhooks

+

+ Notifications HTTP vers des services + externes lors des changements de fichiers. +

+
+
+ + + +
+
+ + +
+

📤 Partages publics

+

+ Liens de partage publics pour des documents + (lecture seule, sans authentification). +

+
+
+
+
+
+
+
+ + +
+
+ +
+ +
+ + + +
+ Vue Graphique +
+ + Prof. + + + + + + + +
+ +
+
+ + + Ctrl+survol +
+
+
+
+ + +
+ +
+
+ +
+ +
+
+ +
+ — +
+ + + + │ + ── Parent + ┅┅ Wikilink + ← Backlink +
+
+
+
+
+ + +
+
+
+ +
+ Guide d'utilisation ObsiGate +
+
+ +
+
+