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 versionCompose v2 est requis (la commande est
docker compose, pasdocker-compose). -
Un fournisseur de LLM, au choix :
-
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(defaut8081) — port d'ecoute de l'UI.ADMIN_USERNAME(defautadmin) — nom d'utilisateur de la popup Parametres.LLM_PROVIDER(defautollama) — 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 uploadeesloremindmj_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, puisdocker compose up -d. -
docker compose upechoue 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 dansADMIN_USERNAME) et tonADMIN_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 servetourne-t-il ? Le modele est-il telecharge (ollama list) ? Le nom dansLLM_MODELcorrespond-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.
- Ollama :
-
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 -vLe
-vsupprime 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 sur127.0.0.1:9000/9001dudocker-compose.override.ymln'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.