257 lines
8.2 KiB
Markdown
257 lines
8.2 KiB
Markdown
# 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](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`).
|
|
|
|
- **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 :
|
|
|
|
```
|
|
openssl rand -hex 32
|
|
```
|
|
|
|
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` :
|
|
|
|
```
|
|
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`.
|