# 🌌 ObsiViewer — Explorateur de voûte Obsidian ![Version](https://img.shields.io/badge/version-0.0.0-blue) ![Status](https://img.shields.io/badge/status-development-orange) ![Angular](https://img.shields.io/badge/Angular-20.3-red) **ObsiViewer** est une application web moderne permettant d'explorer et de visualiser une voûte Obsidian en lecture seule depuis n'importe quel navigateur. Elle offre une expérience riche, fluide et fidèle à Obsidian, idéale pour partager vos connaissances ou accéder à vos notes en déplacement. --- ## ✨ Fonctionnalités Clés ### 🗂️ Navigation & Organisation * **Explorateur de fichiers** : Arborescence complète, dossiers pliables. * **Recherche Avancée** : Compatible Obsidian (`path:`, `tag:`, `file:`, etc.) avec backend Meilisearch ultra-rapide. * **Favoris (Bookmarks)** : Gestion complète et synchronisée avec `.obsidian/bookmarks.json`. * **Tags & Calendrier** : Filtrage par tags et navigation temporelle. ### 📝 Rendu Markdown Riche * **Support complet** : Wikilinks, Callouts, Task lists, Footnotes, Math (KaTeX). * **Média** : Images, diagrammes Mermaid, et dessins Excalidraw. * **Syntax Highlighting** : Pour plus de 100 langages. ### 🕸️ Graphe Interactif * **Visualisation** : Graphe de connaissances fluide (d3-force). * **Contrôles** : Filtres, groupes de couleurs, physique ajustable. * **Persistance** : Sauvegarde des réglages dans `.obsidian/graph.json`. --- ## 🚀 Démarrage Rapide ### Option 1 : Docker (Recommandé) Utilisez Docker Compose pour lancer la stack complète (Frontend + Backend + Search). ```bash # Dans le dossier docker-compose/ docker compose up -d ``` Accédez à l'application sur `http://localhost:3000`. ### Option 2 : Développement Local **Prérequis** : Node.js 20+, npm. 1. **Installation** ```bash npm install ``` 2. **Configuration** Copiez `.env.example` vers `.env` et ajustez le chemin de votre vault : ```bash cp .env.example .env # Éditez .env : VAULT_PATH=/chemin/vers/votre/vault ``` 3. **Lancement** * **Frontend** (Mode démo) : `npm run dev` * **Backend API** : `node server/index.mjs` * **Full Stack (avec Meilisearch)** : ```bash npm run meili:up # Lance Meilisearch npm run meili:reindex # Indexe le vault node server/index.mjs # Lance l'API npm run dev # Lance le Frontend (autre terminal) ``` --- ## ⚙️ Configuration Les principales variables d'environnement (fichier `.env`) : | Variable | Description | Défaut | | :--- | :--- | :--- | | `VAULT_PATH` | Chemin absolu ou relatif vers le dossier du vault | `./vault` | | `PORT` | Port du serveur API Express | `4000` | | `MEILI_HOST` | URL de l'instance Meilisearch | `http://127.0.0.1:7700` | | `MEILI_MASTER_KEY` | Clé API Meilisearch | `devMeiliKey123` | --- ## 🏗️ Architecture Technique * **Frontend** : Angular 20 (Signals, Standalone), TailwindCSS, D3.js. * **Backend** : Node.js/Express pour l'API et le file system access. * **Search** : Meilisearch pour l'indexation et la recherche performante. * **Live Reload** : Server-Sent Events (SSE) et Chokidar pour la détection de changements. Pour plus de détails, consultez le dossier [`docs/`](./docs/). --- ## 🗺️ Roadmap Le projet est en développement actif. Consultez [ROADMAP.md](./ROADMAP.md) pour voir les fonctionnalités planifiées et l'avancement. --- ## 🤝 Contribution Les contributions sont les bienvenues ! 1. Forkez le projet. 2. Créez une branche (`git checkout -b feature/AmazingFeature`). 3. Commitez vos changements (`git commit -m 'Add some AmazingFeature'`). 4. Poussez la branche (`git push origin feature/AmazingFeature`). 5. Ouvrez une Pull Request. --- ## 📄 Licence Usage libre pour développement et consultation.