<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
	<id>https://wiki.lololand.org/index.php?action=history&amp;feed=atom&amp;title=Trace_install_tas_-_DeepSeek_Harness_%28DSH%29</id>
	<title>Trace install tas - DeepSeek Harness (DSH) - Historique des versions</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.lololand.org/index.php?action=history&amp;feed=atom&amp;title=Trace_install_tas_-_DeepSeek_Harness_%28DSH%29"/>
	<link rel="alternate" type="text/html" href="https://wiki.lololand.org/index.php?title=Trace_install_tas_-_DeepSeek_Harness_(DSH)&amp;action=history"/>
	<updated>2026-09-22T14:22:28Z</updated>
	<subtitle>Historique des versions pour cette page sur le wiki</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://wiki.lololand.org/index.php?title=Trace_install_tas_-_DeepSeek_Harness_(DSH)&amp;diff=233&amp;oldid=prev</id>
		<title>Admin : Mise en place et documentation d’exploitation DSH</title>
		<link rel="alternate" type="text/html" href="https://wiki.lololand.org/index.php?title=Trace_install_tas_-_DeepSeek_Harness_(DSH)&amp;diff=233&amp;oldid=prev"/>
		<updated>2026-08-21T23:30:54Z</updated>

		<summary type="html">&lt;p&gt;Mise en place et documentation d’exploitation DSH&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nouvelle page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;span id=&amp;quot;trace-install-tas---deepseek-harness-dsh&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
= Trace install tas - DeepSeek Harness (DSH) =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;rôle-et-état&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Rôle et état ==&lt;br /&gt;
&lt;br /&gt;
DeepSeek Harness (&amp;lt;code&amp;gt;dsh&amp;lt;/code&amp;gt;) fournit une interface Web d’agent de codage reliée au modèle Qwen3.8 servi par Ollama ROCm local. L’installation est réalisée sur &amp;lt;code&amp;gt;tas&amp;lt;/code&amp;gt; en Podman rootless, avec une image locale versionnée :&lt;br /&gt;
&lt;br /&gt;
* image : &amp;lt;code&amp;gt;localhost/deepseek-harness:0.1.0-rc.7&amp;lt;/code&amp;gt; ;&lt;br /&gt;
* conteneur : &amp;lt;code&amp;gt;deepseek-harness&amp;lt;/code&amp;gt; ;&lt;br /&gt;
* interface locale : &amp;lt;code&amp;gt;http://127.0.0.1:3080&amp;lt;/code&amp;gt; ;&lt;br /&gt;
* commande exécutée dans le conteneur : &amp;lt;code&amp;gt;dsh web --host 127.0.0.1 --port 3080 --no-open&amp;lt;/code&amp;gt; ;&lt;br /&gt;
* fournisseur : Ollama ROCm sur &amp;lt;code&amp;gt;http://127.0.0.1:11434/v1&amp;lt;/code&amp;gt; ;&lt;br /&gt;
* modèle par défaut : &amp;lt;code&amp;gt;qwen3.8-q8-256k:latest&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Le service n’est pas exposé directement sur le réseau : le réseau host est utilisé uniquement pour permettre à DSH d’atteindre Ollama sur la boucle locale, tandis que DSH écoute lui-même sur &amp;lt;code&amp;gt;127.0.0.1:3080&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Mise en place vérifiée le 22 août 2026 :&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;deepseek-harness.service&amp;lt;/code&amp;gt; est actif ;&lt;br /&gt;
* &amp;lt;code&amp;gt;deepseek-harness-autostart.service&amp;lt;/code&amp;gt; est actif et activé ;&lt;br /&gt;
* le conteneur répond HTTP 200 sur &amp;lt;code&amp;gt;http://127.0.0.1:3080/&amp;lt;/code&amp;gt; ;&lt;br /&gt;
* l’image locale utilisée est &amp;lt;code&amp;gt;localhost/deepseek-harness:0.1.0-rc.7&amp;lt;/code&amp;gt; ;&lt;br /&gt;
* la commande &amp;lt;code&amp;gt;dsh&amp;lt;/code&amp;gt; n’est pas installée sur l’hôte : elle est exécutée dans le conteneur, ce qui évite de mélanger l’installation DSH avec les outils de l’utilisateur &amp;lt;code&amp;gt;loic&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;fichiers-et-stockage&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Fichiers et stockage ==&lt;br /&gt;
&lt;br /&gt;
* Quadlet : &amp;lt;code&amp;gt;/home/loic/.config/containers/systemd/deepseek-harness.container&amp;lt;/code&amp;gt;&lt;br /&gt;
* Volume workspace : &amp;lt;code&amp;gt;/home/loic/.config/containers/systemd/deepseek-harness-workspace.volume&amp;lt;/code&amp;gt;&lt;br /&gt;
* Volume d’état : &amp;lt;code&amp;gt;/home/loic/.config/containers/systemd/deepseek-harness-state.volume&amp;lt;/code&amp;gt;&lt;br /&gt;
* Wrapper d’automatisation : &amp;lt;code&amp;gt;/home/loic/.config/systemd/user/deepseek-harness-autostart.service&amp;lt;/code&amp;gt;&lt;br /&gt;
* Workspace persistant : Nextcloud &amp;lt;code&amp;gt;/minidev/deepseek-harness&amp;lt;/code&amp;gt;&lt;br /&gt;
* État et journaux : volume Podman &amp;lt;code&amp;gt;deepseek-harness-state&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le workspace est monté dans le conteneur sous &amp;lt;code&amp;gt;/workspace&amp;lt;/code&amp;gt;. L’état DSH est monté sous &amp;lt;code&amp;gt;/root/.dsh&amp;lt;/code&amp;gt; et n’est pas mélangé au workspace Nextcloud.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;mode-dautomatisation&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Mode d’automatisation ==&lt;br /&gt;
&lt;br /&gt;
Le runtime est géré par Podman rootless et Quadlet, via systemd utilisateur. &amp;lt;code&amp;gt;deepseek-harness.container&amp;lt;/code&amp;gt; génère l’unité &amp;lt;code&amp;gt;deepseek-harness.service&amp;lt;/code&amp;gt;. Le wrapper &amp;lt;code&amp;gt;deepseek-harness-autostart.service&amp;lt;/code&amp;gt; est une unité &amp;lt;code&amp;gt;oneshot&amp;lt;/code&amp;gt; persistante, activée dans &amp;lt;code&amp;gt;default.target&amp;lt;/code&amp;gt;, qui tire l’unité Quadlet au démarrage de la session utilisateur.&lt;br /&gt;
&lt;br /&gt;
Le conteneur redémarre automatiquement après une panne grâce à :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ini&amp;quot;&amp;gt;Restart=on-failure&lt;br /&gt;
RestartSec=10&lt;br /&gt;
TimeoutStartSec=900&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Le démarrage automatique ne repose donc pas sur un cron ni sur une commande lancée manuellement à chaque connexion.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;démarrage&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Démarrage ==&lt;br /&gt;
&lt;br /&gt;
Démarrer le wrapper persistant (et donc le service DSH) :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;systemctl --user start deepseek-harness-autostart.service&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Le démarrage direct du service généré reste possible :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;systemctl --user start deepseek-harness.service&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Après une modification d’un Quadlet, régénérer les unités puis redémarrer :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;systemctl --user daemon-reload&lt;br /&gt;
systemctl --user restart deepseek-harness.service&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Pour activer le démarrage automatique s’il a été désactivé :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;systemctl --user enable deepseek-harness-autostart.service&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;span id=&amp;quot;arrêt&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Arrêt ==&lt;br /&gt;
&lt;br /&gt;
Arrêt normal du service généré :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;systemctl --user stop deepseek-harness.service&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Pour arrêter également le wrapper persistant :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;systemctl --user stop deepseek-harness-autostart.service&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Pour empêcher le redémarrage automatique à la prochaine session, désactiver le wrapper :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;systemctl --user disable deepseek-harness-autostart.service&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Ces commandes arrêtent le service et le conteneur, mais ne suppriment ni l’image, ni les volumes, ni les données du workspace.&lt;br /&gt;
&lt;br /&gt;
Pour un arrêt complet et explicite :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;systemctl --user stop deepseek-harness-autostart.service&lt;br /&gt;
systemctl --user stop deepseek-harness.service&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;span id=&amp;quot;contrôles&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Contrôles ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;systemctl --user status deepseek-harness.service&lt;br /&gt;
systemctl --user status deepseek-harness-autostart.service&lt;br /&gt;
podman ps --filter name=deepseek-harness&lt;br /&gt;
curl -fsS http://127.0.0.1:3080/ | head&lt;br /&gt;
journalctl --user -u deepseek-harness.service -n 100 --no-pager&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Contrôle de la commande DSH dans le conteneur :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;podman exec deepseek-harness dsh --help&lt;br /&gt;
podman exec deepseek-harness sh -lc &amp;#039;find /root/.dsh -maxdepth 2 -type f -print&amp;#039;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Le service utilise le réseau hôte, mais DSH et Caddy restent liés à la boucle locale ; aucun port DSH n’est publié directement sur le réseau.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;mise-à-jour-contrôlée&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Mise à jour contrôlée ==&lt;br /&gt;
&lt;br /&gt;
L’image actuellement utilisée est une image locale épinglée. Avant toute évolution, sauvegarder les Quadlets, le workspace &amp;lt;code&amp;gt;/minidev/deepseek-harness&amp;lt;/code&amp;gt; et le volume d’état &amp;lt;code&amp;gt;deepseek-harness-state&amp;lt;/code&amp;gt;. Après remplacement validé de l’image ou modification d’un Quadlet :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;systemctl --user daemon-reload&lt;br /&gt;
systemctl --user restart deepseek-harness.service&lt;br /&gt;
systemctl --user is-active deepseek-harness.service&lt;br /&gt;
curl -fsS http://127.0.0.1:3080/ &amp;gt;/dev/null&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Ne pas supprimer l’ancienne image ni les volumes tant que le nouveau service n’a pas été validé.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;retour-arrière-et-précautions&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Retour arrière et précautions ==&lt;br /&gt;
&lt;br /&gt;
La version DSH est épinglée à &amp;lt;code&amp;gt;0.1.0-rc.7&amp;lt;/code&amp;gt;. Pour revenir à l’état précédent, arrêter et désactiver le wrapper ; aucune suppression n’est nécessaire :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;systemctl --user disable --now deepseek-harness-autostart.service&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Les autres services locaux (OpenClaw, Ollama, Caddy et SGLang) ne sont pas modifiés par cette installation.&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
</feed>