4.2 KiB
4.2 KiB
ObsiGate
Visionneur multi-vault Obsidian ultra-léger — naviguez, recherchez et lisez vos notes Obsidian depuis n'importe quel appareil via une interface web moderne.
┌─────────────────────────────────────────────────────────┐
│ [🔍 Recherche...] [☀/🌙 Thème] ObsiGate │
├──────────────┬──────────────────────────────────────────┤
│ SIDEBAR │ CONTENT AREA │
│ ▼ Recettes │ 📄 Titre du fichier │
│ 📁 Soupes │ Tags: #recette #rapide │
│ 📄 Pizza │ [Contenu Markdown rendu] │
│ ▼ IT │ │
│ 📁 Docker │ │
│ Tags Cloud │ │
└──────────────┴──────────────────────────────────────────┘
Fonctionnalités
- Multi-vault : visualisez plusieurs vaults Obsidian simultanément
- Navigation arborescente : parcourez vos dossiers et fichiers dans la sidebar
- Recherche fulltext : recherche instantanée dans le contenu et les titres
- Tag cloud : filtrage par tags extraits des frontmatters YAML
- Wikilinks : les
[[liens internes]]Obsidian sont cliquables - Syntax highlight : coloration syntaxique des blocs de code
- Thème clair/sombre : toggle persisté en localStorage
- Docker multi-platform : linux/amd64, linux/arm64, linux/arm/v7, linux/386
- Lecture seule : aucune écriture sur vos vaults
Prérequis
- Docker >= 20.10
- docker-compose >= 2.0
Déploiement rapide
# 1. Build l'image
docker build -t obsigate:latest .
# 2. Adaptez les volumes dans docker-compose.yml
# 3. Lancez
docker-compose up -d
L'interface est accessible sur http://localhost:8080
Variables d'environnement
Les vaults sont configurées par paires de variables VAULT_N_NAME / VAULT_N_PATH (N = 1, 2, 3…) :
| Variable | Description | Exemple |
|---|---|---|
VAULT_1_NAME |
Nom affiché de la vault | Recettes |
VAULT_1_PATH |
Chemin dans le conteneur | /vaults/Obsidian-RECETTES |
VAULT_2_NAME |
Nom affiché de la vault | IT |
VAULT_2_PATH |
Chemin dans le conteneur | /vaults/Obsidian_IT |
Ajoutez autant de paires VAULT_N_* que nécessaire.
Ajouter une nouvelle vault
-
Ajoutez un volume dans
docker-compose.yml:- /chemin/local/vers/vault:/vaults/MaVault:ro -
Ajoutez les variables d'environnement :
- VAULT_6_NAME=MaVault - VAULT_6_PATH=/vaults/MaVault -
Redémarrez :
docker-compose up -d
Build multi-platform
chmod +x build.sh
./build.sh
Cela utilise docker buildx pour compiler l'image pour :
linux/amd64(PC, serveurs)linux/arm64(Raspberry Pi 4, Apple Silicon)linux/arm/v7(Raspberry Pi 3)linux/386(Intel Atom i686)
Note
:
--loadne fonctionne qu'en single-platform. Pour du multi-platform, utilisez--pushvers un registry.
Stack technique
- Backend : Python 3.11 + FastAPI + Uvicorn
- Frontend : Vanilla JS + HTML + CSS (zéro framework, zéro build)
- Rendu Markdown : mistune 3.x
- Image Docker : python:3.11-alpine (~150MB)
- Pas de base de données : index en mémoire uniquement
API
| Endpoint | Description |
|---|---|
GET /api/vaults |
Liste des vaults configurées |
GET /api/browse/{vault}?path= |
Navigation dans les dossiers |
GET /api/file/{vault}?path= |
Contenu rendu d'un fichier .md |
GET /api/search?q=&vault=&tag= |
Recherche fulltext |
GET /api/tags?vault= |
Tags uniques avec compteurs |
GET /api/index/reload |
Force un re-scan des vaults |
Projet : ObsiGate | Auteur : Bruno Beloeil | Licence : MIT