- README: replace real lat/lon in the config example with 0.0/0.0 and
drop the city name from the screenshot caption
- viewer screenshot: re-captured with the receiver IP masked
- add .pre-commit-config.yaml running gitleaks to block secrets from
reaching gitea or the public GitHub mirror
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Point the Quick Start clone command at the GitHub repo and drop the
obsolete .gitea-token ignore rule in favour of a generic secrets pattern.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
New README "Screenshots" section showing the live viewer (East view with
aircraft over the Las Vegas skyline) and the in-app pixel sprite editor,
using freshly captured screenshots.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Add open-source scaffolding and CI; remove Claude-specific dev notes from the
published tree.
- Remove CLAUDE.md from tracking (kept locally, now git-ignored).
- CHANGELOG.md (Keep a Changelog; v1.0 → v1.1.1).
- SECURITY.md (private vuln reporting + operator guidance).
- CONTRIBUTING.md (dev setup, conventions, PR flow).
- .github/: bug + feature issue templates, PR template.
- .github/workflows/ci.yml: byte-compile, validate example config, docker build.
- .github/workflows/release.yml: on a version tag, publish a multi-arch
(amd64 + arm64) image to GHCR.
- README: license/release/CI badges, prebuilt-image (GHCR) run instructions,
and a corrected Python-version note (3.9–3.11; netifaces caveat).
Badges and image names use an `OWNER` placeholder to replace with the GitHub
namespace after the repo is created.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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>
- Add VERSION = "1.1.0" to server.py; print at startup, expose via public
GET /api/config, and show it in the admin header (so deployed == released
is verifiable at a glance).
- Ignore config.json in .gitignore — it holds the admin password hash and
session secret; fresh installs use config.json.example.
- README/CLAUDE.md: document the in-app pixel editor (now with shape tools,
select/move, reference overlay, custom/recent palettes), the receiver health
dashboard, 9 sprite types, and the asset cache-busting convention.
- Bump admin asset cache-bust to ?v=20260609d.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Adds Dockerfile, docker-compose.yml, and .dockerignore to enable
running ADS-Bit in a container with host networking for LAN receiver
auto-scanning. Bind mounts persist config, sprites, and backgrounds
across container recreation. Updates README with usage instructions.
Closes#4
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Rename pixel-view.js to ads-bit.js, rename PixelADSB class to ADSBit,
and update all documentation and code comments to use ADS-Bit branding
consistently throughout the project.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Implements credentialed admin panel and multi-step setup wizard so new
users can configure location, receivers, and preferences without editing
JSON files. Adds bcrypt password auth with session cookies, setup lockout
after first run, and expanded config schema with backward compatibility.
New files: admin/{html,css,js}, setup/{html,css,js}
Modified: server.py (auth, setup, admin APIs), index.html (dynamic title),
pixel-view.js (site/display config), requirements.txt (bcrypt),
config.json.example (full schema)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>