diff --git a/frontend/index.html b/frontend/index.html index ad6ea53..96f3a2d 100644 --- a/frontend/index.html +++ b/frontend/index.html @@ -1,1383 +1,3842 @@ - + - - - - ObsiGate + + + + ObsiGate - - - - - - - + + + + + + + - - + + - - - + + + - - - + + + - - - - - - + + + + + + - - - - -
- - - - - -
- - -
-
- - - - - -
- -
-
- -
- -
- - - - - - - 0/0 - - - -
-
- - - - - - -
-
- -
-
- - All -
- -
-
- -
- -
-
-
-
- - -
- - - - - - - - - - - -
- - - - -
-
- -
- - - - -
- - -
-
-
Chargement...
-
-
-
- - -
-
-
- - Aucun bookmark -

Épinglez des fichiers pour les retrouver ici.

-
-
- - -
-
-
- -
-
-
-
-
-
-
- -
- - -
-
-
- - Aucun document partagé -

Partagez un document pour le voir apparaître ici

-
-
-
-
-
- - - - - - - -
-
- - -
-
-
-
Édition
-
- - - -
-
-
-
-
-
-
- - -
-
-
-
Configurations
-
- -
-
-
-
- - -
-

Paramètres de recherche

-

Ces paramètres s'appliquent immédiatement côté client.

- -
- - - Délai avant exécution de la recherche (100-2000) -
-
- - - Nombre de résultats affichés par page (10-200) -
-
- - - Nombre minimum de caractères avant recherche (1-5) -
-
- - - Annuler la recherche après ce délai (5000-120000) -
-
- - -
-

📋 Historique récent Redémarrage non requis

-
- - - Entre 5 et 100 fichiers (sauvegardé sur le serveur) -
-
- - -
-

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...
-
- -
- - -
-

📦 À 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
-
- -
-
-
- -
-
-
-
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 :

-
    -
  • Bouton menu hamburger (mobile) : Affiche/masque la sidebar
  • -
  • Bouton toggle sidebar (desktop) : Masque la sidebar pour plus d'espace
  • -
  • Logo ObsiGate : Retour à l'accueil
  • -
  • Barre de recherche : Recherche globale avec autocomplétion
  • -
  • Indicateur de vault : Affiche le contexte actif (All, vault1, etc.)
  • -
  • Menu Options : Accès aux paramètres, thème, aide
  • -
- -

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.

-
- -
-

🎨 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
  • -
-
- - -
-

⌨️ 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é)
  • -
-
- -
-

🤖 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

- - - - - -
ProviderVariable .envModèle par défaut
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

-
- - -
-

🔗 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énementDéclencheurDonnées
file_createdCréation via l'API ou la palettevault, path
file_deletedSuppression via l'API ou l'éditeurvault, path
file_renamedRenommage via l'APIvault, old_path, new_path
directory_createdCréation de dossier via l'APIvault, path
directory_deletedSuppression de dossier via l'APIvault, path
directory_renamedRenommage de dossier via l'APIvault, 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 :

-
{
+        
+        
+
+
+ +
+ Guide d'utilisation ObsiGate +
+
+ +
+
+
+ +
+
+
+
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 : +

+
    +
  • + Bouton menu hamburger + (mobile) : Affiche/masque la sidebar +
  • +
  • + Bouton toggle sidebar + (desktop) : Masque la sidebar pour plus + d'espace +
  • +
  • + Logo ObsiGate : Retour à + l'accueil +
  • +
  • + Barre de recherche : + Recherche globale avec autocomplétion +
  • +
  • + Indicateur de vault : + Affiche le contexte actif (All, vault1, + etc.) +
  • +
  • + Menu Options : Accès aux + paramètres, thème, aide +
  • +
+ +

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. +

+
+ +
+

🎨 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 +
  • +
+
+ + +
+

⌨️ 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é) +
  • +
+
+ +
+

🤖 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

+ + + + + + + + + + + + + + + + + + + + + +
ProviderVariable .envModèle par défaut
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 +

+
+ + +
+

🔗 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": {
@@ -1386,38 +3845,109 @@
   }
 }
-

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.

+

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.

+

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

+

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)
+

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. -
+

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
+                            

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"
 
@@ -1430,179 +3960,430 @@ curl -H "Content-Type: application/json" -d "{
   \"content\": \"📝 **$event** — $path\"
 }" "$WEBHOOK_URL"
-

Tester avec curl

-
# Simuler ce qu'ObsiGate envoie (pour tester votre endpoint)
+                            

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

+

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
  • -
+

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
  • -
-
+

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é

+ +
+

🛡️ 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
  • -
+

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
  • -
-
+

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 +
  • +
+
-
-

💡 Astuces et bonnes pratiques

+
+

💡 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. -
+

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
  • -
+

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
  • -
+

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
  • -
-
+

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 - -
-
-
-
- - + +
+
+
+ Fichiers ouverts + +
+
+
+
+ +