Files
nas-runbooks/hermes-nyora/dsh-vps-pnpm-plugins-bloques.md
T

4.0 KiB

DSH VPS — plugins bloqués (pnpm absent) et mémoire scaffoldée mais invisible

Instance auteur : hermes-nyora Date : 2026-08-24 Tags : dsh, vps-contabo, docker, plugins, memoire Statut : valide (fix pnpm appliqué et vérifié) — volet mémoire/MCP en cours (voir brief-gemini-dsh-mcp-bridge-memoire-20260824.md)


Problème

Deux constats indépendants sur dsh-vps (VPS Contabo, @deepseek-ai/dsh@0.1.1-rc.2) :

  1. dsh plugin --profile web add <package> échoue immédiatement avec dsh: pnpm not found on PATH — install pnpm to manage profile plugins. Impossible d'installer le moindre plugin tiers (dont le bridge MCP officiel @deepseek-ai/dsh-mcp-client).
  2. Un skill session-memory et un fichier $DSH_HOME/memory/notes.md sont scaffoldés par entrypoint.sh dès le premier boot (15/08), pour servir de mémoire persistante. Neuf jours plus tard, notes.md est strictement identique à sa version initiale malgré une instance active.

Contexte et contraintes

  • dsh-vps tourne dans un conteneur Node 22-slim isolé, volumes nommés dsh_vps_home (DSH_HOME) et dsh_vps_workspace (persistants entre restarts, mais pas versionnés en amont).
  • permission.defaultPreset: danger-full-access sur cette instance — aucune restriction d'action à l'intérieur du conteneur.
  • Dockerfile n'installait que npm ; aucune trace de pnpm.
  • Le dossier /home/dsh-agent/dsh-vps sur le VPS n'était pas un dépôt git au moment du constat (.gitignore présent, jamais git init).

Ce qui NE fonctionne PAS

Tentative Erreur obtenue Raison de l'échec
dsh plugin --profile web add <pkg> sans pnpm pnpm not found on PATH pnpm jamais installé dans l'image
Compter sur le SKILL.md session-memory pour la mémoire notes.md jamais modifié depuis le déploiement dsh --dump-config révèle que skill-filesystem, tool-skill et skill-badge sont tous disabled: true, patchés par le bundle @deepseek-ai/dsh-web-app. L'agent n'a jamais eu la capacité de lire ce fichier.

Solution validée

# 1. Backup avant modification
sudo cp /home/dsh-agent/dsh-vps/Dockerfile /home/dsh-agent/dsh-vps/Dockerfile.bak-add-pnpm-20260824

# 2. Ajout de pnpm via corepack, juste avant l'install npm globale de dsh
sudo sed -i 's|RUN npm install -g @deepseek-ai/dsh@0.1.1-rc.2 @banlan/inkstone|RUN corepack enable \&\& corepack prepare pnpm@latest --activate \&\& npm install -g @deepseek-ai/dsh@0.1.1-rc.2 @banlan/inkstone|' /home/dsh-agent/dsh-vps/Dockerfile

# 3. Rebuild + redeploiement
cd /home/dsh-agent/dsh-vps
sudo docker compose build dsh-vps
sudo docker compose up -d dsh-vps

Vérification

sudo docker exec dsh-vps sh -c "which pnpm && pnpm --version"
# Résultat attendu : /usr/local/bin/pnpm, version affichée

sudo docker exec dsh-vps dsh plugin --profile web --help
# Résultat attendu : aide pnpm complète (plus l'erreur "pnpm not found")

curl -sk -o /dev/null -w "%{http_code}\n" https://<tailscale-ip>:8900/
# Résultat attendu : 401 (auth htpasswd, service up) — pas de 000/502

Pièges spécifiques DSM / NAS

  • Ce n'est pas un piège NAS mais VPS : /home/dsh-agent/* appartient à l'utilisateur dsh-agent (uid 1001), pas à claude-oversight — toute lecture/écriture même en diagnostic nécessite sudo, y compris pour un simple diff ou cat.
  • corepack prepare pnpm@latest --activate au build time n'empêche pas un message "Corepack is about to download…" au premier appel runtime — c'est normal (résolution de version), pas une erreur.
  • Le dossier dsh-vps sur le VPS n'est toujours pas un dépôt git — les futurs changements de Dockerfile/compose ne sont pas encore tracés automatiquement. À corriger (voir brief associé).

Références