Guide d'installation rapide LMbox
De J−7 (préparation réseau) à J+3 (passage en GA), avec les commandes lmbox et les checklists exactes.
Cible : équipe IT / DSI · Lecture ≈ 12 min · Réf. INSTALL-2026-05
Avec les pré-requis remplis avant arrivée, 3 jours ouvrés sur site suffisent : J+1 boot + SSO, J+2 connecteurs prioritaires, J+3 validation + cohorte pilote. Un ingénieur LMbox est présent J+1 et J+2.
J−7 — Préparer le terrain
L'objectif de cette semaine est que la Box arrive dans un environnement où elle peut booter, parler à votre IDP, et atteindre les sources de connaissance — sans modification réseau de dernière minute.
Checklist réseau
- VLAN dédié recommandé (sinon segment isolé), accès LAN interne, pas d'exposition WAN
- 1 IP fixe dans ce VLAN — réservation DHCP ou static
- Bande passante 10 GbE jusqu'à la Box (sinon 1 GbE accepté, débit dégradé sur les sync initiaux)
- Hostname interne : choisir
lmbox.{domain.local}et créer l'enregistrement DNS A - Certificat TLS : soit interne (PKI d'entreprise), soit auto-signé géré par Caddy (mode default LAN)
Checklist firewall
À ouvrir sur le pare-feu interne :
| From | To | Port | Why |
|---|---|---|---|
| postes utilisateurs | LMbox | 443/tcp | UI + Claude Code + Cursor |
| LMbox | AD / Azure AD / Okta | 443/tcp | OIDC / SAML |
| LMbox | SharePoint / Confluence / Jira / Drive | 443/tcp | Sync connecteurs |
| LMbox | bedrock.eu-west-3.amazonaws.com | 443/tcp | tier frontier (optionnel — désactivable) |
| LMbox | NTP interne ou pool.ntp.org | 123/udp | horloge (signature audit logs) |
| LMbox | SMTP relay interne | 25 ou 587/tcp | alertes opérations (optionnel) |
Checklist SSO
- Active Directory / Azure AD : créer une Application Registration avec scopes
openid profile email groups, redirect URIhttps://lmbox.{domain.local}/auth/callback - Okta : nouvelle App OIDC Web, mêmes scopes, même redirect URI
- Google Workspace : OAuth Client ID Web, mêmes paramètres
- Identifier les groupes qui auront accès (ex :
ai-users,ai-admins) — on les mappera à des rôles RBAC LMbox au boot
Checklist personnel
- 1 admin technique avec accès root au VLAN et au pare-feu, présent J+1
- 1 référent IDP (AD / Okta) joignable dans la matinée J+1
- 1 référent par connecteur prioritaire (SharePoint admin, Confluence admin, etc.) joignable J+2
Si vous déployez en air-gap (OIV / défense / santé classifié), retirez la ligne Bedrock du tableau ci-dessus. Les mises à jour seront livrées par clé USB signée ; un protocole dédié est fourni dans le runbook papier joint à la Box.
J+0 — Réception et déballage
Contenu du carton
- Le boîtier scellé (Mac Studio sur S/M ; rack 1U sur L ; rack 4U sur XL) avec étiquette SHA256 du firmware
- Câbles : alimentation, 2 × 10 GbE Cat 6a, 1 × Thunderbolt (config initiale en cas de problème réseau)
- Runbook papier avec les codes uniques de cette Box (vault initial, certificate fingerprint)
- Clé USB de reprise (signée GPG) pour mode air-gap ou recovery
- Bordereau de livraison signé à contre-signer et conserver — preuve de chaîne de garde
Vérifications scellé + intégrité
- Inspecter le scellé du boîtier : aucune trace d'ouverture (sticker holographique intact)
- Comparer le SHA256 imprimé sur la boîte avec celui du runbook papier (ils doivent être identiques)
- Si l'un des deux ne matche pas, ne pas brancher — appeler le support LMbox
Placement physique
- Datacenter ou local technique climatisé · 18-24 °C ambiant · ≤ 60 % humidité
- Sur S/M (Apple Silicon) : peut tenir sur étagère, attention à la circulation d'air arrière (10 cm minimum)
- Sur L/XL (Linux x86) : rack standard, prévoir 1U/4U + 1U d'espace au-dessus
- Onduleur recommandé (la Box gère la coupure propre via signal UPS USB)
J+1 — Premier boot, SSO, premier modèle
3.1 Boot initial
Câble réseau branché, alimentation branchée, premier POWER ON. La Box met
≈ 90 secondes à atteindre l'écran d'init.
# Sur le poste admin du VLAN, première connexion via le hostname interne $ ssh admin@lmbox.local # Le mot de passe initial est dans le runbook papier — à changer immédiatement lmbox$ lmbox init → Génération de l'identité de la Box (UUID + clé Curve25519) → Création du coffre age-chiffré → Premier audit log signé : "lmbox-init" ✓ Init terminé. Hostname interne : lmbox.local Empreinte cert : SHA256:9f3a:c1...:bd84 (vérifier avec le runbook)
3.2 Configuration hostname et TLS
lmbox$ lmbox config set hostname lmbox.acme.local lmbox$ lmbox tls install /tmp/wildcard-acme-local.crt /tmp/wildcard-acme-local.key ✓ Caddy reconfiguré avec le certificat fourni ✓ HTTPS opérationnel sur https://lmbox.acme.local
3.3 Branchement SSO
Authentik est embarqué dans la Box (couche 02). On enregistre l'IDP en quelques commandes :
# Active Directory Federation Services (ADFS) — exemple lmbox$ lmbox sso configure \ --type oidc \ --issuer https://login.microsoftonline.com/{tenant-id}/v2.0 \ --client-id {client-id} \ --client-secret-file /run/secrets/azuread \ --groups-claim groups \ --admin-group ai-admins \ --user-group ai-users ✓ Authentik provider créé : azure-ad ✓ 247 utilisateurs synchronisés (groupe ai-users) ✓ 4 admins synchronisés (groupe ai-admins) lmbox$ lmbox sso test --user alice.dupont@acme.com ✓ login OK · groupes mappés · session JWT signée
3.4 Premier modèle local
lmbox$ lmbox models pull mistral-large-2 → Téléchargement local (≈ 24 Go) ✓ Modèle chargé · prêt à servir lmbox$ lmbox models test mistral-large-2 "Bonjour, fais une phrase de test" [mistral-large-2] Bonjour, ceci est une réponse de test générée localement… ↳ 78 ms TTFT · 41 tokens/s · 0 sortie réseau
3.5 Activation du routeur cascade (optionnel ce jour)
Si la stratégie inclut le tier frontier (Bedrock EU), c'est le moment de stocker la clé AWS dans le coffre :
lmbox$ lmbox vault set bedrock_access_key_id AKIA... lmbox$ lmbox vault set bedrock_secret_access_key ... lmbox$ lmbox router config --frontier=enabled --bedrock-region=eu-west-3 lmbox$ lmbox router test "Plan agentic 20 tours sur le module billing" { "tier": "frontier", "score": 18, "would_route_to": "bedrock/anthropic.claude-sonnet-4-5" }
Vous devriez avoir : Box bootée, certificat TLS valide, SSO actif, 1 modèle local servable. À ce stade un développeur peut déjà se connecter à https://lmbox.acme.local et tester en chat.
J+2 — Connecteurs et bases de connaissance
Sans connecteurs, LMbox est un proxy LLM. Avec les connecteurs branchés, c'est un assistant qui connaît votre Confluence, votre SharePoint et vos repos GitLab.
4.1 SharePoint (Office 365)
# Côté Azure AD — créer une App Registration avec scope Sites.Read.All # Récupérer client_id, tenant_id, client_secret lmbox$ lmbox connectors add sharepoint \ --tenant-id {tenant} --client-id {id} --client-secret-file /run/secrets/sp \ --sites "Direction Juridique,Knowledge Base" lmbox$ lmbox connectors sync sharepoint → Indexation sharepoint · 2 sites · 4 850 docs ✓ Première sync terminée en 18 min · 4 821 docs ingérés · 29 erreurs (logs)
4.2 Confluence Cloud
lmbox$ lmbox connectors add confluence \ --base-url https://acme.atlassian.net/wiki \ --email connector-bot@acme.com \ --api-token-file /run/secrets/confluence \ --spaces ARCH,SEC,LEGAL lmbox$ lmbox connectors sync confluence
4.3 Google Drive
# Créer un service account côté GCP, lui donner accès aux Shared Drives lmbox$ lmbox connectors add google-drive \ --service-account-file /run/secrets/gdrive-sa.json \ --shared-drives "Cabinet,Veille"
4.4 GitLab / GitHub (pour Code Reviewer + MCP)
lmbox$ lmbox connectors add gitlab \
--base-url https://gitlab.acme.com \
--token-file /run/secrets/gitlab-pat \
--groups acme/backend,acme/web
4.5 Vérifier l'orchestrateur
lmbox$ lmbox connectors status CONNECTOR STATUS DOCS LAST SYNC ERRORS sharepoint ✓ ready 4 821 2026-05-07 14:22 29 confluence ✓ ready 1 240 2026-05-07 14:38 0 google-drive ⏳ syncing 812 in progress — gitlab ✓ ready 8 612 2026-05-07 14:51 3
J+3 — Validation et cohorte pilote
5.1 Lancer lmbox doctor
lmbox$ lmbox doctor ▶ Services 19/19 ✓ ▶ TLS cert valide jusqu'au 2026-08-04 ✓ ▶ SSO Azure AD · 247 users · last login 12 min ago ✓ ▶ Modèles mistral-large-2 ✓ · qwen-2.5-coder:32b ✓ · mistral-small-3 ✓ ▶ Connecteurs 4/4 ready · 15 485 docs indexés ✓ ▶ Routeur frontier=enabled · 0 erreurs sur les 100 dernières requêtes ✓ ▶ MCP 4 tools registered · 9 sources mappées ✓ ▶ Audit logs écriture OK · vector → loki OK · rétention 90 j ✓ ▶ Backup dernier snapshot Restic : 2 h 14 min ago ✓ ▶ Disque SSD 78 % libre · backup 92 % libre ✓ ✓ Tout est vert. La Box est prête à recevoir des utilisateurs.
5.2 Smoke test cascade Claude Code
# Sur le poste d'un dev pilote $ export ANTHROPIC_BASE_URL=https://lmbox.acme.local $ export ANTHROPIC_API_KEY=$(lmbox vault get claude_code_key) $ claude > Refactor le module auth pour utiliser l'injection de deps [claude] OK, je vois 3 fichiers à toucher… # Côté Box, lmbox router stats devrait montrer 1 requête, tier=medium lmbox$ lmbox router stats 1 TIER REQ COST€ ratio_local medium 1 0.00 100 %
5.3 Cohorte pilote
- Sélectionner 5 à 15 utilisateurs (mix dev + métier) — typiquement 1 cabinet juridique + 2 dev + 2 RH/conseil
- Briefing 30 min sur les patterns d'usage et la confidentialité
- Activer le suivi :
lmbox audit follow --user-group ai-pilotpour voir les requêtes en temps réel - Recueil structuré au bout de 5 jours (template fourni dans le runbook)
5.4 Brancher le SIEM
lmbox$ lmbox audit export --target splunk \ --hec-url https://splunk.acme.com:8088 --hec-token-file /run/secrets/splunk lmbox$ lmbox audit export status → Pipeline Vector → Splunk HEC : actif · 23 events/s · 0 retry
Troubleshooting · 8 incidents fréquents
1. La Box démarre mais lmbox.local ne résout pas
Vérifier l'enregistrement DNS interne (A record). En dépannage immédiat : ajouter une entrée /etc/hosts pointant sur l'IP fixe de la Box. Sur macOS : /private/etc/hosts. Re-run lmbox doctor → la section ⟨ Hostname résolu ⟩ doit virer au vert.
2. lmbox sso configure renvoie « invalid client_secret »
Recopier le secret EXACTEMENT depuis le portail IDP — surtout sur Azure AD où l'UI affiche le secret une seule fois. Si déjà perdu, régénérer côté IDP plutôt que de chercher. Toujours utiliser --client-secret-file (jamais en arg CLI : ça finit dans bash_history).
3. Premier modèle ne charge pas (timeout)
Vérifier que /var/lib/lmbox/models a au moins 50 Go libres avant lmbox models pull. Si la Box a Mirroring activé, désactiver pendant le pull initial — la duplication ralentit l'écriture SSD. lmbox models pull --resume reprend là où on s'est arrêté.
4. Connecteur SharePoint : « 403 Forbidden »
Le scope MS Graph Sites.Read.All exige une approbation admin (admin consent) côté Azure AD. C'est une checkbox dans le portail App Registration. Sans ce consent, l'app ne peut lister aucun site même si le client_secret est valide.
5. lmbox router test renvoie tier=fast pour des prompts manifestement complexes
Le scoring est conservatif par défaut. Éditer router/config.yaml et baisser le seuil medium (par défaut 7 → essayer 5), ou ajouter des mots-clés métier au tableau agentic_keywords. Re-run lmbox router config reload — pas besoin de redémarrer.
6. Bedrock renvoie AccessDeniedException
Trois causes possibles : (a) la région IAM n'est pas eu-west-3 ou eu-central-1, (b) le modèle claude-sonnet-4-5 n'a pas été enabled dans la console Bedrock (case à cocher), (c) la policy IAM n'a pas bedrock:InvokeModel sur la ressource. Bedrock console → Model access → Modify.
7. Pas d'audit logs dans Loki
lmbox doctor → ⟨ vector → loki ⟩ doit être ✓. Si ✘ : lmbox logs vector — typiquement un problème de DNS interne (Vector ne résout pas loki:3100). Workaround : utiliser l'IP du container Loki dans /etc/lmbox/vector.yml.
8. lmbox doctor passe mais les utilisateurs voient « Service unavailable »
Probablement un problème de certificat côté navigateur (cert auto-signé non importé dans le store de l'OS). Pour macOS : double-clic sur le .crt → Always Trust. Pour Windows : MMC → Certificates → Trusted Root. Pour mobile : profil de configuration MDM.
Référence rapide
Variables d'environnement principales
| Variable | Default | Effet |
|---|---|---|
| LMBOX_HOSTNAME | lmbox.local | Hostname interne |
| LMBOX_DOMAIN | .local | Domaine pour cert wildcard |
| LMBOX_MCP_KEY | (vide) | Master key MCP — généré au init |
| LITELLM_MASTER_KEY | (vide) | Clé interne gateway → généré au init |
| RAGNIGHT_URL | http://ragnight:3000 | URL du backend RAG (interne) |
| LMBOX_PRELOAD_MODELS | mistral-small-3 | Liste des modèles à charger au boot (CSV) |
Commandes lmbox les plus utiles
lmbox doctor # diagnostic global, à lancer avant chaque démo lmbox router stats 7 # usage par tier sur 7 jours · ratio_local · coût frontier lmbox connectors sync <name> # sync manuelle d'un connecteur lmbox mcp tools # lister les outils MCP exposés lmbox audit search "..." # recherche full-text dans l'audit log lmbox backup snapshot # Restic snapshot manuel (auto toutes les 4 h sinon) lmbox backup restore --to /tmp/restore --snapshot latest lmbox vault rotate --name {key} lmbox failover status # si HA actif/passif lmbox gdpr erase user@acme.com # effacement RGPD complet, traçable
Support et SLA
- Hotline :
+33 ...· 24×7 sur contrat LMbox managed, heures ouvrées sinon - Email : support@lmbox.eu
- Console support :
https://support.lmbox.eu(SSO same as la Box) - Status page :
https://status.lmbox.eu - Engagement réponse : P1 (Box down) ≤ 1h · P2 (dégradation) ≤ 4h · P3 (question) ≤ 1 j ouvré
Pour les détails sur la stratégie de souveraineté, le pricing détaillé et les FAQ RSSI, voir le livre blanc dédié. Pour la version commerciale de ce processus avec photos d'installations clients, voir /box/installation.
Une question avant déploiement ?
L'équipe LMbox prépare avec votre DSI une checklist personnalisée à J−10 : schéma réseau, mappings groupes IDP, comptes service par connecteur, calendrier précis. Sans engagement.