2026 OpenClaw sur Mac Mini loué : memory.qmd reindex nocturne, searchTool épinglé et config validate pour éviter les boucles de redémarrage
Les équipes qui louent un Mac Mini pour faire tourner OpenClaw en 7×24 avec memory.qmd voient la recherche dériver : les incréments diurnes et la reconstruction nocturne complète se disputent l’IO, tandis qu’un searchTool mal épinglé fait échouer mcporter et launchd entre dans une boucle de redémarrage.
Ce guide livre une checklist de configuration 7×24 et une FAQ : scénarios RAG/QMD local, matrice de valeurs recommandées, épinglage searchTool, flux config validate→apply, fenêtre silencieuse launchd et webhooks Healthchecks — avec liens vers l’accueil, les forfaits, la FAQ lignes d’eau APFS et le guide launchd throttle I/O.
Trois frictions memory.qmd sur Mac Mini loué 7×24
- Déchirure d’index. Incréments le jour et rebuild complet la nuit produisent des vecteurs et métadonnées incohérents.
- Piège mcporter. Sans épinglage searchTool, la validation gateway échoue — launchd redémarre en boucle.
- Tempête de config. Les file-watchers rechargent un YAML à moitié écrit ; config validate manque avant
applyet casse les lots nocturnes.
Louer un Mac Mini pour du RAG/QMD local : scénarios
Pour les développeurs solo qui veulent garder runbooks, tickets et journaux de chat on-device : memory.qmd stocke les chunks QMD ; la passerelle les interroge via searchTool — sans base vectorielle cloud, entièrement sur l’APFS du Mac Mini loué.
- Nuit seulement : reindex complet ; le jour, incréments uniquement — snapshot lecture seule hors fenêtre profonde.
- OPENCLAW_HOME sépare index production,
staging/et checkpoints. - Passerelle sur 127.0.0.1 ; signaux externes uniquement par webhook.
openclaw onboard --install-daemon
export OPENCLAW_HOME=~/openclaw-prod
openclaw gateway status
# attendu : bind 127.0.0.1, KeepAlive launchd
memory.qmd / searchTool: matrice de valeurs recommandées (valeurs de départ)
Versionnez ces paramètres dans Git — ils survivent au reboot et aux uplinks sur nœud M4 loué.
| Contrôle | Valeur | Note |
|---|---|---|
| Cadence incrément | 15 min | Hors fenêtre profonde UTC |
| Reindex nocturne complet | Départ 22:30 UTC | Objectif : fin avant 06:00 UTC |
| Taille de chunk | 512 tokens | Overlap 64 — figé en config |
| Version embedding | épinglée YAML | validate avant promotion |
| Chemin searchTool | absolu + sha256 | mcporter au démarrage |
| ThrottleInterval | 90–120 s | Amortir boucle redémarrage |
| APFS-Gate | Seuil | Action |
|---|---|---|
| Jaune | < 15 % libre | Pause reindex complet, incrément OK |
| Rouge | < 10 % libre | Stop embedding, webhook P1 |
Épingler searchTool (éviter les échecs mcporter)
Figez binaire, racine d’index et ID de modèle dans le runbook avec des chemins absolus et sha256 — pas de symlinks dans la config live. Promotion uniquement après succès dans $OPENCLAW_HOME/staging.
openclaw config validate --path staging/openclaw.json
# mcporter + searchTool dry-run OK:
openclaw config apply --atomic staging/openclaw.json
Répertoire d’index en lecture seule pour l’automation ; écriture uniquement en staging. Équité IO : runbook SQLite WAL.
Fenêtre de reconstruction nocturne et lignes d'eau disque
- Job reindex avec Nice 10 et priorité IO basse — la passerelle reste prioritaire.
- Fichiers temporaires sous
.reindex-tmp, rename atomique après succès. - Seuils alignés sur la FAQ lignes d’eau APFS.
Éviter la boucle de redémarrage config : validate puis apply
- Éditions uniquement dans
openclaw.json.tmp— désactiver le watch-reload. - config validate vérifie mcporter, searchTool et chemins memory — les erreurs ne touchent jamais le YAML live.
- config apply --atomic remplace atomiquement ; la passerelle reçoit un seul HUP, sans cascade.
Label passerelle : ThrottleInterval ≥ 90 s contre les tempêtes launchd en cas de mauvaise config.
Fenêtre silencieuse launchd et heartbeat Healthchecks ou webhook générique
LaunchAgent reindex uniquement UTC 22:00–06:00 via StartCalendarInterval. Supprimez les webhooks non P1 en silence ; la perte de données reste P1.
# après reindex réussi
curl -fsS -m 10 "$HC_URL/$UUID"
# en cas d'échec
curl -fsS -m 10 "$HC_URL/$UUID/fail"
Slugs grace et fail : guide Healthchecks 7×24. Webhook générique dédupliqué avec batch_id:reindex_phase. Détails throttle : launchd Nice/IO.
Sept étapes de déploiement reproductibles
- Provisionner. Achat, SSH via centre d’aide, baseline
df -hdepuis l’accueil. - Intégrer.
openclaw onboard --install-daemon— passerelle loopback. - Arborescence. Séparer memory.qmd, staging et checkpoints sous OPENCLAW_HOME.
- Épinglage. searchTool absolu + sha256 ; validate comme en CI.
- Job nocturne. launchd avec Nice/IO — aligné sur l’article throttle.
- Heartbeat. Healthchecks ou webhook avec success/fail séparés.
- Exercice. Échec validate volontaire — la config live doit rester intacte.
Repères citables : fenêtre profonde UTC 22:00–06:00 ; incrément 15 min ; chunk 512+64 ; APFS jaune 15 % / rouge 10 % ; throttle 90–120 s ; workflow toujours validate→apply ; heartbeat par phase de reindex.
FAQ dégradation des tâches longue durée
Le reindex nocturne ralentit-il la passerelle le jour ?
Non si les rebuilds complets tournent dans la fenêtre profonde avec Nice/IO. Jaune : incrément seulement ; rouge : arrêt dur et page.
Pourquoi validate avant apply ?
Le staging teste mcporter et searchTool ; les erreurs ne touchent jamais la production. apply est atomique plus un HUP — pas de cascade watch.
Échecs mcporter typiques ?
Dérive de chemin après upgrade, droits index, décalage embedding. Chemins absolus et sha256 épinglés ; valider sur staging avant promotion.
Louer un Mac Mini pour memory.qmd OpenClaw 7×24
RunMini héberge l’Apple Silicon pour OpenClaw, le reindex nocturne memory.qmd et des workflows config validate reproductibles. Comparez les forfaits, ouvrez l’achat et l’aide SSH/VNC.
En synthèse. Regroupez memory.qmd, l’épinglage searchTool, config validate et la fenêtre nocturne dans un runbook — OpenClaw tourne alors sur votre Mac Mini loué sans boucle de redémarrage, proche du 7×24. Revenez à l’accueil après votre premier exercice validate→apply réussi.