Demo publique LoreMind
Instance de demo ephemere hebergee sur loremind-demo.igmlcreation.fr.
Principe
Chaque visiteur recoit un trio isole postgres + core + brain spawne a la volee
par un orchestrateur Go, detruit au bout de 20 min. Donnees en memoire (tmpfs).
Max 10 sessions concurrentes.
Le mode demo est active via DEMO_MODE=true cote core :
- Settings et Export VTT masques cote frontend
- Endpoints
GET/PUT /api/settingsverrouilles (403) cote serveur
Architecture
Internet
|
v
Traefik (service permanent sur le serveur, reseau "traefik")
|
v
Orchestrateur (Go, reseau "traefik" + "loremind-demo-sessions")
|
v (via Docker API, cree un trio par visiteur)
+------------------- reseau "loremind-demo-sessions" ---------------------+
| demo-<id>-postgres demo-<id>-core demo-<id>-brain |
+-------------------------------------------------------------------------+
L'orchestrateur fait aussi reverse proxy : il sert l'Angular statique et
transfere les /api/* vers le core de la session (via cookie).
Deploiement
Prerequis sur le serveur :
- Reseau Traefik existant (
docker network ls | grep traefik) - Images
coreetbrainpushees au registre (TAG=latestpar defaut)
Procedure :
# Sur le serveur
git clone <repo>
cd LoreMind/demo
cp .env.example .env
# Editer .env si besoin
docker compose -f docker-compose.infra.yml up -d --build
Le premier --build compile l'orchestrateur + build l'Angular (5-10 min).
Les builds suivants sont incrementaux.
Mise a jour
# Pull des nouvelles images core/brain
docker compose -f docker-compose.infra.yml pull
# Rebuild orchestrateur si son code a change
docker compose -f docker-compose.infra.yml up -d --build
Les sessions en cours sont tuees au redemarrage de l'orchestrateur.
Observations
docker logs loremind-demo-orchestrator -fdocker ps --filter "name=demo-"(conteneurs de sessions actifs)
Pas d'endpoint de monitoring HTTP expose : volontaire pour eviter de leaker des informations sur les sessions actives a des scrapers externes.
Securite — points mis en place
dockerproxy(tecnativa/docker-socket-proxy) expose l'API Docker en lecture seule sauf pour Containers/Images/Networks ; pas d'EXEC, VOLUMES, BUILD.- Rate limiting : 1 creation de session par IP / fenetre de 60s.
- Cookie session : HttpOnly + Secure + SameSite=Lax, 128 bits d'entropie.
- Conteneurs de session :
no-new-privileges,PidsLimit=200, limites RAM/CPU. - Timeouts HTTP anti-slowloris sur l'orchestrateur.
- Body max 10 Mo sur les proxys
/api/*. - Reseau
socket-proxyinterne (pas d'acces au host reseau).
Securite — a surveiller / ameliorer plus tard
- Fail2ban cote host avec regle sur les 429/503 de Traefik.
- Rotation des logs Docker (
log-opts: max-size: 10mdans/etc/docker/daemon.json). - CapDrop sur les conteneurs de session (non configure : risque de casser core/brain sans audit prealable).
- Ne JAMAIS mettre de vraie cle API LLM dans l'environnement des brain de demo.
Desactiver la demo
docker compose -f docker-compose.infra.yml down
# Nettoyer les conteneurs de session residuels
docker ps -q --filter "name=demo-" | xargs -r docker rm -f