dsh-plugin-deploy-guardianv0.1.0
thegabopacheco-sudo/dsh-plugin-deploy-guardian
dsh plugin --profile web add github:thegabopacheco-sudo/dsh-plugin-deploy-guardian#4e065db52608dd833ef476374a24019f161e3023
介绍
Deploy Guardian para DeepSeek Harness: revisa estado y logs de un VPS por SSH y ejecuta restart/deploy/rollback solo con comandos declarados en la configuracion, confirmacion, auditoria y modo read-only.
标签
概述
dsh-plugin-deploy-guardian — revisión y despliegue de VPS para DeepSeek Harness
Plugin MCP local para revisar y desplegar un VPS por SSH sin comandos inventados: el modelo elige entre acciones declaradas en tu configuración (restart, deploy, rollback), con confirmación explícita, auditoría y modo read-only.
English · Cómo funciona · MIT
Herramientas (3)
| Tool | Qué hace |
|---|---|
mcp__deploy__status | Conectividad SSH + checks declarados (servicios, disco) por host. |
mcp__deploy__logs | Últimos logs de un servicio permitido (journalctl o comando configurado). |
mcp__deploy__action | restart/deploy/rollback con confirm:true y comando de la config. |
Configuración
Archivo: <DSH_HOME>deploy-guardianconfig.json (el postinstall crea uno base;
hay un ejemplo completo en config.example.json).
{
"sshCommand": "ssh",
"sshArgs": ["-o", "BatchMode=yes", "-o", "ConnectTimeout=10"],
"hosts": [{
"name": "wendigo-vps",
"host": "root@203.0.113.10",
"port": 22,
"identityFile": "C:\Users\tu-usuario\.ssh\id_ed25519",
"checks": [
{ "name": "nginx", "command": "systemctl is-active nginx" },
{ "name": "bot", "command": "systemctl is-active wendigo-bot" },
{ "name": "disco", "command": "df -h / | tail -1" }
],
"services": ["nginx", "wendigo-bot"],
"logsCommand": "journalctl -u {service} -n {lines} --no-pager",
"restartCommand": "sudo systemctl restart {service}",
"deployCommand": "cd /opt/wendigo && ./deploy.sh",
"rollbackCommand": "cd /opt/wendigo && ./rollback.sh"
}]
}
- El plugin solo ejecuta los comandos de esta config; el modelo no puede inyectar comandos ni servicios fuera de la lista.
sshCommand/sshArgspermiten usarssh.exede Windows (OpenSSH) u otro cliente; las claves viven en tu máquina, nunca en el repo.
Instalación
Desde DSH → Settings → Plugins instala
github:thegabopacheco-sudo/dsh-plugin-deploy-guardian y permite el script de
instalación. El postinstall copia el runtime a
<DSH_HOME>pluginsdeploy-guardian y crea la config base.
CLI (perfiles no administrados por la app):
dsh plugin --profile <perfil> add github:thegabopacheco-sudo/dsh-plugin-deploy-guardian
Requisitos: Windows 10/11 con cliente OpenSSH (ssh.exe), Node ≥ 20 (lo
aporta el harness) y acceso SSH por clave al VPS.
Seguridad
- Read-only por defecto en espíritu:
status/logssolo leen. - Acciones con confirmación (
confirm:true+ pedido explícito del usuario). - Comandos declarados: nada de comandos arbitrarios del modelo.
- Lista de servicios por host para logs/restart.
- Rate limit de 6 acciones por minuto.
- Auditoría en
<DSH_HOME>cachedeploy-guardianaudit.jsonl. - Modo read-only:
DSH_DEPLOY_MODE=read-onlydesactiva las acciones. - Sin contraseñas SSH ni claves en el repo: solo
identityFile(ruta local).
Variables de entorno
| Variable | Uso |
|---|---|
DSH_DEPLOY_MODE | read-only desactiva acciones. |
DSH_DEPLOY_SKIP_POSTINSTALL | 1 omite el despliegue. |
Solución de problemas
- “falta la configuración”: copia
config.example.jsona<DSH_HOME>deploy-guardianconfig.jsony completa tus hosts. - SSH falla: prueba
ssh -i <clave> usuario@host 'echo ok'a mano; revisaBatchMode=yesyknown_hosts. - Servicio no permitido: agrégalo a
servicesdel host. - Permiso de scripts en la instalación: aprueba el
postinstall; si el cartel se repite,allowBuilds: trueenpnpm-workspace.yamldel perfil.
Desarrollo
npm install
npm run build:bundle
cd test; npm install; node connect-test.mjs # SSH mock local
Licencia
MIT © thegabopacheco-sudo
星级评价
基本信息
插件信息来自公开 GitHub 仓库与 SkillHub,版权归原作者所有;安装前请自行审查仓库代码。