Windows Install FR - Kheopsian/Hydranos GitHub Wiki
S'applique à Hydranos 4.4.
Cette page s'adresse à vous si vous faites tourner Hydranos sur un PC Windows. À la fin, hydranos.exe tournera depuis un dossier de votre choix, et vous saurez où vont ses fichiers, comment l'arrêter et le mettre à jour sans perdre les données de reprise, comment taper les exemples de commandes du wiki dans PowerShell, et quelles fonctions se comportent différemment sous Windows. Les termes comme store et état de reprise sont définis sur Concepts & glossaire.
Les versions publiées sont sur github.com/Kheopsian/Hydranos/releases. Windows a une seule build, x86 64 bits (amd64) :
hydranos-v4.4.0-windows-amd64.ziphydranos-v4.4.0-windows-amd64.zip.sha256
Vérifier le téléchargement est facultatif mais recommandé. Ouvrez PowerShell dans votre dossier Téléchargements (dans l'Explorateur de fichiers : clic droit sur un endroit vide du dossier › Ouvrir dans le Terminal, ou tapez cd $HOME\Downloads dans PowerShell), puis comparez l'empreinte avec le premier mot du fichier .sha256 (la casse n'a pas d'importance) :
(Get-FileHash .\hydranos-v4.4.0-windows-amd64.zip -Algorithm SHA256).Hash
Get-Content .\hydranos-v4.4.0-windows-amd64.zip.sha256Le zip contient un seul dossier, hydranos-v4.4.0-windows-amd64\, avec :
| Fichier | Ce que c'est |
|---|---|
hydranos.exe |
Tout le programme : interface web, API REST, shim qBittorrent, serveur MCP et tous les moteurs, dans un seul processus. C'est celui que vous lancez. |
hydranos-update.exe |
Le programme de mise à jour. Gardez-le à côté de hydranos.exe : l'entrée Check for updates de l'icône de notification le cherche là. |
default.toml.example |
Le modèle de configuration. Hydranos écrit lui-même ce même modèle au premier démarrage, vous pouvez donc ignorer ce fichier (copié à la main, il garde data_dir = "/config", que Windows lit comme \config sur le lecteur courant). |
README.md |
Une copie des notes Windows du paquet. |
Depuis la 4.4, le zip ne contient plus hydranos-engine.exe. Une installation mise à jour depuis la 4.3 a encore ce fichier : rien ne l'utilise et vous pouvez le supprimer. Il n'existe pas de mode --agent-only ; plusieurs machines se gèrent avec des nœuds (Nœuds & plusieurs machines).
Copiez le contenu de ce dossier dans un dossier où vous pouvez écrire sans droits d'administrateur, par exemple C:\Hydranos ou C:\Users\<you>\Hydranos. Pas sous C:\Program Files : Hydranos écrit sa config, son journal et son état à côté du fichier de configuration, et Program Files est en lecture seule pour les programmes normaux.
SmartScreen. Les exécutables publiés ne sont pas signés (la build de release ne fait aucune signature). Au premier lancement de hydranos.exe, Windows peut afficher « Windows a protégé votre ordinateur » : cliquez sur Informations complémentaires › Exécuter quand même. Cela peut se reproduire après qu'une mise à jour a remplacé les fichiers. Votre antivirus peut aussi demander confirmation ; c'est attendu pour un programme non signé téléchargé depuis GitHub.
hydranos.exe accepte ces options en ligne de commande : --config <path> (ou --config=<path>), --console, --version (-V) et --help (-h), plus deux commandes, reset-password <password> [path\to\default.toml] et hash-password <password> (voir Sécurité & accès). Un argument inconnu n'empêche pas le démarrage : Hydranos affiche hydranos: ignoring unknown argument "…"; starting anyway (see hydranos --help) et démarre. Cet avertissement n'est visible que si Hydranos tourne dans une console (voir Premier démarrage).
Sans --config, la config est default.toml à côté de hydranos.exe. Dézippé dans C:\Hydranos et lancé par un double-clic, chaque fichier atterrit dans ce dossier :
| Quoi | Où (hydranos.exe dans C:\Hydranos, sans --config ; ou --config C:\Hydranos\default.toml) |
|---|---|
| Fichier de configuration |
C:\Hydranos\default.toml (écrit au premier démarrage, avec une nouvelle clé API) |
| Fichier journal |
C:\Hydranos\hydranos.log (rotation à 128 Mio ; les quatre fichiers précédents sont gardés sous hydranos.log.1 à hydranos.log.4) |
Dossier de données (data_dir) |
C:\Hydranos\data, enregistré dans le fichier sous la forme C:/Hydranos/data
|
| Store et télémétrie |
C:\Hydranos\data\hydra.db, C:\Hydranos\data\bench.db
|
| État de reprise par moteur |
C:\Hydranos\race\, C:\Hydranos\hoard\ (chacun avec resume\ et state.db) |
| Vos données de torrents | là où pointent les chemins de sauvegarde de vos catégories, par ex. D:\Torrents\tv
|
Le contenu de chaque fichier est décrit sur Architecture.
Si vous venez d'une 4.3 lancée sans --config. La 4.3 utilisait /config/default.toml, que Windows lit comme \config\default.toml sur le lecteur courant (C:\config\ pour un double-clic depuis C:\Hydranos). Quand il n'y a pas de default.toml à côté de hydranos.exe et que cet ancien fichier existe, la 4.4 continue de l'utiliser (avec tout ce qui est à côté), si bien que rien ne semble disparaître. Son avis (hydranos: using /config/default.toml (the 4.3 location); move it beside hydranos.exe or pass --config, avec des barres obliques) est affiché avant qu'une console soit attachée : vous ne le verrez donc pas dans une fenêtre de console. Pour passer au nouvel emplacement : quittez Hydranos, déplacez le contenu de C:\config\ dans C:\Hydranos\, puis changez data_dir dans default.toml de "/config/data" (ce qu'écrivait la 4.3) en "C:/Hydranos/data", et relancez. Ou laissez-le où il est et lancez avec --config "C:\config\default.toml".
Pour garder la config ailleurs, passez --config. Créez un raccourci : clic droit sur hydranos.exe › Créer un raccourci (sous Windows 11 : Afficher d'autres options d'abord), ouvrez ses Propriétés, et mettez dans Cible, par exemple :
"C:\Hydranos\hydranos.exe" --config "D:\HydranosData\default.toml"
Gardez les guillemets : ils sont obligatoires dès qu'un nom de dossier contient une espace ("C:\Users\Jean Dupont\Hydranos\hydranos.exe" --config "C:\Users\Jean Dupont\Hydranos\default.toml"). Utilisez ce raccourci à partir de maintenant. Le journal, data et les dossiers des moteurs suivent alors le fichier de configuration, pas le .exe.
Deux règles pour ce dossier :
-
Gardez-le sur un disque local. Hydranos traite un chemin UNC (
\\server\share) ou un lecteur réseau mappé comme un système de fichiers réseau. Le mode de journalisation du store est choisi en conséquence, et un store déplacé sur un lecteur réseau après avoir été utilisé en local peut faire démarrer Hydranos en mode de secours (voir Exploiter Hydranos). -
Les chemins dans
default.tomldemandent des barres obliques ou des apostrophes simples. TOML traite\entre guillemets doubles comme un échappement, doncdata_dir = "C:\Hydranos\data"ne se lit pas et Hydranos s'arrête. Écrivez"C:/Hydranos/data"ou'C:\Hydranos\data'. Cette règle ne vaut que pour le fichier TOML : dans les champs de l'interface web (Chemin d'enregistrement (Save Path) de la catégorie, Déplacer vers un dossier… (Set location…), dossiers surveillés), tapez des chemins Windows normaux commeD:\Media\Movies. L'action de workflow move files to a folder accepte la même chose : un chemin de lecteur (D:\archive) ou un chemin UNC ;\archive, sans le lecteur, est refusé (voir Workflows).
Deux façons, choisissez-en une :
- Depuis l'interface web (le plus simple) : Config › Paramètres avancés (default.toml) (Advanced settings (default.toml)), changez la valeur, cliquez sur Enregistrer les réglages (Save settings). Les réglages qui demandent un redémarrage sont signalés à l'enregistrement.
-
À la main : quittez Hydranos depuis l'icône de notification, ouvrez
C:\Hydranos\default.tomldans le Bloc-notes, modifiez, enregistrez, relancez Hydranos. Hydranos ne lit le fichier qu'au démarrage.
Pour redémarrer, utilisez le redémarrage de l'interface web (ou icône de notification › Quit Hydranos, attendez que hydranos.exe ait disparu du Gestionnaire des tâches, et relancez-le). Depuis la 4.4, le redémarrage fait le même arrêt propre que Quit (état de reprise enregistré), et sous Windows le processus qui s'arrête lance lui-même son successeur, avec les mêmes arguments de ligne de commande, avant de quitter (restart: successor started dans hydranos.log). Seule exception : un service, voir Démarrer avec Windows.
Double-cliquez sur hydranos.exe (ou lancez votre raccourci). Aucune fenêtre de console ne s'ouvre : hydranos.exe est un programme Windows (graphique). Une icône Hydranos apparaît dans la zone de notification à côté de l'horloge (elle peut se trouver sous la flèche des icônes cachées ^), et l'interface web répond sur http://127.0.0.1:8199.
Pour voir le journal en direct :
- Lancez-le depuis PowerShell ou
cmd: il s'attache à cette fenêtre et y affiche son journal. - Ajoutez
--consoleà la Cible du raccourci : il ouvre sa propre fenêtre de console. Préférez icône de notification › Quit à la croix de cette fenêtre : fermer la console lance bien l'arrêt propre, mais Windows termine le processus quelques secondes plus tard, donc l'enregistrement peut être interrompu (voir Arrêter proprement).
Ce qui est écrit avant que la console soit attachée n'apparaît jamais dans une fenêtre de console : --version, --help, hash-password et le message sur l'emplacement 4.3 n'affichent rien dans la fenêtre PowerShell ou cmd, même lancés depuis celle-ci (lu dans le code, non testé sous Windows). Redirigés, ils écrivent bien : .\hydranos.exe --version | Out-String, ou > out.txt. C'est ainsi que hydranos-update lit la version installée. reset-password écrit quand même le nouveau hash dans default.toml ; vérifiez avec le Bloc-notes que [auth] a un nouveau password_hash, puis lancez Hydranos.
Le journal est aussi écrit dans hydranos.log à côté de la config, sauf si la variable d'environnement HYDRANOS_LOG_STDOUT est définie (à n'importe quelle valeur, même 0). Si Hydranos ne semble pas démarrer, lisez d'abord ce fichier.
Faites-le dans cet ordre :
-
Créez d'abord le compte admin. Ouvrez
http://127.0.0.1:8199sur ce PC et suivez Premier démarrage sur Installation & premier démarrage. Tant que le compte n'existe pas, tout appelant de votre réseau local (adresse de bouclage, privée ou lien-local) qui peut joindre le port 8199 peut le créer ; une adresse publique reçoit un 403 (voir Sécurité & accès). Les connexions de ce PC vers127.0.0.1ne sont pas filtrées par le Pare-feu Windows (comportement de Windows, non testé par le mainteneur), vous n'avez donc pas besoin de répondre à l'invite du pare-feu pour cela. -
Répondez ensuite à l'invite du Pare-feu Windows. Elle apparaît dans les premières secondes, quand Hydranos ouvre le port 8199 sur toutes les interfaces, puis les ports des moteurs. Cochez uniquement Réseaux privés et cliquez sur Autoriser l'accès. Ne cliquez pas sur Annuler : Windows peut alors enregistrer une règle de blocage pour
hydranos.exe, et une règle de blocage l'emporte sur toute règle d'autorisation ajoutée plus tard (comportement de Windows, non testé par le mainteneur ; supprimez-la dans Pare-feu Windows Defender avec fonctions avancées de sécurité › Règles de trafic entrant).
Hydranos écoute sur le port 8199 (TCP) pour l'interface web et les API, et sur 16171 (race) et 16172 (hoard), en TCP et UDP, pour les pairs ; la liste complète est sur Installation & premier démarrage. Pour créer les règles vous-même, ouvrez un PowerShell élevé (menu Démarrer, tapez PowerShell, clic droit › Exécuter en tant qu'administrateur) et lancez, pour les ports des pairs uniquement :
New-NetFirewallRule -DisplayName "Hydranos peers TCP" -Direction Inbound -Program "C:\Hydranos\hydranos.exe" -Protocol TCP -LocalPort 16171,16172 -Action Allow -Profile Private
New-NetFirewallRule -DisplayName "Hydranos peers UDP" -Direction Inbound -Program "C:\Hydranos\hydranos.exe" -Protocol UDP -LocalPort 16171,16172 -Action Allow -Profile PrivateN'ajoutez une règle pour TCP 8199 que si vous voulez accéder à l'interface web depuis d'autres machines de votre réseau. Si vous ne l'utilisez que depuis ce PC, mettez aussi api_host = "127.0.0.1" dans [daemon] et redémarrez ; par défaut, il écoute sur toutes les interfaces (api_host = "0.0.0.0"). L'icône de notification ouvre 127.0.0.1 dans les deux cas.
Votre box ou routeur. Pour que les pairs extérieurs à votre domicile puissent vous joindre, les ports d'écoute doivent être redirigés sur votre routeur. Hydranos essaie UPnP, qui redirige TCP et UDP ; NAT-PMP vers le routeur n'est pas disponible sous Windows (voir Ce qui ne marche pas sous Windows). Si votre routeur n'a pas d'UPnP, redirigez 16171 et 16172, TCP et UDP, vers ce PC depuis la page d'administration du routeur. Voir Réseau : ports & redirection.
| Action | Résultat |
|---|---|
| Survol |
Hydranos 4.x.y (la version en cours), le nombre de torrents, et up … MB down … MB, actualisés toutes les 2 s. Les deux chiffres sont la somme des compteurs cumulés d'envoi/réception des torrents actuellement chargés, pas le trafic de cette session. |
| Double-clic | Ouvre http://127.0.0.1:<api_port> dans votre navigateur. |
| Clic droit › Open Hydranos | Pareil. |
| Clic droit › Check for updates | Ouvre une fenêtre cmd qui exécute hydranos-update.exe --dir <folder of hydranos.exe> (voir Mise à jour). |
| Clic droit › Quit Hydranos | Arrête Hydranos proprement. |
Un arrêt propre ferme l'API (les onglets ouverts de l'interface web ne la retiennent plus : leurs connexions en direct se terminent d'elles-mêmes, et l'attente est bornée à 5 s), envoie stopped aux trackers (5 s au plus), puis enregistre l'état de reprise de chaque moteur (un thread par moteur) et quitte. Il commence dès qu'il est demandé, avec une ligne WARN <what>: draining the API and flushing resume data dans hydranos.log. Le code écoute :
| Déclencheur |
<what> dans le journal |
Fiable ? |
|---|---|---|
| icône de notification › Quit Hydranos |
tray quit (après tray: quit chosen, stopping cleanly) |
Oui : la façon recommandée. |
| La demande d'arrêt du programme de mise à jour (voir Mise à jour) |
tray quit (après stop requested by the updater) |
Oui. |
Le redémarrage de l'interface web, POST /api/restart, POST /api/settings/restart
|
restart request |
Oui ; Hydranos redémarre ensuite tout seul. |
| Ctrl+C dans la console où tourne Hydranos | Ctrl+C |
Oui. |
| Ctrl+Pause dans cette console | Ctrl+Break |
Oui. |
| Fermer cette fenêtre de console (sa croix) | console closed |
Windows termine le processus quelques secondes après cet événement, l'enregistrement est donc une course : au mieux un enregistrement partiel. |
| Fermer votre session Windows | sign-out |
Non testé sous Windows. Ces deux événements n'atteignent un programme que par une console, et Microsoft documente qu'un programme qui a une fenêtre (l'icône de notification en est une) ne les reçoit pas. N'y comptez pas. |
| Arrêter ou redémarrer Windows | system shutdown |
Comme la fermeture de session. |
L'icône disparaît tout de suite, avant l'enregistrement : le signe que l'enregistrement est terminé, c'est la disparition de hydranos.exe du Gestionnaire des tâches (ou shutdown flush complete dans hydranos.log).
Fin de tâche dans le Gestionnaire des tâches, taskkill /F et un plantage mettent fin à Hydranos sans l'enregistrement.
Ce que vous perdez chaque fois que l'enregistrement n'a pas lieu (ou est interrompu) : jusqu'aux 300 dernières secondes de progression des pièces, des compteurs d'envoi/réception et du temps de seed par moteur (l'état de reprise est enregistré toutes les 300 s, et immédiatement quand un torrent est ajouté, se termine ou est déplacé). Les torrents touchés par la progression perdue sont revérifiés au démarrage suivant ; ce n'est pas une revérification de toute votre bibliothèque. Détails sur Exploiter Hydranos.
Si vous éteignez le PC tous les soirs, faites d'icône de notification › Quit Hydranos l'étape qui précède l'arrêt, et attendez que hydranos.exe ait disparu du Gestionnaire des tâches. Hydranos 4.4 essaie d'enregistrer à l'arrêt de Windows, mais comme le dit le tableau, ce n'est pas une chose sur laquelle compter.
HYDRANOS_STOP_TIMEOUT borne l'enregistrement (120 s par défaut ; 120, 60s, 2m ou 1m30s). Au-delà, Hydranos quitte avec ce qui est déjà écrit et journalise shutdown flush hit HYDRANOS_STOP_TIMEOUT; leaving with what is saved. Un arrêt complet dure donc au plus 130 s environ (5 s de vidange, 5 s pour les trackers, puis l'enregistrement).
À l'ouverture de session (recommandé pour un PC de bureau). Appuyez sur Win+R, tapez shell:startup, et placez un raccourci vers hydranos.exe (avec votre --config, si vous en utilisez un) dans le dossier qui s'ouvre. Vous avez l'icône de notification et son Quit Hydranos propre.
En tant que service (avancé, non testé par le mainteneur). Un wrapper de service comme NSSM (à télécharger séparément sur son propre site) peut lancer hydranos.exe :
nssm install Hydranos "C:\Hydranos\hydranos.exe" "--config C:\Hydranos\default.toml"
nssm start Hydranos
Passez --config avec un chemin absolu, pour que l'emplacement des fichiers ne dépende jamais du dossier de travail du service. Un service tourne dans sa propre session, il n'y a donc pas d'icône de notification ; utilisez l'interface web. L'arrêt d'un service n'est propre que si le wrapper envoie Ctrl+C ou Ctrl+Pause à une console à laquelle Hydranos est attaché (il n'en a une à lui que lancé avec --console) ; qu'un wrapper donné le fasse n'a pas été vérifié pour la 4.4. Si perdre jusqu'à 300 s d'état de reprise à chaque arrêt vous gêne, préférez le dossier de démarrage.
Sous un service :
-
Redémarrez par le service (
nssm restart Hydranos), pas avec le redémarrage de l'interface web. Le redémarrage de l'interface fait lancer à Hydranos son propre successeur hors du wrapper puis quitter avec le code 75, ce à quoi un wrapper peut aussi répondre en lançant une copie : deux instances sur les mêmes fichiers et les mêmes ports (lu dans le code, non testé). -
Arrêtez le service avant une mise à jour (
nssm stop Hydranos, lancez le programme de mise à jour,nssm start Hydranos). La demande d'arrêt du programme de mise à jour est un événementLocal\, qui n'atteint que les processus de votre propre session, pas un service (d'après les règles de Windows sur les noms d'objets, non testé).
Un raccourci ne peut pas définir de variable d'environnement. Hydranos ne les lit qu'au démarrage (exemples : RUST_LOG, HYDRANOS_LOG_STDOUT, TYPHON_ANNOUNCE_PROXY ; la liste complète est sur Config : environnement, CLI & signaux).
-
Pour un seul démarrage, depuis PowerShell :
$env:RUST_LOG = "info"; & "C:\Hydranos\hydranos.exe" --config "C:\Hydranos\default.toml"
-
De façon permanente, pour votre compte : lancez
setx RUST_LOG infodans PowerShell, ou passez par Démarrer › tapezenvironnement› Modifier les variables d'environnement pour votre compte. Les programmes déjà lancés gardent les anciennes valeurs : quittez Hydranos depuis l'icône de notification et relancez-le. Si un lancement depuis le dossier de démarrage ne voit toujours pas la valeur, fermez votre session et rouvrez-la. -
Pour la supprimer : effacez-la dans la même fenêtre Modifier les variables d'environnement pour votre compte (
setxne sait pas supprimer).
La plupart des pages du wiki montrent des commandes curl écrites pour Linux, coupées sur plusieurs lignes avec \. Sous Windows :
- Tapez
curl.exe, pascurl: dans Windows PowerShell 5.1,curlest un alias deInvoke-WebRequest, qui prend d'autres options.curl.exeest inclus dans Windows 10 et 11. - Mettez toute la commande sur une seule ligne (retirez les
\de fin de ligne), ou terminez plutôt chaque ligne par un accent grave`. - Utilisez
http://127.0.0.1:8199et des chemins Windows.
Votre clé API se trouve dans Config › Paramètres avancés (default.toml) › Général (General) › api_key, ou :
Select-String -Path "C:\Hydranos\default.toml" -Pattern '^api_key'Un appel en lecture seule, avec la commande propre à PowerShell :
Invoke-RestMethod -Uri http://127.0.0.1:8199/api/categories -Headers @{ "X-Api-Key" = "YOUR_API_KEY" }Les envois de fichiers (formulaires multipart -F) sont plus simples avec curl.exe : le Invoke-RestMethod de Windows PowerShell 5.1 n'a pas d'option -Form.
Les règles (téléchargement, revérification ou mode seed, et la disposition exacte des dossiers) sont sur Ajouter des torrents & données existantes ; lisez d'abord Téléchargement, revérification ou mode seed là-bas. En bref : sans mode seed, un ajout sur des données existantes les revérifie (il lit chaque octet une fois). Le mode seed, qui commence à seeder sans lire les données, se demande avec la case Skip the hash check, the data is already on disk de l'onglet d'ajout, ou avec seed_mode=true sur l'API REST, plus pratique pour tout un dossier.
Version Windows, pour des films sous D:\Media\Movies :
- Créez une catégorie, par ex.
movies, avec Modehoardet Chemin d'enregistrementD:\Media\Movies(onglet Catégories (Categories)). - Vérifiez la disposition. Un torrent multi-fichiers nommé
Film (2020)doit trouver ses fichiers dansD:\Media\Movies\Film (2020)\, sous exactement ce nom. Si votre dossier porte un autre nom, les données ne sont pas trouvées : renommez le dossier, sinon le torrent se télécharge à nouveau (en mode seed : il annonce des données qu'il n'a pas). - Ajoutez un
.torrent:curl.exe -H "X-Api-Key: YOUR_API_KEY" -F "torrent=@C:\Torrents\Film (2020).torrent" -F "category=movies" -F "seed_mode=true" http://127.0.0.1:8199/api/torrents/upload
- Ou tous les
.torrentd'un dossier :Get-ChildItem "C:\Torrents\*.torrent" | ForEach-Object { curl.exe -s -H "X-Api-Key: YOUR_API_KEY" -F "torrent=@$($_.FullName)" -F "category=movies" -F "seed_mode=true" http://127.0.0.1:8199/api/torrents/upload }
N'utilisez seed_mode=true que si vous savez que les données sont complètes et en place ; sinon, retirez-le et laissez Hydranos revérifier. Si vous venez de qBittorrent, l'assistant d'import le fait pour vous : Migrer depuis qBittorrent.
Depuis l'icône de notification (ou à la main). Check for updates exécute hydranos-update.exe --dir <its folder> dans une fenêtre cmd. Vous pouvez aussi le lancer vous-même ; passez toujours --dir, car le programme de mise à jour lit la version installée en exécutant hydranos.exe --version dans ce dossier (--dir vaut par défaut le dossier courant, et lancé d'ailleurs il affiche installed: unknown) :
"C:\Hydranos\hydranos-update.exe" --dir "C:\Hydranos" --check
"C:\Hydranos\hydranos-update.exe" --dir "C:\Hydranos"
"C:\Hydranos\hydranos-update.exe" --dir "C:\Hydranos" --tag v4.4.0
Ses options : --check, --dir <folder>, --tag <vX.Y.Z>, --yes et, depuis la 4.4, --config <file> (par défaut : default.toml dans --dir). Le programme de mise à jour lit cette config pour envoyer ses propres requêtes (API GitHub, le zip) comme le démon envoie les siennes : [daemon] egress, le kill switch et le mode réseau (voir VPN & sortie réseau). Quand cette route n'est pas la route directe, ou que le kill switch est armé, il affiche d'abord network: …. Un fichier absent signifie la route par défaut ; un fichier qui n'est pas du TOML valide arrête le programme de mise à jour. L'icône de notification ne passe jamais --config : si votre config n'est pas à côté de hydranos.exe, lancez le programme de mise à jour à la main avec --config.
Il affiche la version installée et la version disponible, télécharge le zip depuis les releases GitHub, et le vérifie avec le .sha256 publié. Il refuse d'installer si la somme de contrôle manque ou ne correspond pas. Il demande ensuite replace the binaries with <tag>? [y/N] (--yes saute la question). Seuls les fichiers du programme déjà présents dans le dossier sont remplacés : hydranos.exe et hydranos-update.exe (et hydranos-engine.exe, si un zip de release en contenait un ; ceux de la 4.4 non). default.toml, data\, les dossiers des moteurs et le journal ne sont pas dans l'archive et ne sont jamais touchés. --tag installe une version donnée, y compris plus ancienne.
Avant de remplacer quoi que ce soit, il doit arrêter Hydranos. Depuis la 4.4, il le demande par un événement nommé, Local\HydranosStop, qu'Hydranos attend : Hydranos journalise stop requested by the updater et fait le même arrêt propre qu'icône de notification › Quit (état de reprise enregistré). Quand cet événement n'existe pas, le programme de mise à jour se rabat sur taskkill /IM hydranos.exe /T sans /F. Cela arrive avec un Hydranos antérieur à la 4.4, et avec une 4.4 encore sur son écran de démarrage : l'événement, comme l'icône de notification, n'existe qu'une fois les torrents chargés (tant que l'écran de démarrage s'affiche, l'icône n'a pas non plus de Quit). taskkill sans /F n'arrête ni l'un ni l'autre, car Hydranos n'a pas de fenêtre qu'il pourrait fermer. Dans les deux cas, il attend ensuite jusqu'à 60 secondes que hydranos.exe ait disparu. Donc :
- Cliquez sur Check for updates (ou lancez le programme de mise à jour) et répondez
y. - Attendez. Hydranos s'arrête tout seul, le programme de mise à jour remplace les binaires et affiche
updated to <tag>. Start hydranos again. - Relancez Hydranos vous-même : le programme de mise à jour ne le fait pas (SmartScreen peut redemander : Informations complémentaires › Exécuter quand même).
Bug connu en 4.4 : une mise à jour lancée alors qu'Hydranos est encore sur son écran de démarrage ne peut pas l'arrêter : il n'y a pas encore d'événement d'arrêt et
taskkillest ignoré, donc elle se termine toujours parstill running after 60s, rien n'est remplacé. Trouvé en lisant le code, non reproduit. Attendez que l'écran de démarrage ait disparu avant de mettre à jour.
S'il se termine par hydranos is still running after 60s -- stop it yourself, nothing was replaced, rien n'a changé. Un arrêt propre peut durer plus de 60 s, puisque l'enregistrement seul peut prendre jusqu'à HYDRANOS_STOP_TIMEOUT (120 s par défaut) sur une grosse bibliothèque ; Hydranos continue de s'arrêter quoi qu'il arrive. Attendez que hydranos.exe ait disparu du Gestionnaire des tâches et relancez le programme de mise à jour.
Mettre à jour de la 4.3.x vers la 4.4. Le programme de mise à jour qui tourne est celui de la 4.3, et l'Hydranos qu'il doit arrêter n'a pas d'événement d'arrêt : quittez d'abord, comme en 4.3. Lancez la mise à jour, attendez la question [y/N], icône de notification › Quit Hydranos, attendez que hydranos.exe ait disparu du Gestionnaire des tâches, puis répondez y : le programme de mise à jour trouve Hydranos arrêté et remplace les binaires.
Sous un service, arrêtez le service avant la mise à jour (voir Démarrer avec Windows).
flowchart TD
A["hydranos-update.exe<br/>Check for updates (icône) ou à la main"] --> R["Lit la route dans --config<br/>(par défaut : default.toml dans --dir)"]
R -- "fichier TOML invalide" --> X0["Erreur, rien n'est remplacé"]
R -- "lu, ou pas de fichier" --> B["Affiche le tag installé et le tag disponible"]
B --> C{"--check passé ?"}
C -- oui --> Z["Sortie, rien n'a changé"]
C -- non --> D{"Même tag installé<br/>et pas de --tag ?"}
D -- oui --> Z
D -- non --> E["Télécharge le zip de la release"]
E --> F{"Correspond à son .sha256 publié ?"}
F -- "non, ou pas de .sha256" --> X["Erreur, rien n'est remplacé"]
F -- oui --> G{"--yes passé, ou vous répondez y ?"}
G -- non --> Z2["Annulé, rien n'est remplacé"]
G -- oui --> H{"hydranos.exe toujours lancé ?"}
H -- non --> J["Remplace seulement les binaires<br/>déjà présents dans le dossier"]
H -- oui --> K{"Événement d'arrêt Local HydranosStop<br/>présent ? (4.4 ou plus, torrents chargés)"}
K -- oui --> S["Le signale : Hydranos fait<br/>l'arrêt propre, comme Quit (icône)"]
K -- "non : Hydranos plus ancien, ou 4.4 encore en chargement" --> T["taskkill sans /F,<br/>ignoré (pas de fenêtre)"]
S --> L{"Disparu en 60 s ?"}
T --> L
L -- non --> X2["still running after 60s,<br/>rien n'est remplacé"]
L -- oui --> J
J --> M["Relancez Hydranos vous-même"]
À la main. Quittez depuis l'icône de notification, téléchargez et vérifiez le nouveau zip, copiez les fichiers de son dossier par-dessus les anciens dans C:\Hydranos, relancez. Votre config et vos données restent où elles sont.
Le badge màj (update) dans l'en-tête de l'interface web indique seulement qu'une version plus récente existe ; voir Exploiter Hydranos.
La configuration à utiliser sous Windows est un client VPN à l'échelle du système (l'application de votre fournisseur, ou le client officiel WireGuard/OpenVPN) qui fait du tunnel la route par défaut de tout le PC. Hydranos le suit alors comme n'importe quel autre programme. Activez le kill switch du client s'il en a un : le kill switch d'Hydranos ne peut pas voir un VPN à l'échelle du système (voir plus bas).
Sur l'onglet Réseau (Config › Paramètres avancés (default.toml) › Réseau (Network)), les cinq modes se comportent ainsi sous Windows :
| Carte | Sous Windows |
|---|---|
| Direct | Celui à utiliser avec un VPN à l'échelle du système. Il n'y a pas de champs d'interface : Interface per engine affiche « Épingler un engine à une interface n'est possible que sous Linux : sur cette plateforme, ses connexions aux pairs partiraient par la route par défaut. Lancez plutôt votre client VPN pour tout le système. » (Pinning an engine to an interface is Linux-only: on this platform its peer connections would leave by the default route. Run your VPN client system-wide instead.) |
| WireGuard, managed by Hydranos | Grisé et non sélectionnable, avec « Le WireGuard géré nécessite Linux. Sur ce système, montez le tunnel vous-même et choisissez son interface en mode Direct. » (Managed WireGuard needs Linux. On this system, bring the tunnel up yourself and pick its interface in Direct mode.) L'API le refuse avec un 409. La seconde moitié du message ne s'applique pas sous Windows (il n'y a pas d'interface à choisir) : lancez plutôt le client WireGuard à l'échelle du système. Voir WireGuard géré. |
| Gluetun | Pas refusé, mais ne le choisissez pas. Il est prévu pour un Hydranos qui tourne dans le réseau de gluetun (Docker sous Linux). Un hydranos.exe natif sort toujours par la route par défaut, alors que le kill switch signale chaque moteur comme couvert (inside gluetun's network: gluetun's firewall is the kill switch). |
| Proxy SOCKS5 (SOCKS5 proxy), Proxy SOCKS5 + relais PROXY-v2 (SOCKS5 + PROXY-v2 relay) | Rien en eux ne dépend de la plateforme (non testé par le mainteneur sous Windows). |
-
bind_interfaceest refusé sous Windows depuis la 4.4 : l'épinglage d'interface est réservé à Linux.POST /api/network/modeetPOST /api/enginesrépondent 400 à une valeur non vide, et le formulaire + Add an engine a son champ d'interface désactivé (Linux seulement (Linux only)). Les paramètres avancés et une modification à la main ne vous en empêchent pas, mais un moteur dont ledefault.tomlle définit encore démarre hors du réseau : pas d'écoute, pas de connexion sortante, pas d'annonce, ni DHT ni LSD, avec un WARN au démarrage (… -- this engine will not announce, accept or dial any peer until the key is removed). Retirez la clé et redémarrez. -
Laissez Interface du démon (Daemon interface) vide. L'onglet Réseau et
POST /api/network/egressacceptent un[daemon] bind_interfacesous Windows, mais chaque requête du démon lui-même (listes des trackers et du filtre IP, vérification de mise à jour, webhooks, URL.torrent, ethydranos-update) qui sort en direct ou par[proxy](egressdirectouproxy, ouautoquand aucun moteur ne prête de proxy ni de tunnel) est alors refusée avec[daemon] bind_interface "…" cannot be applied on this platform; set a proxy instead (the request is refused rather than sent by the default route). Une route empruntée à un moteur (engine:<id>, ouautoen mode SOCKS5 avec un proxy de moteur) n'est pas touchée. Définir[proxy]ne lève pas le refus tant que l'interface est définie : pour faire passer ces requêtes ailleurs, videz Interface du démon et utilisez[proxy](voir VPN & sortie réseau). -
Le kill switch et un VPN à l'échelle du système. Le kill switch d'Hydranos ne connaît que ses propres sorties (proxy, tunnel, interface). Armé (
[daemon] kill_switch = true, ou un mode SOCKS5), il bloque un moteur qui n'en a aucune sauf si sa section indiqueallow_direct = true: avec un VPN à l'échelle du système, laissez le kill switch désarmé (c'est le cas en mode Direct) ou marquez ces moteursallow_direct. C'est le kill switch du client système qui vous protège. -
Port redirigé. Si votre fournisseur vous donne un port redirigé, mettez-le dans
listen_portsous[hoard](ou[race]), et ajoutezauto_port_forward = falseen haut dedefault.toml(avant[daemon]) ; puis redémarrez. - Vérification. VPN activé, l'IP de sortie (Exit IP) de l'en-tête doit afficher l'adresse du VPN. La page de profil de votre tracker, qui liste l'adresse depuis laquelle vous avez annoncé, est la vérification qui fait foi.
Ce que chaque partie de Hydranos envoie et où, et pourquoi un tunnel à l'échelle du système est la configuration sûre, est expliqué sur VPN & sortie réseau.
-
Épinglage d'interface (
bind_interface) : refusé, et un moteur qui l'a encore dans son fichier reste hors du réseau. Voir VPN sous Windows ci-dessus. - WireGuard géré : Linux seulement ; la carte est grisée. Voir VPN sous Windows ci-dessus.
-
[daemon] bind_interface: accepté par l'onglet Réseau, puis chaque requête du démon qui n'emprunte pas la route d'un moteur est refusée. Laissez Interface du démon vide. -
NAT-PMP. La redirection de port automatique (
auto_port_forward, activée par défaut) ne trouve pas la passerelle sous Windows (NAT-PMP: no default gateway), donc seul UPnP (TCP et UDP) est tenté. Derrière un VPN qui propose la redirection de port via NAT-PMP, réglez le port à la main. -
TRIM après le drain. Refusé avec
TRIM is not available on this system, et l'option est désactivée pour ce volume jusqu'à ce que vous la réactiviez ou redémarriez. Windows fait déjà lui-même le TRIM des SSD à mesure que les fichiers sont supprimés (comportement de Windows, pas quelque chose que fait Hydranos). Voir Drain race & graduation. -
Fichiers de listes du filtre IP. Une source de liste de blocage doit être une URL
http(s)://ou un chemin commençant par/;C:\…est refusé. Utilisez une URL. -
Diagnostics mémoire. L'allocateur jemalloc et ses dumps de tas n'existent que sous Linux ; Windows utilise l'allocateur du système. Aucune différence en usage normal. Les chiffres système lus dans
/procsous Linux (iowait, ARC ZFS, nombre de fichiers ouverts) ne sont pas mesurés sous Windows.
Tout le reste (catégories, race et hoard, le shim qBittorrent, les workflows, les nœuds) se comporte comme sous Linux. Les problèmes propres à une plateforme sont listés sur Dépannage.
Faites maintenant Premier démarrage sur Installation & premier démarrage : créez le compte admin, trouvez votre clé API, créez une catégorie et ajoutez votre premier torrent.