Configuration Global FR - Kheopsian/Hydranos GitHub Wiki

🇬🇧 English · 🇫🇷 Français

Configuration : démon, auth et sections globales

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.

Lire les tableaux

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, egress et 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, egress et 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.

Clés de premier niveau

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

[daemon]

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_key depuis 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_key vide 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_host avec 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_port que 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éseau

[proxy]

Le 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

[network]

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é.

[auth]

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_hash doit ê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 encore hydra hash-password.
  • Config › Compte (Account) › Changer le mot de passe (Change password) (POST /api/auth/password) écrit aussitôt un nouveau hash dans password_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

[mcp]

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

[dedup]

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_collision doit ê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

[rss]

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 = 200

[vpn_speedtest]

Le 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_secs et interval_secs y sont masquées alors que la 4.4 les lit — modifiez default.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" et interval_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. Mettez interval_secs = 0 à la main (ou décochez enabled dans 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.4

[bench]

Toute 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.

Tables par hôte de tracker

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 dans skipped_configured.
  • Sémantique de l'obligation de seed (quels torrents le drain peut supprimer, et quand) : Drain race & graduation.
  • Un moteur avec enable_ipv6 = false annonce 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.

Revenir aux valeurs par défaut

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_interface et [proxy] (ainsi que les clés allow_direct et wireguard_* 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 nouveau enabled = 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.

Sections et clés signalées au démarrage

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.

Voir aussi

⚠️ **GitHub.com Fallback** ⚠️