Aurora Nexus — Assistant d'installation
(depuis `INSTALL_WIZARD.md`)
Ce guide décrit l'usage du wizard CLI (ops/install_wizard.py) qui industrialise la mise en service d'Aurora Nexus sur une machine Ubuntu 22+ équipée de Docker 24+.
1. Prérequis
Voir docs/02_Installation/02-PreRequis.md pour la liste complète (logiciels, ports, domaine, clés API).
Le wizard vérifie automatiquement les ports et vous propose des valeurs par défaut si besoin.
Installer les dépendances wizard :
pip install -r ops/requirements.txt2. Lancer le wizard
python3 ops/install_wizard.py runÉtapes effectuées :
- Préflight (version Python,
docker/docker compose, ports libres). - Prompts interactifs (domaine, email admin, ports, secrets Postgres/MinIO, clés API…).
- Nom de domaine : hostname brut (
notebook.auroramind.fr) utilisé côté infra. - URL publique : version complète avec protocole (
https://notebook.auroramind.fr) utilisée dans les liens et callbacks. - JWT dans le body : option “extensions/bots non-web” (si
RETURN_JWT_IN_BODY=true).
- Nom de domaine : hostname brut (
- Génération d’un fichier
.envdans un dossier de run (par défautops/wizard_runs/_runs/<timestamp>/.env), sans toucher au.envracine.- Le wizard écrit toutes les variables listées dans
.env.example(logs, rétention, GC Qdrant, auth, etc.). - Si tu laisses un champ vide, il injecte la valeur par défaut (ou un secret généré aléatoirement pour JWT/DB/MinIO/Gateway/Fernet).
- Pour écrire explicitement à la racine, fournir
--env-path .env(⚠️ à éviter sur un environnement déjà en service). - Production : conserver le
.envhors repo (ex./etc/aurora/prod.env,chmod 600) et démarrer avecdocker compose --env-file /etc/aurora/prod.env up -d.
- Le wizard écrit toutes les variables listées dans
- Création du réseau Docker
sylio_defaultsi absent (utile si un reverse-proxy/stack adjacente est jointe à ce réseau). docker compose up -d --build+ attente des services (barre de progression Rich).- Le wizard lance
docker composeavec--env-file <env_path>et injecte aussiAURORA_ENV_FILE=<env_path>pour que les services lisent le bon env.
- Le wizard lance
- Bootstrap DB uniquement si Postgres est local (
POSTGRES_HOST=postgres) :- exécution de
ops/init_db.sh - si Postgres est externe (OVH), aucun bootstrap/migration automatique.
- guide DB externe :
docs/02_Installation/06-Postgres-Externe.md.
- exécution de
- Init MinIO : buckets créés via le service one-shot
minio-init(idempotent). - Healthcheck HTTP (
/api/health). - Rapport final (URLs, ports, identifiants masqués) + log JSON lines dans
ops/logs/install_wizard_<timestamp>.jsonl.
3. Options CLI principales
| Option | Description |
|---|---|
--from-file config.yaml | Charge les réponses depuis un fichier YAML/JSON (non-interactif). |
--yes / -y | Skip de la confirmation finale (batch/CI). |
--dry-run | Écrit des artefacts dry-run (plan + env.preview.env redacted) sans lancer Docker. |
--skip-pull | Évite docker compose pull (utile hors réseau). |
--env-path | Fichier .env à écrire (par défaut: dans le dossier de run, sans toucher au .env racine). |
--output-dir | Dossier de run (défaut: ops/wizard_runs/_runs/<timestamp>/). |
--compose-file | Compose alternatif (monostack, tests). |
--wait-timeout | Temps max (s) pour l'attente des containers (défaut: 300). |
--project-name | Force COMPOSE_PROJECT_NAME pour lancer une stack parallèle. |
Exemple de stack parallèle (garde l'infra historique intacte) :
COMPOSE_PROJECT_NAME=aurorarag_wizard python3 ops/install_wizard.py run --project-name aurorarag_wizardMode rapport uniquement
python3 ops/install_wizard.py reportRelit un .env (par défaut: .env si présent, sinon le dernier run dans ops/wizard_runs/_runs/), teste HOST_API_PORT + HOST_UI_PORT et affiche l'état (succès/erreur) sans toucher aux containers.
4. V1 (post‑MVP) : améliorations prévues
Ces éléments ne sont pas implémentés dans la version actuelle, mais cadrent la V1 “installation/ops” :
- Manifeste de release (
public/update-manifest.json) avec version + changelog + hash images. - Endpoint
GET /api/updates/latestqui retourne ce manifeste. - UI : bannière “Nouvelle version disponible” (Admin → Paramètres) + lien changelog + doc d’upgrade.
- Wizard : option
--check-updatespour comparer la version locale au manifeste et proposer un upgrade guidé. - Packs métiers (option wizard) : sélectionner les packs/services à activer (sources, workspaces, prompts et réglages RAG) lors de l’installation.
- Reset & maintenance : renforcer et tester
ops/reset_environment.py(dry-run, garde‑fous, scénarios support) et documenter un runbook d’intervention.
5. Fichier de configuration (--from-file)
Exemple YAML minimal :
app_hostname: rag.mondomaine.com
public_domain: https://rag.mondomaine.com
admin_email: admin@mondomaine.com
host_ports:
api: 8000
ui: 3000
gateway: 8100
qdrant: 6333
minio_api: 9000
minio_console: 9001
postgres: 5432
redis: 16379
postgres_user: aurora
postgres_password: super-secret
postgres_db: auroranexus
minio_root_user: aurora-s3
minio_root_password: autre-secret
jwt_secret: change-me
allow_insecure_jwt_secret: false
oauth_login_code_ttl_seconds: 180
llm_credentials_enc_key: change-me
allow_legacy_plaintext_credentials: false
enable_ingest_url: false
aurora_diagnostic_log: false
return_jwt_in_body: false
openai_api_key: sk-proj-xxx
openrouter_api_key: sk-or-yyy
openrouter_usage_api_key: sk-or-usage-zzz
freecurrency_api_url: https://api.freecurrencyapi.com/v1/latest?apikey=XXXX¤cies=EURChamps non fournis → valeurs par défaut (cf. ops/install_wizard/models.py).
6. Logs & troubleshooting
- Tous les événements sont tracés dans
ops/logs/install_wizard_<timestamp>.jsonl(JSON lines). Idéal pour le support. - En cas d'échec Docker ou healthcheck, le wizard affiche la commande fautive et l'erreur (
dockerstderr). Relancer avec--verbosepour les détails. - Ports occupés → message
Ports déjà utilisés: .... Relancer en ajustant les valeurs proposées. - Secrets jamais ré-affichés en clair (masquage
****abcd).
7. Scripts appelés
ops/init_db.sh: attend Postgres (aurorarag_postgres), crée la tableaurora_schema_migrations, appliqueaurora_schema.sql+ toutes les migrationsNN_*.sql(priorité au dossiermigrations/, fallback sur la racine si absent). Idempotent, garde une trace par fichier.- Init MinIO : le wizard repose sur le service
minio-init(scriptops/init_minio.sh) pour créer les bucketsuploads/artifacts/backups. Idempotent.
8. Vérifications post-installation
- Source de vérité : cette section sert de checklist unique (à lier depuis le README).
- UI :
http://127.0.0.1:<HOST_UI_PORT>(login admin à créer lors du premier accès). - API :
http://127.0.0.1:<HOST_API_PORT>/api/health→{"status": "ok"}. - Qdrant :
curl http://127.0.0.1:<HOST_QDRANT_PORT>/collections(attendaurora_documents). - MinIO console :
http://127.0.0.1:<HOST_MINIO_CONSOLE_PORT>(credentials choisis).
9. Procédure express pour un nouveau serveur (rappel)
- Cloner le dépôt public :
git clone https://github.com/syl2042/Aurora-Nexus.git && cd Aurora-Nexus - Lancer le wizard :
python3 ops/install_wizard.py run- renseigne tes clés; si tu laisses vide, les secrets internes sont générés aléatoirement.
.envcomplet est produit (toutes les variables de.env.example).
- Démarrer :
docker compose --env-file <chemin/.env> up -d
(recommandé : déplacer le.envhors repo, ex./etc/aurora/prod.env, chmod 600). - Vérifier
/api/healthet l’accès UI.
Pour documenter des retours beta, créer une issue Wizard install feedback avec : OS/Docker, options, extrait du log JSON, captures docker compose ps.