v1.1.1: harden deployment for easier fielding #9

Merged
allen merged 1 commits from release/v1.1.1 into main 2026-06-10 09:32:54 -07:00
Owner

Makes a fresh deploy (especially Docker) work with no manual steps and behave well on real-world hosts.

Changes

  • Auto-scan skips oversized subnets (>/20, e.g. a docker 172.17.0.0/16). Previously AUTO discovery scanned 65k hosts and stalled startup on any Docker host. Manual scan shares the same MIN_SCAN_PREFIX.
  • Docker first-run just works: docker-entrypoint.sh auto-seeds config.json from config.json.example, persisted on a ./data directory mount — removes the single-file bind-mount footgun and the manual cp step.
  • ADSBIT_CONFIG env var overrides the config path (bare metal unchanged; container uses /app/data/config.json).
  • /health endpoint (status/version/receivers/flights) + Docker HEALTHCHECK.
  • Clean shutdown on SIGTERM/SIGINT (docker stop, systemctl stop) — no traceback.
  • .gitignore/.dockerignore exclude the data/ config volume. README/CLAUDE.md updated. VERSION → 1.1.1.

Verification

Image builds; a fresh docker run with an empty volume seeds config, starts, skips the in-container /16, serves /health, and reports Docker health healthy. Bare-metal: ADSBIT_CONFIG override, oversized-subnet skip, /health, version 1.1.1, and graceful SIGTERM shutdown all confirmed.

🤖 Generated with Claude Code

Makes a fresh deploy (especially Docker) work with no manual steps and behave well on real-world hosts. ## Changes - **Auto-scan skips oversized subnets** (>/20, e.g. a docker `172.17.0.0/16`). Previously AUTO discovery scanned 65k hosts and stalled startup on any Docker host. Manual scan shares the same `MIN_SCAN_PREFIX`. - **Docker first-run just works**: `docker-entrypoint.sh` auto-seeds `config.json` from `config.json.example`, persisted on a `./data` directory mount — removes the single-file bind-mount footgun and the manual `cp` step. - **`ADSBIT_CONFIG`** env var overrides the config path (bare metal unchanged; container uses `/app/data/config.json`). - **`/health`** endpoint (status/version/receivers/flights) + Docker `HEALTHCHECK`. - **Clean shutdown** on SIGTERM/SIGINT (`docker stop`, `systemctl stop`) — no traceback. - `.gitignore`/`.dockerignore` exclude the `data/` config volume. README/CLAUDE.md updated. VERSION → 1.1.1. ## Verification Image builds; a fresh `docker run` with an empty volume seeds config, starts, skips the in-container `/16`, serves `/health`, and reports Docker health `healthy`. Bare-metal: `ADSBIT_CONFIG` override, oversized-subnet skip, `/health`, version `1.1.1`, and graceful SIGTERM shutdown all confirmed. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
allen added 1 commit 2026-06-10 09:32:54 -07:00
Make a fresh deploy (especially Docker) work with no manual steps and behave
well on real-world hosts:

- Auto-scan skips subnets larger than /20 (e.g. a docker bridge 172.17.0.0/16
  = 65k hosts) so AUTO discovery no longer stalls startup or hammers the
  network on any host with Docker. Manual scan shares the same MIN_SCAN_PREFIX.
- Docker: config.json is auto-seeded from config.json.example by a new
  docker-entrypoint.sh and persisted on a ./data directory mount — no more
  single-file bind-mount footgun, no manual cp before first run.
- Config path is overridable via ADSBIT_CONFIG (defaults to ./config.json for
  bare metal; /app/data/config.json in the container).
- New /health endpoint (status/version/receivers/flights) + Docker HEALTHCHECK.
- Clean SIGTERM/SIGINT shutdown (docker stop / systemctl stop) — no traceback.
- .gitignore/.dockerignore exclude the data/ config volume.
- README/CLAUDE.md updated; VERSION bumped to 1.1.1.

Verified: image builds, fresh `docker run` seeds config and reports healthy,
oversized subnets skipped in-container, /health responds, graceful shutdown.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
allen merged commit 2551f8748d into main 2026-06-10 09:32:54 -07:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: allen/ADS-Bit#9