From 9d0b0d0497baf8455f3a00a590f0a406ff55003e Mon Sep 17 00:00:00 2001 From: dim145 Date: Thu, 3 Sep 2026 18:11:42 +0200 Subject: [PATCH 1/2] docs(env): TRACKER_UDP_SCRAPE_ENABLED shipped undocumented, and the chart never exposed it MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The switch landed with `feat(tracker): let an operator close UDP scrape`. It reached `config.go`, `docker-compose.prod.yml` and the UDP guide — and neither `doc/reference/env.md`, which is where an operator looks for the list, nor the Helm chart, where a Kubernetes operator has no other way to set it. Found while assembling the release notes: the env reference went from 91 variables to 93 between 0.34.0 and now, and this was not one of them. `tracker.udp.scrapeEnabled` in values.yaml, wired in the tracker template. Verified in the rendered chart rather than in the source — the first render came back without it, which was the bind-mount cache serving a stale values.yaml, not a templating mistake. Co-Authored-By: Claude Opus 5 --- deploy/helm/trackarr/templates/tracker.yaml | 2 ++ deploy/helm/trackarr/values.yaml | 6 ++++++ doc/reference/env.md | 1 + 3 files changed, 9 insertions(+) diff --git a/deploy/helm/trackarr/templates/tracker.yaml b/deploy/helm/trackarr/templates/tracker.yaml index e6fea80b..a1f0f1dc 100644 --- a/deploy/helm/trackarr/templates/tracker.yaml +++ b/deploy/helm/trackarr/templates/tracker.yaml @@ -76,6 +76,8 @@ spec: value: {{ .Values.tracker.udp.enabled | quote }} - name: TRACKER_UDP_PORT value: {{ .Values.tracker.udp.port | quote }} + - name: TRACKER_UDP_SCRAPE_ENABLED + value: {{ .Values.tracker.udp.scrapeEnabled | quote }} - name: TRACKER_DB_MAX_CONNS value: {{ .Values.tracker.dbMaxConns | quote }} - name: TRACKER_SYNCHRONOUS_COMMIT diff --git a/deploy/helm/trackarr/values.yaml b/deploy/helm/trackarr/values.yaml index dabb2d0b..73600f65 100644 --- a/deploy/helm/trackarr/values.yaml +++ b/deploy/helm/trackarr/values.yaml @@ -337,6 +337,12 @@ tracker: externalTrafficPolicy: Local loadBalancerIP: "" annotations: {} + # Répondre aux requêtes de scrape BEP 15. `false` les laisse tomber en + # silence : BEP 15 ne prévoit aucun emplacement pour une donnée + # d'authentification dans une requête de scrape, donc un tracker privé qui + # ne veut pas publier la taille de ses essaims ferme la porte plutôt que de + # la garder. L'annonce n'est pas touchée. + scrapeEnabled: true # pgx pool size, PER REPLICA. 20 is the value that used to be compiled in. dbMaxConns: 20 diff --git a/doc/reference/env.md b/doc/reference/env.md index f3304a46..14d7f34a 100644 --- a/doc/reference/env.md +++ b/doc/reference/env.md @@ -84,6 +84,7 @@ the running app never reads them directly. | `TRACKER_HTTP_PORT` | tracker | `8080` | BEP 3 (HTTP) announce port. | | `TRACKER_UDP_PORT` | tracker | `6969` | BEP 15 (UDP) announce port. | | `TRACKER_UDP_ENABLED` | tracker, api | `true` | Toggles the UDP listener **and** UDP-tier inclusion in `.torrent` downloads. Three processes read this: the tracker (listener), the API stats endpoint (`/api/stats/public`), and `/api/torrents/:hash/download`. | +| `TRACKER_UDP_SCRAPE_ENABLED` | tracker | `true` | Answers BEP 15 scrape requests. `false` makes the tracker drop them silently — BEP 15 has no field for authentication data in a scrape request, so a private tracker that does not want its swarm sizes published closes the door rather than guarding it. Announce is unaffected. The reference Caddy configuration does not route HTTP `/scrape` either, for the same reason. | | `TRACKER_DEBUG` | tracker | `false` | Verbose announce + dispatch logging. | | `TRACKER_PEER_TTL` | tracker | `24h` | How long a peer's Redis entry survives between announces. Go duration syntax (`24h`, `90m`, `7200s`). Values below `15m` are clamped — anything shorter would zero the delta computation. Raise it for very forgiving deployments; lower it on huge swarms to reclaim Redis memory. | | `TRACKER_INTERNAL_URL` | api | `http://tracker:8080` | Internal URL the API hits for `/api/tracker-health`. | From 990fb381107de6e4b4b2c084a9d891c97458992e Mon Sep 17 00:00:00 2001 From: dim145 Date: Thu, 3 Sep 2026 18:11:42 +0200 Subject: [PATCH 2/2] chore(release): 0.35.0 Co-Authored-By: Claude Opus 5 --- apps/api/package.json | 2 +- apps/web/package.json | 2 +- deploy/helm/trackarr/Chart.yaml | 2 +- package.json | 2 +- packages/db/package.json | 2 +- packages/shared/package.json | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/apps/api/package.json b/apps/api/package.json index a3d05623..9cbaa5e9 100644 --- a/apps/api/package.json +++ b/apps/api/package.json @@ -1,6 +1,6 @@ { "name": "@trackarr/api", - "version": "0.34.0", + "version": "0.35.0", "private": true, "type": "module", "scripts": { diff --git a/apps/web/package.json b/apps/web/package.json index f26b3b87..f695c135 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -1,6 +1,6 @@ { "name": "@trackarr/web", - "version": "0.34.0", + "version": "0.35.0", "private": true, "type": "module", "scripts": { diff --git a/deploy/helm/trackarr/Chart.yaml b/deploy/helm/trackarr/Chart.yaml index 75889a92..860fbdd0 100644 --- a/deploy/helm/trackarr/Chart.yaml +++ b/deploy/helm/trackarr/Chart.yaml @@ -8,7 +8,7 @@ sources: version: 0.2.1 # Matches the application release this chart was validated against. Override # the image tags in values.yaml to run a different one. -appVersion: "0.34.0" +appVersion: "0.35.0" kubeVersion: ">=1.27.0-0" maintainers: - name: Dim145 diff --git a/package.json b/package.json index a648ceaa..e73dee12 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "trackarr", - "version": "0.34.0", + "version": "0.35.0", "private": true, "type": "module", "packageManager": "pnpm@11.22.0", diff --git a/packages/db/package.json b/packages/db/package.json index c4d20adc..124e8b1b 100644 --- a/packages/db/package.json +++ b/packages/db/package.json @@ -1,6 +1,6 @@ { "name": "@trackarr/db", - "version": "0.34.0", + "version": "0.35.0", "private": true, "type": "module", "exports": { diff --git a/packages/shared/package.json b/packages/shared/package.json index 7b9b7ca5..0da055ba 100644 --- a/packages/shared/package.json +++ b/packages/shared/package.json @@ -1,6 +1,6 @@ { "name": "@trackarr/shared", - "version": "0.34.0", + "version": "0.35.0", "private": true, "type": "module", "exports": {