feat: add Meilisearch backend integration with Docker Compose setup and Excalidraw support

This commit is contained in:
2025-10-14 10:41:15 -04:00
parent b359e8ab8e
commit 32a9998b40
71 changed files with 11544 additions and 435 deletions
+2
View File
@@ -5,3 +5,5 @@ DIR_OBSIVIEWER_VAULT=/NFS/OBSIDIAN_DOC/Obsidian_MAIN
PORT=4000
NODE_ENV=production
TZ=America/Montreal
MEILI_MASTER_KEY=devMeiliKey123
MEILI_ENV=development
+54 -11
View File
@@ -1,6 +1,6 @@
# ObsiViewer - Docker Compose
Cette configuration Docker Compose permet de déployer ObsiViewer dans un conteneur isolé.
Cette configuration Docker Compose permet de déployer ObsiViewer avec Meilisearch dans des conteneurs isolés.
## Prérequis
@@ -10,12 +10,33 @@ Cette configuration Docker Compose permet de déployer ObsiViewer dans un conten
## Configuration
1. **Variables d'environnement** :
- Copiez `docker-compose/.env.example` vers `docker-compose/.env`
- Ajustez les valeurs selon vos besoins :
- `NGINX_HOSTNAME` : nom d'hôte du conteneur
- `TZ` : fuseau horaire
- `DIR_OBSIVIEWER` : répertoire local pour les données (optionnel)
### Variables d'environnement
Le fichier `docker-compose/.env` contient toutes les variables nécessaires:
```env
# Configuration réseau
NGINX_HOSTNAME=votre-hostname
NGINX_SERVER_IP=172.26.11.25
# Chemins des volumes
DIR_OBSIVIEWER=/DOCKER_CONFIG/obsiviewer
DIR_OBSIVIEWER_VAULT=/chemin/vers/votre/vault
# Configuration serveur
PORT=4000
NODE_ENV=production
TZ=America/Montreal
# Configuration Meilisearch
MEILI_MASTER_KEY=devMeiliKey123
MEILI_ENV=development
```
**Variables importantes:**
- `DIR_OBSIVIEWER_VAULT`: Chemin ABSOLU vers votre vault Obsidian sur l'hôte
- `MEILI_MASTER_KEY`: Clé d'authentification Meilisearch (changez en production!)
- `PORT`: Port d'écoute du serveur backend
2. **Volumes** :
- `/app/vault` : répertoire de la voûte Obsidian (monté depuis l'hôte)
@@ -24,16 +45,36 @@ Cette configuration Docker Compose permet de déployer ObsiViewer dans un conten
## Utilisation
### Démarrage
### Démarrage complet
```bash
# 1. Configurer les variables
cd docker-compose
cp .env.example .env
# Éditer .env et définir DIR_OBSIVIEWER_VAULT
# 2. Lancer tous les services (app + Meilisearch)
docker compose up -d
# 3. Indexer le vault dans Meilisearch
# Depuis la racine du projet:
cd ..
npm run meili:reindex
```
### Démarrage Meilisearch seul
```bash
# Depuis la racine du projet
npm run meili:up # Lance Meilisearch
npm run meili:reindex # Indexe le vault
npm run meili:down # Arrête Meilisearch
```
### Arrêt
```bash
cd docker-compose
docker compose down
```
@@ -43,11 +84,13 @@ docker compose down
docker compose up -d --build
```
## Accès à l'application
## Accès aux services
- **URL** : http://localhost:8080 (ou http://votre-hostname:8080)
- **Application** : http://localhost:8080 (ou http://votre-hostname:8080)
- **API Health** : http://localhost:8080/api/health
- **Voûte Obsidian** : montée depuis `./vault` (ou le répertoire spécifié dans DIR_OBSIVIEWER)
- **Meilisearch** : http://localhost:7700
- **Meilisearch Health** : http://localhost:7700/health
- **Voûte Obsidian** : montée depuis `DIR_OBSIVIEWER_VAULT`
## Structure des volumes
+24
View File
@@ -9,6 +9,8 @@ services:
- PORT=4000
- NODE_ENV=production
- TZ=${TZ:-America/Montreal}
- MEILI_HOST=http://meilisearch:7700
- MEILI_API_KEY=${MEILI_MASTER_KEY}
volumes:
# Montage du répertoire de la voûte Obsidian (optionnel)
- ${DIR_OBSIVIEWER_VAULT:-./vault}:/app/vault
@@ -23,3 +25,25 @@ services:
timeout: 5s
retries: 3
start_period: 10s
depends_on:
- meilisearch
meilisearch:
image: getmeili/meilisearch:v1.11
container_name: obsiviewer-meilisearch
environment:
MEILI_MASTER_KEY: ${MEILI_MASTER_KEY}
MEILI_ENV: ${MEILI_ENV:-development}
volumes:
- meili_data:/meili_data
ports:
- "7700:7700"
restart: unless-stopped
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:7700/health"]
interval: 10s
timeout: 5s
retries: 5
volumes:
meili_data: