---
priority: 10
type: project
tags: project
univers: PRO
title: "VPS-IA"
aliases: [""]
status: "active"     # Options: active, closed, in-progress, urgent, waiting
urgence: "haute"     # Options: haute, normale, basse
start: "2026-09-25"
review: "2026-09-25"
domain: "[[PRO-INFORMATIQUE]]"
---
# Projet VPS IA

Objectif : mettre en place une solution IA sur [[03_PROJETS/VPS-OVH-PERSO]] pour automatiser certaines actions.
Ce projet vise aussi à servir de socle de consolidation de la connaissance et d'expériementation sur le sujet de l'IA.

## Architecture IA de base

L'architecture s'appuie exclusivement sur des solutions open source facilement déployables sur le [[03_PROJETS/VPS-OVH-PERSO]] donc via Yunohost.

Selon certains experts, une solution IA repose sur plusieurs points clés :
1. La notion de **base de données**. Elle est généralement portée par des solutions no-code comme Airtable, NocoDB, BaseRow. Le choix ici a été  fait de s'appuyer sur la solution open source promue au niveau nationale **Grist**
2. La notion d'**orchestrateur** ou système d'automatisation. L'outil le plus utilisé et qui a détroné Zappier ou Make est n8n. Cependant la licence n'est pas formellement ouverte et pose question. Etant donnés quelques problèmes d'installation via le système Yunohost, le choix s'est finalement porté sur **Node-Red** que j'utilise par ailleurs pour la domotique.
3. Enfin, un point central du système est le context et la description des **processus** que va utiliser l'IA. Cela renvoie à la gestion de la connaissance souvent associée aux concepts de second cerveau et de PKM. Les oslution les plus connues sont sans doute Obsidian et Notion. Cependt une fois de plus, pur des raisons de licence, le choix s'est porté vers **Silverbullet** (v2).
4. Enfin, l'**IA** elle même qui vient apporter une force d'analyse et de "réflexion" au système. Ici on s'appuie sur **OpenCode server** comme solution de harnais/agents et des modèles à faibles coût mais suffisamments puissants pour les opérations demandéess comme **Mistral Small** via OVH API Endpoints ou **DeepSeek v4 Flash 0731**, **Mimo 2.6 flash** ou **GLM 5.3 flash** via OpenRouter. Il est important de prévoir le modèle comme un élément interchangeable du système et d'utiliser des offres en **Zero Data Retention** (ZDR). 


```mermaid
---
config:
  theme: forest
  look: handDrawn
---

graph TD;
    A["BDD (Grist)"]
    B("Orchestrateur (Node-Red)")
    C["IA/LLM (OpenCode)"]
    D["Context & Process (Silverbullet)"]

    B<-->A;
    B<-->C;
    B<-->D;
``` 

A cela se greffe des outils de communication et de notification. Ici, Matrix est préféré à Telegram ou WhatsApp.

Vue d'ensemble de la Stack retenue

* **Silverbullet v2 (PKM) :** Source unique de vérité pour les notes, le journal quotidien, ainsi que la configuration des agents, compétences et profils.
* **Node-RED (Orchestrateur) :** Proxy intelligent et moteur de flux d'automatisation.
* **OpenCode Server (LLM) :** Moteur d'IA exécutant les requêtes et les outils MCP.
* **FluffyChat / Matrix (Tuwunel) :** Interface conversationnelle bidirectionnelle.
* **ntfy :** Service de notifications push unidirectionnelles et rapides.

* [x] [[03_PROJETS/VPS-IA]] - Faire un schéma de la stack VPS IA [date: 2026-09-29]
```mermaid
---
config:
  theme: forest
  look: handDrawn
  themeCSS: 'rounded {fill:red};'
---

graph TD;
    A(Node-Red - Orchestrateur)
    B[FluffyChat - Messages]
    C[OpenCode - LLM]
    D[Silverbullet - PKM]
    E[Grist - BDD]
    F["..."]
    G[ntfy]

    A<-->|HTTP| C;
    A<-->|@agent - /files - #skills| D;
    B<-->|Matrix chat| C;
    C-->|Notification| G;
    C<-->|MCP| D; 
    C<-->|MCP| E;
    C<-->|"..."| F;
    A-->|Notification| G;
``` 


Organisation des notes :
* Installation OpenCode : [[04_NOTES/VPS-IA_Installation-OpenCode]]
* Connexion MCP SilverBullet (résolution) : [[04_NOTES/VPS-IA_OpenCode_MCP-Silverbullet_Resolution]]
* Installation Excalidraw MCP : [[04_NOTES/VPS-IA_Installation-Excalidraw-MCP]]
* Installation pass (secrets) : [[04_NOTES/VPS-IA_Installation-Pass-Gestionnaire-Secrets]]
* Bridge Matrix : [[04_NOTES/VPS-IA_Installation-OpenCode-Chat-Bridge-Matrix]]
* Utilisation d'OpenCode dans Node-RED : [[04_NOTES/VPS-IA_NodeRed_Utilisation-OpenCode]]
* Cas d'usage : [[04_NOTES/VPS-IA_UseCases]]
* RAG local QMD : [[04_NOTES/VPS-IA_RAG-Local-QMD]]
* Mémoire long terme : [[04_NOTES/VPS-IA_Memoire-Long-Terme]]





**A FAIRE**

Action en cours : compléter la documentation pour
* Installation Silverbullet / Siverbullet-AI
* Installation Node Red
* Installation Matrix (Tuwunel / FluffyChat) : 
* Installation OpenCode : [[04_NOTES/VPS-IA_Installation-OpenCode]]
* Utilisation d'OpenCode dans Node Red : [[04_NOTES/VPS-IA_NodeRed_Utilisation-OpenCode]]

* [x] [[03_PROJETS/VPS-IA]] - Dans opencode créer et réorganiser les agents (via IA) [date: 2026-10-10]
  => **`vps-admin`** : Agent Administrateur (Gestion Infrastructure & OpenCode, Accès système, Docker, MCP, logs). Gestion du serveur, statut des services, logs, installation de nouveaux serveurs MCP, dépannage d'accès. Cet agent va exécuter des commandes système. Eviter de créer un agent “monitoring” lui ajouter un skill monitoring pour le VPS (checker l'espace disque, la RAM, l'état des conteneurs Docker et les logs d'erreurs d'OpenCode/MCP). 
         Il gère aussi la création de skills et de nouveaux agents et pour cela accède au script de synchronisation SB/OC sans passer par le MCP (utilisation de l'API ./fs)
  => **`pkm-manager`** : Agent Connaissances & Données (Silverbullet + Grist + Excalidraw + ...). Gestion globale des données personnelles / second cerveau. Silverbullet (notes, idées, wiki) et Grist (bases relationnelles, suivi, tableaux) sont notamment deux faces du système de gestion de données qui vient également d'être complété par Ecalidraw. Cet agent maîtrise l'interaction entre ces différents outils. Il doit avoir accès aux skills correspondant et peut être amené à rédiger des codes/scripts pour automatiser des flux entre Silverbullet, Grist, Excalidrw (ex. un cron qui synchronise des métadonnées).
  => **`main`** : Agent généraliste / Triage

  


**Ressources liées :** → [[04_NOTES/VPS-IA_Documentation]] — index complet des notes classées par thème (frontmatter `description` + tag thématique).

10 notes modifiées récemment :

${query[[
  from p = index.pages()
  where string.startsWith(p.name, '04_NOTES/VPS-IA_')
    and p.name ~= '04_NOTES/VPS-IA_Documentation'
  order by p.lastModified desc
  limit 10
  select {
    NOTE = "[[" .. p.name .. "|" .. (string.match(p.name, 'VPS%-IA_(.+)') or p.name) .. "]]",
    DESCRIPTION = p.description or "—",
    DATE = string.match(tostring(p.date or ""), '%d%d%d%d%-%d%d%-%d%d') or "—"
  }
]]}


## Todo

### Urgent

${query[[
  from t = index.tasks()
  where t.done == false 
    and table.includes(t.links, _CTX.currentPage.name)
  order by t.lastModified desc 
  limit 50
  select {
    REF = "[[" .. t.ref .. "]]",
    TEXT =  t.text,
    TAGS = t.tags
  }
]]}


## Evénements

### A venir

${query[[
  from t = index.tasks('event')
  where not t.done
    and table.includes(t.links, _CTX.currentPage.name)
  order by t.lastModified desc 
  limit 10
  select {
    REF = "[[" .. t.ref .. "]]",
    TEXT =  t.text,
    TAGS = t.tags
  }
]]}


### A traiter

${query[[
  from o = index.tag "header" 
  where table.includes(o.tags, "event")
    and string.find(string.gsub(o.name, '%-', '_'), "%[%[" .. string.gsub(_CTX.currentPage.name, '%-', '_') .. "%]%]") 
  order by o.page desc 
  limit 10
  select {
    REF = "[[" .. o.ref .. "]]",
    NAME =  o.name
  }
]]}


## DONE

${query[[
  from t = index.tasks()
  where t.done
    and table.includes(t.links, _CTX.currentPage.name)
  order by t.lastModified desc 
  limit 10
  select {
    REF = "[[" .. t.ref .. "]]",
    TEXT =  t.text,
    TAGS = t.tags
  }
]]}




## Suivie et améliorations

### Tableau des évolutions
${query[[
  from t = index.items()
  where t.page == _CTX.currentPage.name
    and string.startsWith(t.text, "[[01_JOURNAL/2026/")
  order by t.text desc
  select {
    REF = "[[" .. t.ref .. "]]",
    DATE = "[[01_JOURNAL/2026/" .. string.match(t.text, "(%d%d%d%d%-%d%d%-%d%d)") .. "]]",
    TAGS = table.concat(t.tags, ", "),
    TEXT = t.text
  }
]]}
### Log chronologique

* [[01_JOURNAL/2026/2026-10-30]] - #VPS-PKM : Réorganisation univers-domaines-projets (migration PKM, structure 02_DOMAINES/03_PROJETS) -> [[00_INBOX/Pro/PKM_Univers-Domaines-Projets_20261030]]
* [[01_JOURNAL/2026/2026-11-01]] - #VPS-Infra : Réparation FTS SilverBullet (Silversearch 1.2.6 remplace basic-search, incompatible SB 2.12.1) -> [[04_NOTES/VPS-IA_Reparation-FTS-Silversearch]]
* [[01_JOURNAL/2026/2026-11-01]] - #VPS-MCP : Incident MCP silverbullet-ai offline (30/10→01/11) résolu par restart SilverBullet ; API /.fs en contournement -> [[04_NOTES/VPS-IA_MCP-SilverBullet-Offline]]
* [[01_JOURNAL/2026/2026-11-02]] - #VPS-OpenCode : Audit disque VPS 81→63 % (purge reranker QMD 610 Mo, archives YNH conservées) -> [[04_NOTES/VPS-IA_Audit-Disque-2026-11-02]]
* [[01_JOURNAL/2026/2026-11-02]] - #VPS-OpenCode : Compaction globale OpenCode (buffer 30 %, keep.tokens 20000) -> [[04_NOTES/VPS-IA_Compaction-OpenCode-2026-11-02]]
* [[01_JOURNAL/2026/2026-11-02]] - #VPS-OpenCode : Garde-fous OpenCode + ZeroClaw (formes exactes ask, policies deny, hardening systemd) -> [[04_NOTES/VPS-IA_Garde-fous-OpenCode-ZeroClaw-20261102]]
* [[01_JOURNAL/2026/2026-11-02]] - #VPS-OpenCode : Décision de conserver le système mémoire S/M/L natif (pas de plugin opencode-memory-md) -> [[04_NOTES/VPS-IA_Memoire-Long-Terme]]
* [[01_JOURNAL/2026/2026-11-02]] - #VPS-Skill : Création du skill Traitement-Taches (protocole de traitement des tâches de réunion) -> [[80_CONFIG/IA_SKILLS/Traitement-Taches]]
* [[01_JOURNAL/2026/2026-11-03]] - #VPS-Securisation : Alerte SSH PAM v2 (filtre anti-bruit Forgejo, garde alerte Guacamole) -> [[04_NOTES/VPS-IA_SSH-Alerte-Ntfy-PAM-2026-10-19]]
* [[01_JOURNAL/2026/2026-11-03]] - #VPS-Agent : Modèles skills/agents = global + permissions deny par agent ; serveur grist rétabli dans opencode.json -> [[80_CONFIG/IA_AGENTS]] [[80_CONFIG/IA_SKILLS]]
* [[01_JOURNAL/2026/2026-11-03]] - #VPS-MCP : MCP draw.io opérationnel (serveur 1.10.1 + CLI drawio-cli 32.6.1, exports PNG/SVG/PDF) -> [[04_NOTES/VPS-IA_MCP-Drawio-2026-11-03]]
* [[01_JOURNAL/2026/2026-11-03]] - #VPS-Skill : Audit des skills, agents et MCP OpenCode (couverture, permissions, doublons) -> [[80_CONFIG/IA_AGENTS]], [[80_CONFIG/IA_SKILLS]]
* [[01_JOURNAL/2026/2026-11-03]] - #VPS-PKM : Note de synthèse du serveur (état, accès) + version publique -> [[04_NOTES/VPS-IA_Note-Synthese-Serveur-2026-11-03]]
* [[01_JOURNAL/2026/2026-11-03]] - #VPS-Script : Alerte ntfy sur anomalie des crons OpenCode (doctor/cout/db-backup non exécutés)
* [[01_JOURNAL/2026/2026-11-04]] - #VPS-PKM : Base Grist « PKM » (tables projets/notes/journal, colonnes ref lisibles) + mise à jour du skill grist -> [[04_NOTES/VPS-IA_PKM-Grist-2026-11-04]], [[80_CONFIG/IA_SKILLS/Grist]]
* [[01_JOURNAL/2026/2026-11-05]] - #VPS-Script : Relevé coûts OpenRouter (15 j + analyse par modèle sur 30 j, coût journalier) -> [[80_CONFIG/IA_SKILLS/OpenCode-Costs]]
* [[01_JOURNAL/2026/2026-11-07]] - #VPS-OpenCode : Wrappers /usr/local/bin pour zeroclaw/zerocode (CLI hors PATH, exécution sudo + runuser) -> [[04_NOTES/VPS-SHOGUN_ZEROCLAW]]
* [[01_JOURNAL/2026/2026-11-07]] - #VPS-Infra : Déploiement auto du site Astro (deploy-site.sh commit+push, sync SB→Astro, webhook Forgejo sans boucle, filtre de préfixe avec slash final) -> [[04_NOTES/VPS-IA_Site-Astro-Deploiement-Auto-2026-11-07]], [[04_NOTES/VPS-IA_Site-Astro_MAJ-Contenu-2026-11-07]], [[03_PROJETS/SITE-SHIZENDO-OVH]]
* [[01_JOURNAL/2026/2026-11-07]] - #VPS-Infra : Nettoyage du résidu kamio (home sauvegardé puis supprimé, service kamio-api arrêté/désactivé, comptes et groupes supprimés)
* [[01_JOURNAL/2026/2026-11-07]] - #VPS-Skill : Restructuration de la page VPS-IA + frontmatter normalisé des 33 notes (tags, description, nature, projects) + note index -> [[04_NOTES/VPS-IA_Documentation]]
* [[01_JOURNAL/2026/2026-11-08]] - #VPS-Infra : Certificat LE matrix-admin.datagrandest.net réparé (workers nginx périmés → nginx -t + restart, doublon server_names_hash_bucket_size) ; todo : API OVH DNS shizendo.ovh en panne
* [[01_JOURNAL/2026/2026-10-08]] - #VPS-MCP : Connexion du MCP Silverbullet à OpenCode (pont MCP local + token) -> [[04_NOTES/VPS-IA_OpenCode_MCP-Silverbullet_Resolution]], [[80_CONFIG/IA_SKILLS/Silverbullet-Mcp]]
* [[01_JOURNAL/2026/2026-10-08]] - #VPS-Infra : Résolution du runtime Silverbullet (chromium headless, correctif systemd) -> [[04_NOTES/VPS-IA_OpenCode_MCP-Silverbullet_Resolution]]
* [[01_JOURNAL/2026/2026-10-08]] - #VPS-Skill : Création du skill Synthese-Reunion -> [[80_CONFIG/IA_SKILLS/Synthese-Reunion]]
* [[01_JOURNAL/2026/2026-10-09]] - #VPS-Skill : Création du skill Week-To-Days (transfert événements semaine → jours + query) -> [[80_CONFIG/IA_SKILLS/Week-To-Days]]
* [[01_JOURNAL/2026/2026-10-09]] - #VPS-Agent : Création de l'agent silverbullet (devenu pkm-manager) + synchronisation SB→OpenCode -> [[80_CONFIG/IA_AGENTS/pkm-manager]], [[80_CONFIG/IA_DOCUMENTATION/SilverBullet_Manage-Skills-Agents]]
* [[01_JOURNAL/2026/2026-10-09]] - #VPS-OpenCode : Note PROCESS_OpenCode-Workflows -> [[80_CONFIG/PROCESS_OpenCode-Workflows]]
* [[01_JOURNAL/2026/2026-10-10]] - #VPS-MCP : Installation MCP Excalidraw (sentinel + maaker) + accès web -> [[04_NOTES/VPS-IA_Installation-Excalidraw-MCP]], [[04_NOTES/VPS-IA_Utilisation-Excalidraw-MCP]], [[80_CONFIG/IA_SKILLS/Excalidraw]]
* [[01_JOURNAL/2026/2026-10-10]] - #VPS-Agent : Création des agents pkm-manager et vps-admin -> [[80_CONFIG/IA_AGENTS/pkm-manager]], [[80_CONFIG/IA_AGENTS/vps-admin]]
* [[01_JOURNAL/2026/2026-10-10]] - #VPS-PKM : Schéma excalidraw API/MCP/Skills -> [[00_INBOX/Pro/NOTION_IA_API-MCP-Skills]]
* [[01_JOURNAL/2026/2026-10-11]] - #VPS-PKM : Plan de réorganisation du PKM (02_PROJETS, 03_NOTES, area) -> [[80_CONFIG/PLAN_PKM_Reorganisation_20261011]], [[80_CONFIG/PLAN_PKM_Execution_20261011]], [[80_CONFIG/RAPPORT_Migration-PKM-20261010]]
* [[01_JOURNAL/2026/2026-10-12]] - #VPS-PKM : Synthèses de réunions + correction requêtes daily notes -> [[80_CONFIG/IA_SKILLS/Synthese-Reunion]]
* [[01_JOURNAL/2026/2026-10-12]] - #VPS-PKM : Création pages projets GP-PANORAMAX-DGE et GP-IMAGERIE-DGE -> [[03_PROJETS/GP-PANORAMAX-DGE]], [[03_PROJETS/GP-IMAGERIE-DGE]]
* [[01_JOURNAL/2026/2026-10-14]] - #VPS-Skill : Amélioration skill Synthese-Reunion (Mes actions/Autres actions, déduplication via requête Lua) -> [[80_CONFIG/IA_SKILLS/Synthese-Reunion]], [[80_CONFIG/IA_SCRIPTS/SilverBullet_Open-Tasks-Projects]]
* [[01_JOURNAL/2026/2026-10-14]] - #VPS-Script : Script opencode-costs + skill OpenCode-Costs + commandes /costs-* -> [[80_CONFIG/IA_SKILLS/OpenCode-Costs]]
* [[01_JOURNAL/2026/2026-10-14]] - #VPS-OpenCode : Correction upload OpenCode + dépôt git vps-opencode + synchronisation -> [[04_NOTES/VPS-IA_Installation-OpenCode]]
* [[01_JOURNAL/2026/2026-10-14]] - #VPS-Infra : Mise à jour Silverbullet CLI 2.10.0 → 2.12.1 -> [[04_NOTES/VPS-IA_Mise-a-jour-SilverBullet-CLI]]
* [[01_JOURNAL/2026/2026-10-15]] - #VPS-OpenCode : Contexte global OpenCode (AGENTS.md) -> [[80_CONFIG/IA_CONTEXT/AGENTS]]
* [[01_JOURNAL/2026/2026-10-15]] - #VPS-Securisation : Installation pass (gestionnaire de secrets) + dépôt vps-passwords -> [[04_NOTES/VPS-IA_Installation-Pass-Gestionnaire-Secrets]]
* [[01_JOURNAL/2026/2026-10-15]] - #VPS-OpenCode : Installation bridge Matrix (opencode-chat-bridge) -> [[04_NOTES/VPS-IA_Installation-OpenCode-Chat-Bridge-Matrix]]
* [[01_JOURNAL/2026/2026-10-16]] - #VPS-Script : Script openrouter-costs + commandes /costs-or -> [[04_NOTES/VPS-IA_OpenRouter-Consommation]]
* [[01_JOURNAL/2026/2026-10-16]] - #VPS-Agent : Audit des agents et du contexte global -> [[80_CONFIG/IA_AGENTS/vps-admin]], [[80_CONFIG/IA_AGENTS/pkm-manager]]
* [[01_JOURNAL/2026/2026-10-17]] - #VPS-OpenCode : Mémoire persistante OpenCode (memory.md + consolidation hebdo) -> [[04_NOTES/VPS-IA_Memoire-Persistante_20261017]]
* [[01_JOURNAL/2026/2026-10-18]] - #VPS-Skill : Création du skill historique-projet (génération d'historique projet depuis les sessions OpenCode) -> [[80_CONFIG/IA_SKILLS/Historique-Projet]], [[04_NOTES/VPS-IA_Historique-Projet-Sessions-OpenCode]]
* [[01_JOURNAL/2026/2026-10-18]] - #VPS-PKM : Mise en place de la section « Suivie et améliorations » (log chronologique + tags + table unique) -> [[03_PROJETS/VPS-IA]], [[03_PROJETS/VPS-OVH-PERSO]]
* [[01_JOURNAL/2026/2026-10-18]] - #VPS-Agent : Référencement du skill historique-projet dans les agents vps-admin et pkm-manager -> [[80_CONFIG/IA_AGENTS/vps-admin]], [[80_CONFIG/IA_AGENTS/pkm-manager]]
* [[01_JOURNAL/2026/2026-10-18]] - #VPS-Skill : Mise à jour du skill Planification-Taches (fuseau horaire UTC + conversion heure de Paris, leçon marqueur de cleanup) -> [[80_CONFIG/IA_SKILLS/Planification-Taches]], [[04_NOTES/VPS-IA_Fuseau-horaire-UTC-2026-10-18]]
* [[01_JOURNAL/2026/2026-10-18]] - #VPS-OpenCode : Agent vps-admin défini par défaut + projet opencode par défaut (archivage du projet fantôme opencode_old) -> [[04_NOTES/VPS-IA_Agent-Defaut-Projet-Opencode]]
* [[01_JOURNAL/2026/2026-10-19]] - #VPS-Securisation : Alerte SSH via PAM + ntfy (script ssh-notify.sh, ligne pam_exec dans sshd, token via pass) -> [[04_NOTES/VPS-IA_SSH-Alerte-Ntfy-PAM-2026-10-19]]
* [[01_JOURNAL/2026/2026-10-19]] - #VPS-Skill : Création du skill Ntfy (conventions d’envoi ntfy, récupération du token) -> [[80_CONFIG/IA_SKILLS/Ntfy]]
* [[01_JOURNAL/2026/2026-10-19]] - #VPS-Script : Alerte ntfy sur la mise à jour hebdomadaire OpenCode (opencode-update.sh : succès/erreur, versions) -> [[04_NOTES/VPS-IA_Installation-OpenCode]]
* [[01_JOURNAL/2026/2026-10-19]] - #VPS-Skill : Mise à jour des skills Silverbullet-Mcp (syntaxe SLIQ/Lua en tête, table.concat) et Silverbullet-Api (recensement fiable) -> [[80_CONFIG/IA_SKILLS/Silverbullet-Mcp]], [[80_CONFIG/IA_SKILLS/Silverbullet-Api]]
* [[01_JOURNAL/2026/2026-10-19]] - #VPS-PKM : Migration project: → projects: (305 fichiers, 7 requêtes SLIQ corrigées) -> [[80_CONFIG/IA_SKILLS/Silverbullet-Conventions]]
* [[01_JOURNAL/2026/2026-10-26]] - #VPS-OpenCode : Mise en place mémoire long terme S/M/L (dossier memory/ par agent, page IA_MEMOIRE_LONGTERME, script cron-memory-consolidation.sh 0 token, verrous anti-surconsommation index+SLIQ+20Ko, alertes mail+ntfy, skill memoire-long-terme) -> [[04_NOTES/VPS-IA_Memoire-Long-Terme]], [[80_CONFIG/IA_SKILLS/Memoire-Long-Terme]], [[80_CONFIG/IA_MEMOIRE_LONGTERME]]
* [[01_JOURNAL/2026/2026-10-26]] - #VPS-OpenCode : Découverte automatique du service par la CLI (flag `--service` dans opencode-serve.sh → enregistrement `~/.local/state/opencode/service.json`, fin du conflit de port 49374) + mise à jour de la doc d'installation -> [[04_NOTES/VPS-IA_Installation-OpenCode]]
* [[01_JOURNAL/2026/2026-10-26]] - #VPS-MCP : Vérification des connecteurs MCP (silverbullet-ai, excalidraw, excalidraw-maaker, grist) — tous à jour (npm/PyPI) et connectés -> [[04_NOTES/VPS-IA_Installation-Excalidraw-MCP]]

* [[01_JOURNAL/2026/2026-10-28]] - #VPS-Infra : Accès lecture espace SilverBullet pour opencode (usermod -aG silverbullet, restart service) → grep direct OK, lecture seule, perms à re-vérifier après upgrade YunoHost SB -> [[04_NOTES/VPS-IA_Acces-Lecture-Notes-OpenCode]]
* [[01_JOURNAL/2026/2026-10-28]] - #VPS-OpenCode : RAG local QMD (Phase 0+1+2) : install ~/.local (QMD 2.8.3, 0 root), collection shizendo (868 fichiers/2525 chunks), cron nocturne cron-qmd-update.sh 02:30 UTC, skill qmd-search (routage SLIQ/grep/qmd), pas de MCP (surcharge tokens), rerank désactivé par défaut (trop lent CPU) -> [[04_NOTES/VPS-IA_RAG-Local-QMD]], [[80_CONFIG/IA_SKILLS/Qmd-Search]]
* [[01_JOURNAL/2026/2026-10-28]] - #VPS-Agent : Permissions MCP par agent (V2) : vps-admin deny grist*/excalidraw* (catalogue Code Mode allégé — vérifié empiriquement), pkm-manager inchangé ; piège wildcard underscore vs tiret ; retrait champ V1 enabled de opencode.json -> [[04_NOTES/VPS-IA_Permissions-MCP-Par-Agent]]
* [[01_JOURNAL/2026/2026-10-28]] - #VPS-OpenCode : PATH du service enrichi (~/.local/bin + ~/.opencode/bin via opencode-serve.sh) → shells non-interactifs des agents (qmd, sb, pass) sans chemin complet ; effectif au prochain restart du service
