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 :

+ +

Fonctionnalités de la sidebar :

+ + +

Zone de contenu

+

La zone centrale affiche :

+ +
+ +
+

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

+ + +

Filtrage de la sidebar

+

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

+ + +

Breadcrumb et repositionnement

+

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

+ + +

Sélection de vault

+

+ Changez de contexte pour filtrer l'affichage : +

+ +
+ +
+

📑 Gestion des onglets

+

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

+ +

Ouverture d'onglets

+ + +

Navigation entre onglets

+ + +

Fonctionnalités

+ +
+ +
+

🔍 Recherche

+ +

Recherche simple

+

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

+ + +

Opérateurs avancés

+

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

+ +

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

+ + +

Chips de filtres actifs

+

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

+ + +

Facettes et tri

+

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

+ +
+ +
+

🏷️ Tags

+ +

Tag cloud

+

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

+ + +

Tags inline vs frontmatter

+

ObsiGate supporte deux types de tags :

+ + +

Filtrage de tags template

+

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

+ +
+ +
+

📄 Fichiers

+ +

Visualisation

+

Les fichiers markdown sont rendus avec :

+ + +

Actions sur fichiers

+

Boutons disponibles au-dessus du contenu :

+ + +

Édition avec CodeMirror 6

+

L'éditeur intégré offre :

+ + +

Types de fichiers supportés

+

ObsiGate indexe et affiche :

+ +
+ + +
+

✏️ Édition avancée

+ +

Éditeur CodeMirror 6

+

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

+ +
+ + +
+

🗺️ Vue Graphe

+

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

+ +

Ouverture

+ + +

Interaction

+ + +

Affichage

+ + +

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

+ + +

Indicateurs visuels

+ + +

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

+ + +

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

+ + +

Navigation

+ +
+ +
+

⌨️ Raccourcis clavier

+ +

Navigation

+ + +

Recherche et autocomplétion

+ + +

Interface

+ + +

Onglets

+ + +

Éditeur CodeMirror

+ +
+ + + + +
+

🔗 Partage et Webhooks

+ +

Publication publique

+

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

+ +
+ + +
+

🪝 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

+ + +

É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

+ +
+
+

💾 Sauvegardes et Audits

+ +

Backup automatique

+

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

+ + +

Audit log

+

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

+ +
+ + +
+

🛡️ Sécurité

+ +

Authentification

+ + +

Protection

+ +
+ +
+

🎨 Personnalisation

+ +

Thème clair/sombre

+

Basculez entre les thèmes :

+ + +

Redimensionnement de la sidebar

+

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

+ + +

Configuration avancée

+

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

+ +
+ +
+

💡 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

+ + +

Trucs et astuces

+ + +

Cas d'usage avancé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 +
+
+ +
+
+