Repository navigation
WP4: /healthz endpoint, container & systemd packaging (WI-1729) - #113
Merged
Merged
Conversation
thedancingdeveloper
force-pushed
the
wi-1729-health-packaging
branch
from
October 17, 2026 20:28
15c2fc2 to
7b73ed6
Compare
…defaults (WI-1729) - Add an unauthenticated /healthz liveness handler (new handler file, with a unit test). Route registration and the auth-public path allowlist are left to the HTTP API router owner (WP1). - Dockerfile: HEALTHCHECK probes /healthz on the port from RTBIT_HTTP_API_LISTEN_ADDR; pin the builder to rust:1.99-alpine. - systemd: absolute ExecStart, Restart=on-failure, TimeoutStopSec=30 and systemd hardening limited to the home directory; rtbit.conf lists the env vars it was missing. - Compose: TZ defaults to Etc/UTC; Indexarr Postgres password comes from POSTGRES_PASSWORD (required) instead of a hardcoded value. Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
…install (WI-1729) - Register GET /healthz in the API router and exempt it from auth, so the probe works without credentials, including before first-run setup. A router-level test checks /healthz returns 200 while /torrents returns 401 on the same auth-enabled server. - Remove docker/Dockerfile and docker/Dockerfile.xx. The root Dockerfile is the only image definition; `make docker-build-amd64`/`armv7` now build it per platform (docker-build-xx-one-platform renamed docker-build-one-platform), and debug-linux-docker-x86_64 builds it from source. - systemd: drop the filesystem and namespace-dependent sandboxing from the per-user unit (ProtectSystem, ReadWritePaths, PrivateTmp, ProtectKernelTunables, ProtectControlGroups). Keep NoNewPrivileges, RestrictSUIDSGID and LockPersonality. - Document the install path /usr/local/bin/rtbit and the per-user install steps in systemd/README.md; update docs/REPOSITORY-LAYOUT.md. Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
The deb/rpm packages (WI-1740) ship systemd/rtbit.service but install the binary at /usr/bin/rtbit; an absolute /usr/local/bin path would fail there. systemd resolves a bare name via its fixed search path, which covers both. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
thedancingdeveloper
force-pushed
the
wi-1729-health-packaging
branch
from
October 17, 2026 23:36
7b73ed6 to
bc8a554
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Polish review WP4 (PR #94 follow-up), WI-1729.
Tests:
cargo test -p swarmforge --features http-api186 passed (both healthz tests included);cargo test -p rtbit14 passed. These are in-process only; the image build and HEALTHCHECK were not run in a container.🤖 Generated with Claude Code