Mise à jour de l'install.md

This commit is contained in:
2026-04-21 14:41:46 +02:00
parent ba8a503b3e
commit 7624666b72

View File

@@ -1,75 +1,256 @@
# Installation de LoreMindMJ # Installation de LoreMindMJ
## Prerequis Guide pas-a-pas pour deployer LoreMindMJ chez toi. Compte 5 a 10 minutes selon
ta connexion.
- **Docker Desktop** ([Windows](https://www.docker.com/products/docker-desktop/) / [Mac](https://www.docker.com/products/docker-desktop/)) ## 1. Prerequis
ou **Docker Engine + Compose v2** (Linux).
- (Optionnel) **[Ollama](https://ollama.com/)** si tu veux un LLM local.
Sinon, une cle API [1min.ai](https://1min.ai) suffit.
## Installation (5 minutes) - **Docker Desktop** ([Windows](https://www.docker.com/products/docker-desktop/) /
[Mac](https://www.docker.com/products/docker-desktop/)) 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`).
1. Telecharge `docker-compose.yml` et `.env.example` depuis la [derniere release](https://git.igmlcreation.fr/ietm64/LoreMindMJ/releases) dans un dossier a toi. - **Un fournisseur de LLM**, au choix :
- **[Ollama](https://ollama.com/)** installe sur ta machine hote (gratuit, local,
necessite ~6 Go de RAM libre pour les modeles recommandes).
- **Une cle API [1min.ai](https://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](https://git.igmlcreation.fr/ietm64/LoreMindMJ/releases) 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 :
2. Renomme `.env.example` en `.env` et ouvre-le dans un editeur texte. Trois variables sont **obligatoires** :
- `POSTGRES_PASSWORD` : mot de passe de la base (choisis-en un).
- `ADMIN_PASSWORD` : protege l'ecran Parametres de l'appli. Tu le taperas dans une popup du navigateur.
- `BRAIN_INTERNAL_SECRET` : secret interne partage entre les services. Genere une valeur aleatoire :
``` ```
openssl rand -hex 32 openssl rand -hex 32
``` ```
(Sous Windows sans openssl : utilise un generateur en ligne type "random hex string 64 chars".)
Sans ces trois variables, `docker compose up` refusera de demarrer — c'est volontaire pour eviter un deploiement non-securise par defaut. Sous Windows sans openssl : utilise un generateur en ligne type
"random hex string 64 chars" ou PowerShell :
```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` :
3. Dans un terminal, place-toi dans le dossier et lance :
``` ```
docker compose up -d docker compose up -d
``` ```
Le premier demarrage telecharge les images (~500 Mo) et initialise la base. Compte 1-2 minutes.
4. Ouvre http://localhost:8081 dans ton navigateur. Bon jeu ! 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 :
## Mise a jour ```
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 pull
docker compose up -d docker compose up -d
``` ```
Les donnees (base Postgres, images MinIO, settings Brain) sont dans des volumes Docker et survivent aux mises a jour. Les donnees (base Postgres, images MinIO, settings Brain) sont dans des volumes
Docker et survivent aux mises a jour.
## LLM : Ollama ou 1min.ai ? ## 7. Sauvegarde
**Ollama (local, gratuit)** — Edite `.env` : Les donnees sont dans trois volumes Docker :
```
LLM_PROVIDER=ollama
LLM_MODEL=gemma4:26b
```
Telecharge le modele au prealable : `ollama pull gemma4:26b`.
**1min.ai (cloud, paye)** — Edite `.env` : - `loremindmj_postgres-data` — tout le contenu applicatif (lores, campagnes,
``` pages, templates, branches, etc.)
LLM_PROVIDER=onemin - `loremindmj_minio-data` — les images uploadees
ONEMIN_API_KEY=sk-... - `loremindmj_brain-data` — les settings IA (provider courant, cle API 1min.ai)
ONEMIN_MODEL=open-mistral-nemo
```
Tu peux aussi changer tout ca a chaud depuis l'ecran Parametres de l'appli. ### Dump SQL de la base
## Problemes frequents
- **Port 8081 deja pris** : change `WEB_PORT=8082` (ou autre) dans `.env`.
- **Ollama injoignable** : verifie qu'Ollama tourne (`ollama serve`) et que le modele est bien telecharge.
- **"set ADMIN_PASSWORD in .env" / "set BRAIN_INTERNAL_SECRET in .env"** au lancement : tu as oublie une des variables obligatoires de l'etape 2.
- **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`.
- **Tout casser et repartir de zero** : `docker compose down -v` supprime les volumes (attention, perte de donnees).
## Sauvegarde
Les donnees sont dans les volumes Docker : `loremindmj_postgres-data`, `loremindmj_minio-data`, `loremindmj_brain-data`.
Sauvegarde rapide de la base :
``` ```
docker compose exec postgres pg_dump -U loremind loremind > backup.sql 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`.