4.2 KiB
4.2 KiB
DeepSeek Harness (DSH) VPS & FileBrowser — Guide d'Exploitation et MAJ
Ce document décrit la structure, la configuration et la procédure de mise à jour de la stack DeepSeek Harness (dsh-vps) et de son compagnon FileBrowser (dsh-vps-filebrowser) hébergés sur le VPS Contabo (100.94.90.119).
1. Architecture et Composants
/home/dsh-agent/dsh-vps/
├── Dockerfile # node:20-bookworm-slim + @deepseek-ai/dsh pinné + inkstone + patch 0.0.0.0
├── docker-compose.yml # Services: dsh-proxy, dsh-vps, dsh-filebrowser
├── entrypoint.sh # Script de démarrage dsh-web-app
├── nginx.conf # Proxy inverse TLS + Basic Auth (ports 8900 et 8901)
├── auth/ # .htpasswd, credentials.txt
├── certs/ # Certificats auto-signés TLS
└── backups/ # Sauvegardes dsh_vps_home
Services et Ports
| Service | Conteneur | Port Interne | Port Public / Tailscale | Auth | Description |
|---|---|---|---|---|---|
dsh-proxy |
dsh-vps-proxy |
8900 / 8901 | 100.94.90.119:8900 / 8901 |
Basic Auth | Proxy TLS Nginx unifié |
dsh-vps |
dsh-vps |
3080 | Réseau Docker dsh_vps_net |
Proxy 8900 | Instance DSH Web UI & Agent |
dsh-filebrowser |
dsh-vps-filebrowser |
8080 | Réseau Docker dsh_vps_net |
Proxy 8901 | Explorateur de fichiers workspace |
2. Points d'Attention & Pièges Techniques
-
Version DSH dans Dockerfile :
- La version est explicitement fixée dans le
Dockerfileà la ligneRUN npm install -g @deepseek-ai/dsh@<version> @banlan/inkstone. - Ne jamais utiliser
@latestsans vérifier les breaking changes.
- La version est explicitement fixée dans le
-
Patch de binding
0.0.0.0dansstartup.js:- Par défaut,
@deepseek-ai/dsh-web-appinterdit l'écoute sur0.0.0.0(erreur de sécurité native). - Dans le conteneur, l'écoute sur
0.0.0.0est indispensable pour que le proxy Nginx (dsh-vps-proxy) puisse lui transférer les requêtes. - Le
Dockerfileapplique un patch obligatoire :RUN find /usr/local/lib/node_modules -name "startup.js" -path "*/@deepseek-ai/dsh-web-app/*" -exec sed -i 's/if (options.host === "0.0.0.0")/if (false \&\& options.host === "0.0.0.0")/' {} + - Vérification post-build impérative :
docker exec dsh-vps sh -c 'grep -n "options.host" $(find /usr/local/lib/node_modules -name startup.js -path "*/@deepseek-ai/dsh-web-app/*")'
- Par défaut,
-
FileBrowser Entrypoint (
v2.63.23+) :- Depuis les versions récentes de l'image
filebrowser/filebrowser, le binaire est localisé dans/bin/filebrowser(et non/filebrowser). - L'entrypoint officiel utilise
tiniet/init.shqui tente d'écrire dans/configappartenant àroot. - L'exécution avec
user: "1001:1001"requiert de surcharger l'entrypoint :entrypoint: ["/bin/filebrowser"] command: ["--noauth", "-a", "0.0.0.0", "-p", "8080", "-r", "/srv", "-d", "/srv/.filebrowser.db"]
- Depuis les versions récentes de l'image
3. Procédure de Mise à Jour DSH
-
Sauvegarde préalable de
dsh_vps_home:ssh -i ~/.ssh/vps_dsh_agent dsh-agent@100.94.90.119 \ "docker run --rm -v dsh_vps_home:/source:ro -v /home/dsh-agent/dsh-vps/backups:/backup alpine \ tar -czf /backup/dsh_vps_home-$(date +%Y%m%d-%H%M%S).tar.gz -C /source ." -
Mise à jour du Dockerfile : Modifier le tag de version dans
/home/dsh-agent/dsh-vps/Dockerfile. -
Rebuild sans cache :
cd /home/dsh-agent/dsh-vps && docker compose build --no-cache dsh-vps -
Recréation du conteneur :
docker compose up -d --force-recreate dsh-vps -
Contrôles de conformité :
- Version binaire :
docker exec dsh-vps dsh --version - Patch actif :
docker exec dsh-vps sh -c 'grep -n "options.host" $(find /usr/local/lib/node_modules -name startup.js -path "*/@deepseek-ai/dsh-web-app/*")' - Écoute interne :
docker exec dsh-vps curl -s -o /dev/null -w '%{http_code}\n' http://127.0.0.1:3080 - Proxy HTTPS :
curl -sk -u "dsh-admin:..." https://100.94.90.119:8900 - Vérification Bifrost :
docker exec dsh-vps curl -s -H "Authorization: Bearer sk-bf-..." http://100.86.197.88:3086/v1/models
- Version binaire :