Files
LoreMind/INSTALL.md

8.2 KiB

Installation de LoreMindMJ

Guide pas-a-pas pour deployer LoreMindMJ chez toi. Compte 5 a 10 minutes selon ta connexion.

1. Prerequis

  • Docker Desktop (Windows / Mac) ou Docker Engine + Compose v2 (Linux). Verifie avec :

    docker --version
    docker compose version
    

    Compose v2 est requis (la commande est docker compose, pas docker-compose).

  • Un fournisseur de LLM, au choix :

    • Ollama installe sur ta machine hote (gratuit, local, necessite ~6 Go de RAM libre pour les modeles recommandes).
    • Une cle API 1min.ai (cloud, facture a l'usage, aucune installation supplementaire requise).
  • Environ 2 Go d'espace disque pour les images Docker (base, Java, Python, nginx, MinIO) + la taille de tes modeles Ollama si tu choisis le local.

2. Recuperer les fichiers

Telecharge les deux fichiers suivants depuis la derniere release dans un dossier dedie (par exemple ~/loremind/) :

  • docker-compose.yml
  • .env.example

Tu n'as pas besoin du code source — les images sont pre-construites et publiees sur le registry Gitea git.igmlcreation.fr (pas Docker Hub). Le premier docker compose pull les telechargera automatiquement.

3. Configurer .env

Renomme .env.example en .env et ouvre-le dans un editeur texte. Trois variables sont obligatoires — sans elles, docker compose up refusera de demarrer (c'est volontaire pour eviter un deploiement non-securise par defaut) :

POSTGRES_PASSWORD

Mot de passe de la base de donnees. Choisis-en un fort, tu n'auras pas besoin de le retenir (seuls les conteneurs l'utilisent).

ADMIN_PASSWORD

Protege l'ecran Parametres de l'application via HTTP Basic. Tu le taperas dans une popup du navigateur quand tu voudras changer de modele LLM ou de cle API. Le nom d'utilisateur par defaut est admin (modifiable via ADMIN_USERNAME).

BRAIN_INTERNAL_SECRET

Secret partage entre le service Java (core) et le service Python (brain) qui empeche toute requete externe d'atteindre directement le Brain. Genere une valeur aleatoire de 64 caracteres hex :

openssl rand -hex 32

Sous Windows sans openssl : utilise un generateur en ligne type "random hex string 64 chars" ou PowerShell :

-join ((48..57) + (97..102) | Get-Random -Count 64 | % {[char]$_})

Variables optionnelles utiles

  • WEB_PORT (defaut 8081) — port d'ecoute de l'UI.
  • ADMIN_USERNAME (defaut admin) — nom d'utilisateur de la popup Parametres.
  • LLM_PROVIDER (defaut ollama) — choix du provider (voir section 5).

Les autres variables (MINIO_USER/PASSWORD, POSTGRES_DB/USER) ont des valeurs par defaut raisonnables pour un deploiement personnel — tu peux les laisser telles quelles.

4. Lancer la stack

Depuis le dossier contenant docker-compose.yml et .env :

docker compose up -d

Le premier demarrage telecharge les images (~1 a 2 Go au total) et initialise la base. Compte 2 a 5 minutes selon ta connexion. Tu peux suivre la progression :

docker compose logs -f

(Ctrl+C pour quitter l'affichage, les services continuent de tourner en arriere-plan.)

Une fois les services marques healthy, ouvre http://localhost:8081 dans ton navigateur. Bon jeu !

Verifier que tout tourne

docker compose ps

Tu devrais voir 5 conteneurs en etat Up / healthy : loremind-postgres, loremind-minio, loremind-core, loremind-brain, loremind-web. Le conteneur loremind-minio-init s'arrete tout seul apres avoir cree le bucket d'images — c'est normal.

5. LLM : Ollama ou 1min.ai ?

Ollama (local, gratuit)

Installe Ollama sur ta machine hote (pas dans Docker), puis telecharge un modele :

ollama pull gemma4:26b

Dans .env :

LLM_PROVIDER=ollama
LLM_MODEL=gemma4:26b
OLLAMA_BASE_URL=http://host.docker.internal:11434

host.docker.internal permet au conteneur brain d'atteindre Ollama qui tourne sur ton hote. Ca marche nativement sur Docker Desktop (Mac / Windows) ; sur Linux, le docker-compose.yml ajoute un extra_hosts qui fait la meme chose.

1min.ai (cloud, paye)

Dans .env :

LLM_PROVIDER=onemin
ONEMIN_API_KEY=sk-...
ONEMIN_MODEL=gpt-4o-mini

Changer a chaud

Tu peux aussi changer le provider, le modele et la cle API a chaud depuis l'ecran Parametres de l'appli — tes modifications sont persistees dans un volume Docker et survivent aux redemarrages. Les variables d'env du .env servent uniquement de valeurs initiales au premier demarrage.

6. Mise a jour

docker compose pull
docker compose up -d

Les donnees (base Postgres, images MinIO, settings Brain) sont dans des volumes Docker et survivent aux mises a jour.

7. Sauvegarde

Les donnees sont dans trois volumes Docker :

  • loremindmj_postgres-data — tout le contenu applicatif (lores, campagnes, pages, templates, branches, etc.)
  • loremindmj_minio-data — les images uploadees
  • loremindmj_brain-data — les settings IA (provider courant, cle API 1min.ai)

Dump SQL de la base

docker compose exec postgres pg_dump -U loremind loremind > backup.sql

Sauvegarde complete des volumes

Arrete d'abord la stack pour garantir la coherence :

docker compose stop
docker run --rm -v loremindmj_postgres-data:/data -v $(pwd):/backup alpine tar czf /backup/postgres-data.tar.gz -C /data .
docker run --rm -v loremindmj_minio-data:/data -v $(pwd):/backup alpine tar czf /backup/minio-data.tar.gz -C /data .
docker compose start

(Sous Windows PowerShell, remplace $(pwd) par ${PWD}.)

8. Problemes frequents

  • Port 8081 deja pris — change WEB_PORT=8082 (ou autre libre) dans .env, puis docker compose up -d.

  • docker compose up echoue avec "set POSTGRES_PASSWORD in .env" / "set ADMIN_PASSWORD in .env" / "set BRAIN_INTERNAL_SECRET in .env" — tu as oublie une des 3 variables obligatoires de l'etape 3.

  • Popup "Ce site vous demande de vous connecter" sur l'ecran Parametres — c'est normal. Utilise admin (ou ce que tu as mis dans ADMIN_USERNAME) et ton ADMIN_PASSWORD.

  • "502 Bad Gateway" ou erreur IA dans l'UI quand tu cliques sur Assistant IA — le Brain n'arrive pas a joindre le provider LLM. Verifie :

    • Ollama : ollama serve tourne-t-il ? Le modele est-il telecharge (ollama list) ? Le nom dans LLM_MODEL correspond-il exactement a un modele liste ?
    • 1min.ai : la cle API est-elle valide ? Le modele existe-t-il ?
    • Regarde les logs du Brain : docker compose logs brain.
  • Un service ne demarre pas / reste unhealthy — regarde ses logs :

    docker compose logs <service>
    

    Services disponibles : postgres, minio, core, brain, web.

  • Redemarrer un seul service (ex : apres un changement de .env) :

    docker compose up -d <service>
    

    Ou tout redemarrer : docker compose restart.

  • Tout casser et repartir de zero (PERTE DE DONNEES) :

    docker compose down -v
    

    Le -v supprime les volumes — tes lores, campagnes, images et settings sont perdus definitivement.

  • "No such image" ou "pull access denied" au premier lancement — le registry Gitea requiert peut-etre une authentification selon la visibilite des images. Verifie avec l'editeur du projet.

9. Ou sont les donnees ?

  • Application : http://localhost:8081
  • Base Postgres : uniquement accessible via le reseau Docker interne (pas expose vers l'hote).
  • MinIO : uniquement accessible via le reseau Docker interne (les images transitent par le reverse-proxy Java sur /api/images/{id}/content). Le binding MinIO sur 127.0.0.1:9000/9001 du docker-compose.override.yml n'est utilise qu'en developpement.
  • Brain Python : uniquement accessible via le reseau Docker interne. Toute requete doit porter l'entete X-Internal-Secret ; elle est ajoutee automatiquement par le Core Java et n'est pas exposee au navigateur.

10. Desinstaller completement

docker compose down -v
docker image rm git.igmlcreation.fr/ietm64/core git.igmlcreation.fr/ietm64/brain git.igmlcreation.fr/ietm64/web

Puis supprime le dossier contenant docker-compose.yml et .env.