Repository navigation
Configuration Global FR
S'applique à Hydranos 4.4.
Cette page est la référence clé par clé de toutes les parties de default.toml qui ne concernent pas un moteur : les clés de premier niveau, [daemon], [proxy], [network], [auth], [mcp], [dedup], [rss], [vpn_speedtest], [bench], les cinq tables par hôte de tracker, et les sections et clés qu'Hydranos signale au démarrage comme ignorées. Pour chaque clé, vous trouvez son type, la valeur qu'écrit le modèle livré, la valeur qu'utilise le code quand la clé est absente, si la 4.4 la lit vraiment, et quand une modification prend effet. Les clés des moteurs ([race], [hoard], blocs de moteur, [race_drain]) sont sur Config : moteurs & drain race. Comment le fichier est trouvé, créé et modifié est expliqué sur Configuration : vue d'ensemble. Les termes comme store, état de reprise et moteur sont définis sur Concepts & glossaire.
| Colonne | Signification |
|---|---|
| Modèle | La valeur écrite par le configs/default.toml livré. « — » = le modèle ne contient pas la clé. |
| Si absente | La valeur qu'utilise le code quand la clé manque dans votre fichier. Elle peut différer du modèle : une clé que vous supprimez ne revient pas à la valeur du modèle. |
| Statut | Fonctionne = lue et fait ce qu'elle annonce. Ignorée = acceptée (le fichier se charge quand même) mais lue par rien. Ignorée, signalée = idem, et le journal de démarrage la nomme (voir Sections et clés signalées au démarrage). |
| Effet | Ce que fait la clé en 4.4, quand elle est lue. |
| Prise d'effet | À chaud = la requête suivante voit la nouvelle valeur, à condition de l'avoir changée via l'interface web ou l'API (elles remplacent la configuration en cours). Une modification du fichier à la main est lue au démarrage suivant, ou dès qu'un enregistrement via l'interface web ou l'API réécrit le fichier (ce qui recharge tout le fichier). Redémarrage = lue une seule fois au démarrage. |
| Interface | Où la clé peut être changée dans l'interface web. « Paramètres avancés › X » signifie Config › Paramètres avancés (default.toml) (Advanced settings (default.toml)) › sous-onglet X (Général (General), Session Race, Session Hoard, Trackers et réseau (Trackers & Network), Maintenance, et Other pour toute section non listée dans un autre). La plupart des clés n'y sont visibles qu'avec Afficher les réglages avancés (Show advanced settings) coché. |
Trois règles valent pour toutes les sections de cette page :
- L'éditeur générique de Paramètres avancés (default.toml) ne change que les clés déjà présentes dans le fichier. Une clé que le modèle ne contient pas (marquée « — ») doit être ajoutée à la main, démon arrêté ou suivi d'un redémarrage. Voir Configuration : vue d'ensemble.
- Après tout enregistrement dans Paramètres avancés, l'interface affiche « Réglages daemon/auth modifiés, un redémarrage complet est nécessaire. » (« Daemon/auth settings changed, a full restart is required. ») pour chaque section de cette page, même quand le code lit la clé à chaud. La colonne Prise d'effet ci-dessous indique ce que fait le code.
- L'éditeur masque, dans
[race]/[hoard]seulement, les clés que possède l'onglet Réseau (Network), ainsi que toute clé signalée au démarrage comme ignorée.[daemon] bind_interface,kill_switch,egresset les clés de[proxy]ne sont pas masquées : une fois que l'onglet Réseau les a écrites, elles apparaissent sous Général et Other, et peuvent y être modifiées une par une. Il masque aussi trois clés de[vpn_speedtest]que la 4.4 lit ; voir cette section.
Bug connu en 4.4 : la liste des clés de l'onglet Réseau dans l'éditeur inclut
[daemon] kill_switch,egresset les clés de[proxy], censées être masquées, mais le filtre ne s'applique qu'à[race]/[hoard]. Changez-les sur l'onglet Réseau, qui les écrit d'un bloc.
Une clé de premier niveau doit se trouver avant le premier en-tête [table]. Écrite en fin de fichier, elle atterrit dans la dernière table et est ignorée sans message.
| Clé | Type | Modèle | Si absente | Statut | Effet | Prise d'effet | Interface |
|---|---|---|---|---|---|---|---|
auto_port_forward |
bool | — | true |
Fonctionne | Au démarrage, pour chaque moteur qui sort par le routeur domestique, demande au routeur de rediriger son port d'écoute, TCP et UDP, par NAT-PMP, puis UPnP. Bail d'une heure, renouvelé ; après un échec total, nouvel essai toutes les 15 minutes avec une ligne de journal. Suit un changement de port à chaud. Sautée pour un moteur qui ne sort pas par le routeur domestique (kill switch, tunnel géré, Gluetun, SOCKS5, autre interface). Le port d'écoute lui-même ne change jamais. | Redémarrage | aucune (les clés de premier niveau ne sont pas affichées) |
Détails, mises en garde Docker et lignes de journal : Réseau : ports & redirection.
# Premières lignes de default.toml, avant [daemon]
auto_port_forward = false # le port est redirigé à la main sur le routeur
[daemon]
api_port = 8199| Clé | Type | Modèle | Si absente | Statut | Effet | Prise d'effet | Interface |
|---|---|---|---|---|---|---|---|
api_host |
string | "0.0.0.0" |
"" → 0.0.0.0
|
Fonctionne | Adresse sur laquelle écoute le serveur HTTP (interface web, /api, /api/v2, /mcp). 127.0.0.1 = cette machine uniquement. |
Redémarrage | Paramètres avancés › Général |
api_port |
integer (1–65535) | 8199 |
0 → 8199
|
Fonctionne | Port de ce serveur HTTP. | Redémarrage | Paramètres avancés › Général |
api_key |
string | "" |
"" → générée |
Fonctionne | L'unique identifiant d'API (en-tête X-Api-Key, ?apikey=, ou Authorization: Bearer sur /mcp). Au démarrage, une valeur vide ou le texte de remplacement change-me-in-production est remplacé par une clé aléatoire de 48 caractères hexadécimaux, réécrite dans le fichier. |
À chaud | Paramètres avancés › Général, avec ↻ (générer) et ⧉ (copier) |
data_dir |
string (chemin) |
"/config" (Docker écrit /config ; un binaire qui crée son propre fichier écrit <config dir>/data) |
"" |
Fonctionne | Dossier du store hydra.db (voir Architecture pour la différence entre store et état de reprise), de la base de mesures bench.db et de l'ancien uploads/. Créé au démarrage s'il manque. L'état de reprise des moteurs n'est pas ici : il se trouve dans <config dir>/<engine id>/. |
Redémarrage | Paramètres avancés › Général |
create_torrent_folder |
bool | false |
false |
Fonctionne | Valeur par défaut de l'option de sous-dossier : true place un torrent à fichier unique dans <save path>/<nom du fichier sans extension>/. Utilisée quand un ajout ne choisit pas lui-même (case de l'onglet d'ajout, create_subfolder, contentLayout/root_folder du shim), et par les ajouts RSS. Pré-coche Put the payload in its own subfolder dans l'onglet d'ajout (GET /api/torrents/add-defaults) et est signalée aux clients qBittorrent comme create_subfolder_enabled. Les torrents multi-fichiers ont toujours leur dossier. |
À chaud (ajout suivant) | Paramètres avancés › Général |
update_check_disabled |
bool | — | false |
Fonctionne |
true : GET /api/update-check répond {"enabled":false} et ne contacte jamais GitHub. |
À chaud | Paramètres avancés › Général, une fois ajoutée à la main |
bind_interface |
string | — (commentée) |
"" = route par défaut |
Fonctionne | Interface à laquelle sont liées les requêtes propres du démon quand elles sortent en direct ou par proxy. Pas celle des moteurs : chacun a son propre bind_interface dans sa section. |
À chaud via l'onglet Réseau ; redémarrage si modifiée à la main | Réseau › Kill switch et requêtes du démon (Kill switch and the daemon's own requests) › Interface du démon (Daemon interface) |
kill_switch |
bool | — (commentée) | absente = suit [network] mode : désarmé en mode direct, armé dans les quatre autres |
Fonctionne |
true l'arme même en mode direct, false le désarme. Armé, un moteur sans sortie acceptée par le mode est tenu hors du réseau (quels moteurs cela concerne dépend du mode ; une interface saisie à la main ne compte pas en mode WireGuard, ni une autre que celle de gluetun en mode gluetun : voir Réseau : ports & redirection), et une requête du démon dont la sortie est inutilisable est refusée. |
Moteurs : redémarrage. Requêtes du démon : à chaud via l'onglet Réseau |
Réseau › Kill switch (Suivre le mode réseau (Follow the network mode), Désarmé : fuites acceptées (Disarmed: leaks accepted), Armé, même en mode direct (Armed, even in direct mode)) |
egress |
string | — (commentée) |
"" = auto
|
Fonctionne | Par où passent les requêtes propres du démon (listes de trackers, listes du filtre IP, vérification de mise à jour, webhooks, URL de .torrent) : auto (suivre le mode), direct, proxy (la section [proxy]) ou engine:<id>. Toute autre valeur refuse chaque requête. |
À chaud via l'onglet Réseau ; redémarrage si modifiée à la main | Réseau › Requêtes externes du démon (External requests of the daemon) |
Où create_torrent_folder ne s'applique pas (magnets ajoutés en natif, dossiers surveillés, ajouts MCP, assistant d'import) : voir Téléchargement, revérification ou mode seed.
bind_interface, kill_switch et egress sont écrites d'un bloc par l'onglet Réseau (Enregistrer le trafic du démon (Save daemon traffic)) avec [proxy]. Une fois écrites, elles apparaissent aussi dans Paramètres avancés › Général (l'éditeur ne masque que les clés de l'onglet Réseau de [race]/[hoard]). Ce que donne chaque valeur d'egress, les verdicts du kill switch par moteur et les lignes de journal : VPN & sortie réseau (Le kill switch, Les requêtes propres au démon).
agent_token n'est plus une clé : le modèle 4.4 ne la contient pas, et un fichier qui l'a encore reçoit config: daemon.agent_token is ignored: … au démarrage (voir Sections et clés signalées au démarrage). Revenir aux valeurs par défaut (Reset to defaults) la supprime. Le contexte 3.x est sur Mettre à jour depuis la 3.x.
Remarques :
-
Changer
api_keydepuis l'interface prend effet à la requête suivante. L'interface enregistre la nouvelle clé dans ce navigateur, mais tous les autres clients (Sonarr, Radarr, autobrr, scripts, clients MCP, nœuds déclarés qui pointent vers cette instance) doivent être mis à jour à la main. -
N'enregistrez pas une
api_keyvide depuis l'interface. Une clé vide refuse tous les appels API jusqu'au démarrage suivant, qui en génère alors une nouvelle. Le navigateur qui l'a enregistrée est bloqué lui aussi. -
api_hostavec une adresse IPv6 : le serveur écoute sur<api_host>:<api_port>tel qu'écrit, une adresse IPv6 littérale a donc besoin de crochets :"[::]". -
Le mode de secours (le store ne peut pas être ouvert) répond sur le même
api_host:api_portque le serveur normal. Voir Exploiter Hydranos. - Le
data_dir = "/config"du modèle correspond à l'organisation Docker. Pour la différence entre la création du fichier au premier lancement sous Docker et en binaire, voir Configuration : vue d'ensemble.
[daemon]
api_host = "0.0.0.0"
api_port = 8199
api_key = "" # vide : une clé est générée et écrite ici au premier démarrage
data_dir = "/config"
update_check_disabled = true # absente du modèle : à ajouter à la main
# egress = "auto" # commentée dans le modèle ; réglée depuis l'onglet RéseauLe proxy SOCKS5 des requêtes propres du démon, utilisé quand [daemon] egress = "proxy". Le proxy des moteurs est un autre jeu de clés (socks5_outbound_* dans [race]/[hoard], voir Config : moteurs & drain race). En 3.x, cette section portait la recherche d'IP publique et le test de débit ; la 4.4 la relit pour les requêtes du démon.
| Clé | Type | Modèle | Si absente | Statut | Effet | Prise d'effet | Interface |
|---|---|---|---|---|---|---|---|
socks5_host |
string | — (section entière commentée) | "" |
Fonctionne | Hôte du proxy. Les requêtes partent en socks5h:// (noms résolus par le proxy). Vide avec egress = "proxy" : chaque requête est refusée. |
À chaud via l'onglet Réseau ; redémarrage si modifiée à la main | Réseau › Hôte du proxy (Proxy host) (un hôte vide supprime la section) |
socks5_port |
integer | — | 0 |
Fonctionne | Port du proxy. | idem | Réseau › Port du proxy (Proxy port) |
socks5_user |
string | — | "" |
Fonctionne | Nom d'utilisateur, si le proxy en demande un. | idem | Réseau › Nom d'utilisateur (Username) |
socks5_pass |
string | — | "" |
Fonctionne | Mot de passe. Relu sous la forme ******** par GET /api/settings et les routes de l'onglet Réseau ; enregistrer le masque garde la valeur enregistrée. |
idem | Réseau › Mot de passe (Password) |
Une fois la section créée, les quatre clés apparaissent sous Paramètres avancés › Other, toujours avec leur description 3.x (« used by the orchestrator (public IP + speedtest) »). Changez-les sur l'onglet Réseau. Détails : VPN & sortie réseau.
[daemon]
egress = "proxy"
[proxy]
socks5_host = "198.51.100.20"
socks5_port = 1080| Clé | Type | Modèle | Si absente | Statut | Effet | Prise d'effet | Interface |
|---|---|---|---|---|---|---|---|
mode |
string | — (pas de table [network]) |
"" = déduit des clés des moteurs, comme pour un fichier d'avant la 4.4 |
Fonctionne | Le mode enregistré par l'onglet Réseau : direct, wireguard, gluetun, socks5 ou proxy_v2. Décide si le kill switch est armé par défaut et où egress = "auto" envoie les requêtes du démon. |
Redémarrage pour les moteurs ; les requêtes du démon suivent aussitôt | Réseau (les cartes de mode) |
L'onglet l'écrit ; la modifier seule (elle apparaît sous Paramètres avancés › Other une fois la table créée) peut laisser en place les clés de moteur d'un autre mode. Ce qu'écrit chaque mode : Réseau : ports & redirection et WireGuard géré.
| Clé | Type | Modèle | Si absente | Statut | Effet | Prise d'effet | Interface |
|---|---|---|---|---|---|---|---|
username |
string | "admin" |
"" |
Fonctionne | Nom du compte admin, vérifié par POST /api/login (interface web) et par la connexion du shim qBittorrent. La configuration du premier lancement l'écrit (admin si laissé vide). |
À chaud | premier lancement Créer le compte (Create account) ; Paramètres avancés › Other |
password_hash |
string (bcrypt) | "" |
"" |
Fonctionne | Hash bcrypt du mot de passe admin. Vide = premier lancement : GET /api/setup renvoie needs_setup: true et l'écran Bienvenue dans Hydranos (Welcome to Hydranos) crée le compte (8 caractères minimum) et transmet la clé API au navigateur. |
À chaud | premier lancement Créer le compte ; Paramètres avancés › Other |
- Le shim qBittorrent (
/api/v2/auth/login) accepte soit ce nom d'utilisateur et ce mot de passe, soit n'importe quel nom d'utilisateur avec la clé API comme mot de passe. -
password_hashdoit être un hash bcrypt. Saisir un mot de passe en clair dans ce champ fait échouer toutes les connexions (la clé API continue de fonctionner).hydranos hash-password <password>en affiche un (8 caractères minimum) ; le commentaire du modèle l'appelle encorehydra hash-password. -
Config › Compte (Account) › Changer le mot de passe (Change password) (
POST /api/auth/password) écrit aussitôt un nouveau hash danspassword_hash, 8 caractères minimum ; l'ancien mot de passe est refusé dès la connexion suivante et ce navigateur reste connecté (la clé API ne change pas). -
hydranos reset-password <password> [path/to/default.toml]écrit le hash dans le fichier depuis la ligne de commande, pour un admin bloqué dehors ; redémarrez Hydranos pour qu'il s'applique. - Il n'y a qu'un compte. La récupération d'un mot de passe perdu et les règles d'exposition au premier lancement sont sur Sécurité & accès, qui en est la référence.
[auth]
username = "admin"
password_hash = "" # vide = l'écran du premier lancement demande un mot de passe| Clé | Type | Modèle | Si absente | Statut | Effet | Prise d'effet | Interface |
|---|---|---|---|---|---|---|---|
allow_destructive |
bool | — (pas de table [mcp]) |
false |
Fonctionne |
true liste et autorise sur /mcp les deux outils irréversibles, delete_torrents et purge_race. false : ils ne sont ni listés ni appelables ; un appel renvoie une erreur qui nomme cette clé. |
À chaud | Paramètres avancés › Other, une fois la table créée |
La table n'est pas dans le modèle : ajoutez-la à la main. Tout le reste concernant ce point d'accès est sur Serveur MCP.
[mcp]
allow_destructive = false| Clé | Type | Modèle | Si absente | Statut | Effet | Prise d'effet | Interface |
|---|---|---|---|---|---|---|---|
enabled |
bool | — (pas de table [dedup]) |
true |
Fonctionne | Quand on ajoute un torrent dont la charge utile est déjà présente sous un autre chemin de sauvegarde, crée des liens physiques vers les fichiers existants au lieu de les télécharger à nouveau. Un échec n'est jamais fatal : le torrent est simplement téléchargé. | À chaud (l'interface redémarre de toute façon) | Config › Duplicate data › Link it instead of downloading, Enregistrer et redémarrer (Save and restart) |
path_collision |
string | — | isolate |
Fonctionne | Un torrent entrant qui nomme des fichiers qu'un autre torrent détient déjà avec d'autres octets : isolate (un dossier à lui à côté de celui qu'il demandait, fichiers identiques liés en dur dedans), refuse (l'ajout est refusé avec la raison), legacy (partager le chemin et laisser la revérification écraser, comme avant la 4.4 ; journalisé à chaque fois). |
À chaud (ajout suivant) via l'éditeur de l'interface ; redémarrage si modifiée à la main | Paramètres avancés › Other, une fois la clé présente ; la carte Duplicate data n'écrit que enabled
|
- Table absente = activé. Pour le désactiver, utilisez la carte Duplicate data (elle crée la table,
POST /api/dedup/config) ou ajoutez la table à la main. L'éditeur générique ne peut pas la créer. -
Enregistrer et redémarrer sur la carte écrit le fichier puis redémarre le processus par le chemin de redémarrage de l'interface (le même arrêt propre que
SIGTERM; voir Exploiter Hydranos). Le code lit la nouvelle valeur au prochain ajout : modifier la table à la main puis redémarrer revient au même. -
path_collisiondoit être ajoutée à la main. Ce qui compte comme collision, les événements journalisés et la revérification protégée : Fichiers qu'un autre torrent détient déjà. - Ce qui compte comme « la même charge utile » et l'interaction avec le mode seed : Ajouter des torrents & données existantes.
[dedup]
enabled = false # toujours télécharger, ne jamais créer de liens physiques vers une charge utile déjà présente
path_collision = "refuse" # absente du modèle : à ajouter à la main| Clé | Type | Modèle | Si absente | Statut | Effet | Prise d'effet | Interface |
|---|---|---|---|---|---|---|---|
enabled |
bool | — (pas de table [rss]) |
true |
Fonctionne |
false : la tâche d'arrière-plan ne récupère aucun flux et aucune règle n'ajoute quoi que ce soit. Flux, articles et règles sont conservés. |
À chaud via l'éditeur de l'interface ; redémarrage si modifiée à la main | Paramètres avancés › Other, une fois la table créée |
refresh_minutes |
integer | — | 30 |
Fonctionne | Intervalle donné à un nouveau flux. En dessous de 5 → 5. Les flux existants gardent le leur. | idem | idem |
max_articles |
integer | — | 200 |
Fonctionne | Articles conservés par flux, les plus récents d'abord. Borné à 1–10 000. | idem | idem |
La section n'est pas dans le modèle : ajoutez-la à la main. Les flux et les règles eux-mêmes vivent dans le store, pas ici. Tout le reste : RSS & téléchargements automatiques.
[rss]
enabled = true
refresh_minutes = 30
max_articles = 200Le test de ligne iperf3 de l'onglet Performances (Benchmark) (▶ Lancer maintenant (▶ Run now), POST /api/vpn-speedtest/run), et sa planification optionnelle.
| Clé | Type | Modèle | Si absente | Statut | Effet | Prise d'effet | Interface |
|---|---|---|---|---|---|---|---|
enabled |
bool | true |
false |
Fonctionne | Requise pour tout test. false (ou un iperf3_server vide) : Lancer maintenant répond 400 iperf3_server not configured in [vpn_speedtest] et aucun test automatique ne tourne. GET /api/vpn-speedtest/latest la renvoie. |
À chaud | Paramètres avancés › Maintenance |
iperf3_server |
string | "ping.online.net" |
"" (pas de test) |
Fonctionne | Serveur iperf3. Le test sort par le bind_interface du moteur race (sinon du premier moteur), tunnel géré compris, sinon par la route par défaut ; refusé (400) quand ce moteur n'a pas d'interface et sort par un proxy SOCKS5. |
À chaud | Paramètres avancés › Maintenance |
iperf3_port |
integer | — (commentée : # iperf3_port = 5201) |
5201 |
Fonctionne | Port du serveur. | Démarrage suivant ou prochain enregistrement interface/API | aucune (masquée dans Paramètres avancés : modification à la main) |
duration_secs |
integer | — (commentée : # duration_secs = 10) |
10 |
Fonctionne | Secondes par sens (envoi, puis réception), bornées à 1–60. La ligne est saturée environ le double de ce temps. | Démarrage suivant ou prochain enregistrement interface/API | aucune (masquée : modification à la main) |
interval_secs |
integer | — (commentée : # interval_secs = 0) |
0 |
Fonctionne |
0 ou absente : Lancer maintenant seulement. Au-dessus de 0 : un test automatique toutes les interval_secs, jamais plus souvent que toutes les 300 s. |
Démarrage suivant ou prochain enregistrement interface/API (relue à chaque réveil) | aucune (masquée : modification à la main) |
« À chaud » vaut pour une modification via l'éditeur de l'interface ; les clés sont relues à chaque exécution. Une modification du fichier à la main est lue au démarrage suivant, ou dès qu'un enregistrement via l'interface web ou l'API réécrit le fichier (ce qui recharge tout le fichier) — le seul moyen de changer les trois clés masquées sans redémarrer.
Bug connu en 4.4 : Paramètres avancés semble lister toutes les clés de
[vpn_speedtest]—iperf3_port,duration_secsetinterval_secsy sont masquées alors que la 4.4 les lit — modifiezdefault.tomlà la main et redémarrez.
Mise à jour : un fichier créé à partir du modèle 4.3 (ou repris de la 3.x) contient
enabled = true,iperf3_server = "ping.online.net"etinterval_secs = 3600. La 4.3 ignorait cette dernière clé ; la 4.4 la lit, donc un tel fichier sature la ligne avec un test toutes les heures après la mise à jour. Mettezinterval_secs = 0à la main (ou décochezenableddans Paramètres avancés › Maintenance, ce qui coupe aussi Lancer maintenant).
Ce que mesure le test et comment il est affiché : Supervision & journaux (Test de débit (test de ligne)).
[vpn_speedtest]
enabled = true
iperf3_server = "ping.online.net"
interval_secs = 0 # un fichier 4.3 peut indiquer 3600 : un test saturant par heure en 4.4Toute la section est Ignorée, signalée : aucune de ses clés n'apparaît dans le code, le modèle 4.4 ne la contient plus, et Paramètres avancés la masque. L'enregistrement des mesures ne peut pas être désactivé et son échantillonnage est fixe (voir Supervision & journaux). Un fichier qui contient encore la section reçoit, à chaque démarrage :
config: [bench] is ignored: bench recording and its retention are built in; none of these keys is read. Instead: nothing; delete the section.
Les clés qu'un fichier 4.3 peut contenir : enabled, retention_days, race_snapshot_retention_days, snapshot_interval_secs, prune_interval_mins, vacuum. Supprimez la section.
Cinq tables associent un hôte de tracker à une valeur. Ce sont toutes les cinq des tables host = "value" de chaînes : mettez toujours la valeur entre guillemets. Un nombre nu ("tracker.example.org" = 48) est une erreur de type, et une erreur de type dans le fichier arrête Hydranos au démarrage. Mettez aussi l'hôte entre guillemets quand il contient des points.
L'onglet Trackers écrit les cinq via des routes dédiées ; c'est la méthode recommandée. Son formulaire et ses boutons sont décrits sur Trackers & annonces, qui fait référence pour leur comportement.
| Table | Valeur | Correspondance d'hôte | Effet | Prise d'effet | Statut | Écrite par (route) | Interface |
|---|---|---|---|---|---|---|---|
[announce_passkeys] |
passkey | même hôte ou n'importe quel sous-domaine, insensible à la casse, la clé la plus longue l'emporte (pas une recherche de sous-chaîne) | Remplace le dernier segment de chemin des URL d'annonce correspondantes. Une URL dont le dernier segment est exactement announce, ou qui se termine par /, n'est pas modifiée. Tout autre dernier segment est remplacé, même quand le tracker porte la passkey dans la chaîne de requête (/announce.php?passkey=… devient /<your passkey>?passkey=…) : ne définissez pas de remplacement pour un tel tracker. |
À chaud via la route ; redémarrage si modifiée à la main | Fonctionne |
POST /api/announce/passkeys {"host","passkey"} (passkey vide = suppression) ; GET les renvoie en clair
|
Trackers › Modifier (Edit) › Passkey, Effacer la passkey (Clear passkey) ; Paramètres avancés (hôtes déjà dans la table) |
[announce_ip_modes] |
v4 / v6 (ipv4, 4, ipv6, 6 aussi acceptés) ; toute autre valeur = auto |
même hôte ou sous-domaine, la clé la plus longue l'emporte | Annonce sur une seule famille d'adresses. Pas d'entrée = auto (une annonce par famille, même peer id). La route enregistre auto en supprimant l'entrée. |
À chaud via la route ; redémarrage si modifiée à la main | Fonctionne |
POST /api/announce/ip-modes {"host","mode"} (auto, v4, v6) |
Trackers › Modifier › Announce (auto / v4 only / v6 only) ; Paramètres avancés (hôtes déjà dans la table) |
[announce_min_seed_hours] |
heures entières, sous forme de chaîne | hôte exact de la première URL de tracker du torrent, sensible à la casse, sans règle de sous-domaine | Obligation de seed pour le drain race. Pas d'entrée (ou une valeur qui n'est pas un nombre entier ≥ 0) = protégé, jamais supprimé par le drain. "0" = aucune obligation, peut être supprimé. Les limites de partage l'attendent aussi : un seed dont le tracker ne déclare rien n'est jamais arrêté ni retiré par une limite de partage. |
À chaud (relue à chaque passage du drain) | Fonctionne |
POST /api/announce/min-seed {"host","hours"}, ou {"host","clear":true} pour retirer |
Trackers › Modifier › Minimum seed ; Paramètres avancés (hôtes déjà dans la table) |
[announce_muted] |
n'importe quelle chaîne : seule la présence de la clé compte (la route écrit "1", et supprime la clé pour réactiver) |
hôte exact tel que listé dans l'onglet Trackers | Les erreurs du tracker restent visibles mais sont marquées comme prises en compte et exclues des compteurs du badge de l'onglet. Les annonces ne changent pas. | À chaud | Fonctionne |
POST /api/announce/mute {"host","muted"}
|
Trackers › Mute / Unmute ; Paramètres avancés (hôtes déjà dans la table) |
[announce_hidden] |
n'importe quelle chaîne : seule la présence de la clé compte (la route écrit "1", et supprime la clé pour réafficher) |
hôte exact tel que listé dans l'onglet Trackers | Retire la ligne de l'onglet Trackers, badge compris. Simple réglage d'affichage : le tracker reçoit toujours les annonces et reste compté. | À chaud | Fonctionne |
POST /api/announce/hidden {"host","hidden"} ou {"hosts":[…],"hidden"}
|
Trackers › Masquer (Hide) / Afficher (Unhide), Hide them, Unhide all ; Paramètres avancés (hôtes déjà dans la table) |
Aucune de ces tables n'est dans le modèle ; les routes les créent.
- Les passkeys et modes IP modifiés à la main dans le fichier ne sont pas poussés aux annonceurs en cours : ils s'appliquent au démarrage suivant. Tout enregistrement ultérieur via une route de passkey ou de mode IP pousse la table complète actuelle.
- Paramètres avancés peut changer la valeur d'un hôte déjà présent dans l'une des cinq tables (une clé d'hôte entre guillemets est reconnue par son nom nu). Il ne peut ni ajouter ni retirer un hôte : utilisez pour cela l'onglet Trackers. Une passkey ou un mode IP enregistré là est écrit et relu mais pas poussé aux annonceurs en cours : il s'applique au redémarrage suivant (le bandeau d'enregistrement en demande un) ou au prochain enregistrement via une route de passkey ou de mode IP. Les valeurs muettes, masquées et de seed minimum enregistrées là s'appliquent aussitôt.
- La forme groupée de la route de masquage (
"hosts"avec plus d'un hôte) saute les hôtes qui ont une passkey ou un mode IP, et les liste dansskipped_configured. - Sémantique de l'obligation de seed (quels torrents le drain peut supprimer, et quand) : Drain race & graduation.
- Un moteur avec
enable_ipv6 = falseannonce en IPv4 seulement, quoi que dise le mode IP : voir Trackers & annonces. - Le commentaire du modèle dit que les passkeys sont reconnues par « sous-chaîne d'hôte » et poussées à toute la flotte, vers les autres machines. Les deux sont périmés : la correspondance suit le tableau ci-dessus, et les tables ne s'appliquent qu'aux moteurs de cette instance.
[announce_passkeys]
"tracker.example.org" = "0123456789abcdef"
[announce_ip_modes]
"tracker.example.org" = "v4"
[announce_min_seed_hours]
"tracker.example.org" = "72" # une chaîne, pas un nombre nu
"public.example.org" = "0" # aucune obligation : le drain peut supprimer
[announce_muted]
"dead.example.org" = "1"
[announce_hidden]
"old.example.org" = "1"Ancienne table [announce_clients]. L'identité client par tracker a été supprimée. Si un fichier contient encore des tables [announce_clients], le premier démarrage de la 4.3 ou d'une version ultérieure arrête une fois les torrents dont le premier tracker y correspond, et retire les tables du fichier. Voir Mettre à jour depuis la 3.x.
Config › Paramètres avancés (default.toml) › Revenir aux valeurs par défaut (Reset to defaults) (en haut à droite de l'éditeur) › Réinitialiser et redémarrer (Reset and restart) (POST /api/settings/reset) enregistre le fichier actuel sous <config file>.bak-reset-<unix seconds>, réécrit le modèle livré, et ne garde que quatre valeurs, quand ce sont des chaînes non vides : [auth] username, [auth] password_hash, [daemon] api_key et [daemon] data_dir. Ensuite l'interface redémarre le démon.
Tout le reste de cette page revient au modèle ou à sa valeur « Si absente », en particulier :
-
[network] mode,[daemon] kill_switch,egress,bind_interfaceet[proxy](ainsi que les clésallow_directetwireguard_*des moteurs) : une installation qui tournait en mode WireGuard, SOCKS5, PROXY-v2 ou Gluetun revient en mode Direct avec le kill switch désarmé, si bien que ses moteurs sortent par la route par défaut de l'hôte après le redémarrage. Les requêtes propres du démon passent sur la route par défaut dès que le fichier est écrit, avant le redémarrage ; - les cinq tables par hôte de tracker (passkeys, modes IP, heures de seed minimum, muets, masqués) ;
-
[mcp],[dedup](de nouveau activé,isolate),[rss],auto_port_forward,update_check_disabled,create_torrent_folder, et chaque bloc de moteur ; -
[vpn_speedtest](de nouveauenabled = true,ping.online.net, sans planification).
Recopiez ce dont vous avez besoin depuis la sauvegarde avant que les moteurs ne rencontrent un tracker ; le texte de la boîte de dialogue (« Tous les réglages reviennent à ceux d'une installation neuve : ports, mode réseau, passkeys de trackers, masquages de client, réglages des moteurs. » (Every setting goes back to what a fresh install ships: ports, network mode, tracker passkeys, client spoofs, engine tuning.)) ne mentionne pas le kill switch. Plus : Configuration : vue d'ensemble et Exploiter Hydranos.
Certaines clés et sections de fichiers plus anciens sont acceptées et ne font rien. À chaque démarrage, Hydranos lit le fichier brut et journalise une ligne WARN par clé de ce genre présente, sous cette forme :
config: <where> is ignored: <why>. Instead: <what to use>.
L'avertissement n'est jamais fatal ; un fichier qui ne s'analyse pas reçoit son erreur d'analyse à la place. Aucune de ces clés n'est dans le modèle 4.4, et Paramètres avancés les masque toutes. La liste complète (deadkeys.rs) :
| Où (tel que journalisé) | Pourquoi elle est ignorée | À la place |
|---|---|---|
daemon.agent_token |
protégeait le canal gRPC agent/front de la 3.x, qui n'existe plus | enrôler la machine comme nœud (install.sh --register-to <url> --token <token>) |
un bloc agent ou engine (tableau de tables TOML) : addr (seulement s'il n'est pas vide), token, tls_ca
|
agent distant 3.x et ses identifiants | enrôler la machine comme nœud |
un bloc agent ou engine : un sous-tableau engine (la surcharge par agent de la 3.x) |
une surcharge de moteur par agent de la 3.x ; rien n'y correspond | mettre les clés surchargées dans la sous-table session du bloc |
race.listen_interfaces, hoard.listen_interfaces, et dans le session d'un bloc |
jamais transmise au moteur | bind_interface = "<interface name>" |
file_pool_size (mêmes endroits) |
le pool de fichiers ouverts est dimensionné par aio_threads
|
aio_threads |
custom_choking ([race.custom_choking], mêmes endroits) |
une stratégie de choking de la 3.x |
choking = true et max_uploads_per_torrent
|
disk_slots ([hoard.disk_slots], mêmes endroits) |
les emplacements de seed par disque n'ont jamais été implémentés | rien ; arrêtez les torrents vous-même |
[bench] |
l'enregistrement et la rétention sont intégrés | rien ; supprimez la section |
[metrics] |
/metrics ne demande aucune configuration |
rien ; /metrics est toujours servi |
[peer_intel] |
non repris de la 3.x | rien ; supprimez la section |
[arr_cleanup] |
non repris de la 3.x ; ne supprime rien (POST /api/arr-cleanup/execute a disparu : 404) |
la gestion des téléchargements terminés propre aux *arr |
[notify] |
les notifications sont envoyées par les workflows | un workflow avec une action webhook (Workflows) |
race_drain.min_age_minutes |
le drain protège un torrent par la durée de seed minimum de son tracker, pas par son âge |
Minimum seed sur l'onglet Trackers ([announce_min_seed_hours]) |
Un bloc est désigné par son name (ou engine_id), sinon par sa position :
config: [[engine]] "vpn7" token is ignored: …
config: [[engine]] #2 session.file_pool_size is ignored: …
Les champs de catégorie 3.x placement, agents, strategy et min_free_bytes (stockés avec les catégories, pas dans ce fichier) reçoivent une ligne semblable par champ une fois le store ouvert, qui liste les catégories qui les définissent ; ils sont conservés pour un retour en arrière vers la 3.x. Contexte de mise à jour : Mettre à jour depuis la 3.x.
[proxy] et [vpn_speedtest] ne sont pas dans cette liste : la 4.4 les lit (voir plus haut).
Toute autre clé ou section inconnue est toujours acceptée sans message : une faute de frappe dans un nom de clé (enable_dth) ne produit ni avertissement ni effet. Deux clés de moteur de la famille du modèle sont aussi silencieuses et inertes, inactivity_timeout et announce_rate_limit ; voir Config : moteurs & drain race. La liste générale des clés qui ne font rien est sur Configuration : vue d'ensemble.
- Configuration : vue d'ensemble : où se trouve le fichier, comment il est créé et modifié, règles de redémarrage, clés qui ne font rien.
-
Config : moteurs & drain race :
[race],[hoard], blocs de moteur,[race_drain]. - Config : environnement, CLI & signaux : tout ce qui est hors du TOML.
- Sécurité & accès · Serveur MCP · Trackers & annonces · Drain race & graduation · Réseau : ports & redirection · VPN & sortie réseau · RSS & téléchargements automatiques · File d'attente, limites de partage et de débit · Limites connues de la 4.4
Hydranos wiki — documents v4.4.1. · 🇬🇧 Home · 🇫🇷 Accueil · Changelog · Report an issue
Hydranos 4.4 · 🇬🇧
Start
Install
- Installation & First Run
- Docker
- Linux (bare metal)
- Windows
- Migrating from qBittorrent
- Upgrading from 3.x
Use
- Categories & Routing
- Adding Torrents & Existing Data
- RSS & Automatic Downloads
- Queue, Share & Speed Limits
- Engines: Race & Hoard
- Race Drain & Graduation
- Trackers & Announces
- Jobs, Bulk Actions & Moving Data
- Workflows
Integrate
Network & machines
- Deployment Topologies
- Networking: Ports & Port Forwarding
- VPN & Egress
- Managed WireGuard
- Nodes & Multiple Machines
Operate
- Operating Hydranos
- Monitoring & Logs
- Prometheus Metrics
- Security & Access
- Troubleshooting
- Known Limitations in 4.4
Reference
- Architecture
- Configuration overview
- Config: daemon, auth & global
- Config: engines & race drain
- Config: environment, CLI & signals
Hydranos 4.4 · 🇫🇷
Démarrer
Installer
- Installation & premier démarrage
- Docker
- Linux (bare metal)
- Windows
- Migrer depuis qBittorrent
- Mettre à jour depuis la 3.x
Utiliser
- Catégories & routage
- Ajouter des torrents & données existantes
- Flux RSS & téléchargements automatiques
- File, limites de partage & de débit
- Moteurs : race & hoard
- Drain race & graduation
- Trackers & annonces
- Jobs, actions groupées & déplacement
- Workflows
Intégrer
Réseau & machines
- Topologies de déploiement
- Réseau : ports & redirection
- VPN & sortie réseau
- WireGuard géré
- Nœuds & plusieurs machines
Exploiter
- Exploiter Hydranos
- Supervision & journaux
- Métriques Prometheus
- Sécurité & accès
- Dépannage
- Limites connues de la 4.4
Référence
- Architecture
- Configuration : vue d'ensemble
- Config : démon, auth & global
- Config : moteurs & drain race
- Config : environnement, CLI & signaux