9.4 KiB
Installation de LoreMindMJ
Ce document decrit la procedure d'installation de LoreMindMJ. Temps estime : 5 a 10 minutes selon la qualite de la connexion reseau.
1. Prerequis
-
Docker Desktop (Windows / Mac) ou Docker Engine + Compose v2 (Linux). Verification :
docker --version docker compose versionCompose v2 est requis : la commande est
docker compose, nondocker-compose. -
Un fournisseur LLM, au choix :
-
Environ 2 Go d'espace disque pour les images Docker, auxquels s'ajoute la taille des modeles Ollama si l'option locale est retenue.
2. Recuperation des fichiers
Telecharger les deux fichiers suivants depuis la
derniere release et
les placer dans un dossier dedie (par exemple ~/loremind/ ou
C:\Programs\loremind\) :
docker-compose.yml.env.example
Le code source n'est pas necessaire : les images sont pre-construites et
publiees sur le registry Gitea git.igmlcreation.fr (non Docker Hub). Le
premier docker compose pull les telechargera automatiquement.
3. Configuration du fichier .env
Renommer .env.example en .env et l'ouvrir dans un editeur de texte. Trois
variables sont obligatoires ; sans elles, docker compose up refusera de
demarrer. Ce comportement est volontaire afin d'eviter tout deploiement
non-securise par defaut.
POSTGRES_PASSWORD
Mot de passe de la base de donnees PostgreSQL. Choisir une valeur robuste.
Seuls les conteneurs utilisent cette valeur : il n'est pas necessaire de la
memoriser au-dela du fichier .env.
ADMIN_PASSWORD
Protege l'ecran Parametres de l'application via HTTP Basic. Cette valeur
sera demandee par le navigateur lors de toute modification de la configuration
(changement de modele LLM, saisie de cle API, etc.). Le nom d'utilisateur par
defaut est admin, modifiable via la variable ADMIN_USERNAME.
BRAIN_INTERNAL_SECRET
Secret partage entre le service Java (core) et le service Python (brain).
Empeche toute requete externe d'atteindre directement le service Brain.
Generer une valeur aleatoire de 64 caracteres hexadecimaux :
openssl rand -hex 32
Sous Windows sans openssl, utiliser PowerShell :
-join ((48..57) + (97..102) | Get-Random -Count 64 | % {[char]$_})
Variables optionnelles
WEB_PORT(defaut8081) : port d'ecoute de l'interface web.ADMIN_USERNAME(defautadmin) : identifiant de la popup Parametres.LLM_PROVIDER(defautollama) : choix du fournisseur LLM (voir section 5).
Les autres variables (MINIO_USER/MINIO_PASSWORD, POSTGRES_DB,
POSTGRES_USER) disposent de valeurs par defaut adaptees a un deploiement
personnel et peuvent etre conservees en l'etat.
4. Lancement de la stack
Depuis le dossier contenant docker-compose.yml et .env :
docker compose up -d
Le premier demarrage telecharge les images (environ 1 a 2 Go au total) et initialise la base. Compter 2 a 5 minutes selon la qualite de la connexion. La progression peut etre suivie via :
docker compose logs -f
(Ctrl+C pour quitter l'affichage ; les services continuent de fonctionner
en arriere-plan.)
Une fois les services en etat healthy, ouvrir http://localhost:8081
dans un navigateur.
Verification du fonctionnement
docker compose ps
Cinq conteneurs doivent apparaitre en etat Up ou healthy :
loremind-postgres, loremind-minio, loremind-core, loremind-brain,
loremind-web. Le conteneur loremind-minio-init s'arrete automatiquement
apres creation du bucket d'images : ce comportement est normal.
5. Configuration du fournisseur LLM
Ollama (local, gratuit)
Installer Ollama sur la machine hote (pas dans Docker), puis telecharger un modele :
ollama pull gemma4:26b
Dans .env :
LLM_PROVIDER=ollama
LLM_MODEL=gemma4:26b
OLLAMA_BASE_URL=http://host.docker.internal:11434
L'adresse host.docker.internal permet au conteneur brain d'atteindre
Ollama sur la machine hote. Cette resolution est native sous Docker Desktop
(Mac / Windows). Sous Linux, le fichier docker-compose.yml declare un
extra_hosts equivalent.
1min.ai (cloud, paye)
Dans .env :
LLM_PROVIDER=onemin
ONEMIN_API_KEY=sk-...
ONEMIN_MODEL=gpt-4o-mini
Modification a chaud
Le fournisseur, le modele et la cle API peuvent etre modifies a chaud depuis
l'ecran Parametres de l'application. Les modifications sont persistees
dans un volume Docker et survivent aux redemarrages. Les variables d'env du
fichier .env sont uniquement utilisees comme valeurs initiales au premier
demarrage.
6. Mise a jour
docker compose pull
docker compose up -d
Les donnees (base PostgreSQL, images MinIO, configuration Brain) sont stockees dans des volumes Docker et survivent aux mises a jour.
7. Sauvegarde
Les donnees sont reparties dans trois volumes Docker :
loremindmj_postgres-data— ensemble des donnees applicatives (lores, campagnes, pages, templates, branches narratives, etc.).loremindmj_minio-data— images uploadees.loremindmj_brain-data— parametres IA (fournisseur courant, cle API 1min.ai).
Export SQL de la base
docker compose exec postgres pg_dump -U loremind loremind > backup.sql
Sauvegarde complete des volumes
Arreter la stack au prealable afin de garantir la coherence des donnees :
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, remplacer $(pwd) par ${PWD}.
8. Resolution des problemes
Port 8081 deja utilise
Modifier WEB_PORT=8082 (ou toute autre valeur libre) dans .env, puis
relancer :
docker compose up -d
Erreur "set POSTGRES_PASSWORD in .env" (ou variable equivalente) au lancement
Une des trois variables obligatoires de l'etape 3 est manquante. Verifier le
contenu du fichier .env.
Popup "Ce site vous demande de vous connecter" sur l'ecran Parametres
Comportement attendu : il s'agit de l'authentification HTTP Basic. Utiliser
la valeur de ADMIN_USERNAME (par defaut admin) et celle de
ADMIN_PASSWORD.
Erreurs password authentication failed en boucle dans les logs Postgres
Si la variable POSTGRES_PASSWORD a ete modifiee apres un premier lancement,
le volume Postgres conserve l'ancien mot de passe (initialise une seule fois).
Deux options :
- Redemarrer avec un volume vierge (entraine la perte des donnees) :
docker compose down -v docker compose up -d - Modifier le mot de passe en base sans toucher au volume :
Puis dans le prompt
docker compose exec postgres psql -U postgrespsql:Redemarrer ensuite le Core :ALTER USER loremind WITH PASSWORD 'valeur_exacte_du_env'; \qdocker compose restart core.
Erreur "502 Bad Gateway" ou message d'erreur IA dans l'interface
Le service Brain ne parvient pas a contacter le fournisseur LLM. Verifier :
- Ollama :
ollama serveest-il actif ? Le modele est-il telecharge (ollama list) ? La valeur deLLM_MODELcorrespond-elle exactement au nom d'un modele liste ? - 1min.ai : la cle API est-elle valide ? Le modele existe-t-il ?
- Consulter les logs du Brain :
docker compose logs brain
Un service ne demarre pas ou reste en etat unhealthy
Consulter les logs du service concerne :
docker compose logs <service>
Services disponibles : postgres, minio, core, brain, web.
Redemarrage d'un service apres modification du .env
docker compose up -d <service>
Redemarrage complet : docker compose restart.
Remise a zero complete (PERTE DES DONNEES)
docker compose down -v
L'option -v supprime les volumes. L'ensemble des lores, campagnes, images
et parametres est perdu de maniere definitive.
"No such image" ou "pull access denied" au premier lancement
Le registry Gitea peut necessiter une authentification selon la visibilite configuree pour les images. Contacter l'editeur du projet.
9. Exposition reseau des services
- Interface web : http://localhost:8081 (port configurable via
WEB_PORT). - PostgreSQL : accessible uniquement via le reseau Docker interne, non expose vers l'hote.
- MinIO : accessible uniquement via le reseau Docker interne. Les images
transitent par le reverse-proxy Java sur
/api/images/{id}/content. Le binding127.0.0.1:9000/9001defini dansdocker-compose.override.ymln'est actif qu'en developpement. - Brain Python : accessible uniquement via le reseau Docker interne.
Toute requete doit porter l'en-tete
X-Internal-Secret, injectee automatiquement par le Core Java et jamais exposee au navigateur.
10. Desinstallation
docker compose down -v
docker image rm git.igmlcreation.fr/ietm64/core git.igmlcreation.fr/ietm64/brain git.igmlcreation.fr/ietm64/web
Supprimer ensuite le dossier contenant docker-compose.yml et .env.