Installation
Onirix s’installe sur vos propres serveurs avec Docker : l’application, le service d’indexation, PostgreSQL, OpenSearch, Redis et MinIO. Les étapes ci-dessous conviennent à un poste de travail ou à un serveur de test ; lisez Avant une mise en service avant d’ouvrir Onirix à d’autres personnes.
Prérequis
- Git, et l’accès au dépôt d’Onirix.
- Docker Desktop, ou Docker Engine 24 ou plus récent avec Compose v2.
- 8 Go de mémoire alloués à Docker, dont 2 Go pour OpenSearch, et environ 10 Go d’espace disque.
- Une clé d’API Retransmit et un domaine d’expédition vérifié : la création d’un compte envoie un e-mail de confirmation.
- Sous Linux uniquement, ce réglage du noyau pour OpenSearch :
sudo sysctl -w vm.max_map_count=262144
echo "vm.max_map_count=262144" | sudo tee /etc/sysctl.d/99-opensearch.conf1. Récupérer le code
git clone https://github.com/jpainam/onirix.git
cd onirix2. Créer le fichier d’environnement
cp apps/dashboard/.env.example apps/dashboard/.envRenseignez les quatre valeurs en tête du fichier, et laissez les autres telles quelles :
| Variable | Valeur |
|---|---|
BETTER_AUTH_SECRET | Le résultat de openssl rand -base64 32 |
SECRETS_ENCRYPTION_KEY | Le résultat de openssl rand -base64 32 |
RETRANSMIT_API_KEY | Votre clé Retransmit, qui commence par rt_ |
EMAIL_FROM | Une adresse de votre domaine vérifié |
Conservez SECRETS_ENCRYPTION_KEY en lieu sûr et ne la changez jamais : elle
chiffre les clés d’API des modèles et les identifiants des bases connectées.
La perdre, c’est perdre ces informations.
3. Construire et démarrer
docker compose up -d --buildLa première construction prend de 5 à 10 minutes. Attendez que docker compose ps affiche le service dashboard dans l’état healthy : OpenSearch est le plus long à démarrer. Le service d’indexation crée lui-même le schéma de la base et le compartiment de stockage.
4. Ouvrir Onirix
Ouvrez http://localhost:3001 , créez votre compte et cliquez sur le lien de confirmation reçu par e-mail. Onirix vous guide ensuite pour configurer l’espace : prévoyez une clé d’API de votre fournisseur de modèles.
Au quotidien
| Tâche | Commande |
|---|---|
| Suivre les journaux | docker compose logs -f dashboard worker |
| Arrêter, en gardant les données | docker compose down |
| Redémarrer | docker compose up -d |
| Mettre à jour | git pull && docker compose up -d --build |
| Tout effacer, données comprises | docker compose down -v |
Une mise à jour applique d’elle-même les migrations de la base au démarrage. Après une modification de apps/dashboard/.env, relancez docker compose up -d --build, et pas seulement un redémarrage : la construction lit aussi ce fichier.
Ports
| Service | Port |
|---|---|
| Onirix | 3001 |
| PostgreSQL | 5433 |
| OpenSearch | 9200 |
| MinIO (API, console) | 9000, 9001 |
| Redis | 6380 |
PostgreSQL et Redis utilisent 5433 et 6380 pour ne pas entrer en conflit avec une installation locale. Pour les déplacer, créez un fichier .env à côté de docker-compose.yml avec POSTGRES_HOST_PORT et REDIS_HOST_PORT.
Avant une mise en service
Cette configuration est pensée pour un poste de développement.
- Les services démarrent avec des mots de passe par défaut, et leurs ports sont ouverts. Sur un serveur partagé, définissez
POSTGRES_PASSWORD,MINIO_ROOT_USER,MINIO_ROOT_PASSWORDetOPENSEARCH_ADMIN_PASSWORDdans le fichier.envà la racine avant le premier démarrage, et fermez tous les ports sauf 3001. - La construction inscrit les valeurs de
apps/dashboard/.envdans l’image : ne publiez pas ces images sur un registre. - Pour servir Onirix à une autre adresse que
http://localhost:3001, changezBETTER_AUTH_URLetCORS_ORIGINdansdocker-compose.yml, faute de quoi la connexion est refusée.
Sauvegardes
Toutes les données tiennent dans trois volumes Docker et dans apps/dashboard/.env.
docker compose exec postgres pg_dump -U postgres onirix > onirix-$(date +%F).sqlonirix_postgres_data: les comptes, les documents et les conversations. À sauvegarder.onirix_minio_data: les fichiers originaux envoyés. À sauvegarder.onirix_opensearch_data: l’index de recherche, qui se reconstruit en réindexant.
En cas de problème
| Symptôme | Cause |
|---|---|
| La construction échoue sur une erreur de validation Varlock | Une valeur obligatoire de apps/dashboard/.env est vide, trop courte, ou la clé Retransmit ne commence pas par rt_ |
| La construction s’arrête, code 137 | Docker manque de mémoire : passez-le à 8 Go |
opensearch s’arrête sur max virtual memory areas | Le réglage vm.max_map_count manque, voir les prérequis |
port is already allocated | Un autre programme utilise ce port, voir Ports |
| L’e-mail de confirmation n’arrive jamais | Le domaine de EMAIL_FROM n’est pas vérifié chez Retransmit : voir docker compose logs dashboard |
dashboard reste unhealthy | Il n’atteint pas PostgreSQL : voir docker compose logs dashboard postgres |