Live ISS tracker + visible-pass predictions (bunko.me/overhead)
- JavaScript 48.9%
- HTML 31.2%
- Python 19%
- Dockerfile 0.9%
New public app at bunko.me/overhead. FastAPI backend fetches the ISS TLE from Celestrak and computes visible Tulsa passes with skyfield (sunlit sat + dark observer); the browser propagates live position via satellite.js. Apollo mission-control UI: plot-board map, ground track, day/night terminator, footprint circle, AOS/LOS countdown. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> |
||
|---|---|---|
| app | ||
| .gitignore | ||
| docker-compose.yml | ||
| README.md | ||
Overhead
Live ISS tracker + visible-pass predictions for a fixed observer (default: Tulsa, OK). Public at https://bunko.me/overhead.
- Live position — the browser propagates the ISS from a Celestrak TLE with satellite.js for smooth per-frame motion.
- Visible passes — the backend computes upcoming passes with skyfield, counting a pass as visible only when the ISS is sunlit and the observer is in darkness.
- Look — "Apollo mission control": back-lit plot-board map, glowing ground track, day/night terminator, footprint circle, and a segmented AOS/LOS countdown.
Stack
FastAPI + skyfield (server) · vanilla JS + satellite.js (client) · Docker, behind the
shared Caddy proxy on the web network. The DE421 ephemeris is baked into the image at
build time so pass/visibility math works offline.
Config (environment)
| var | default | meaning |
|---|---|---|
BASE_PATH |
/overhead |
URL prefix the proxy strips |
OBSERVER_LAT / OBSERVER_LON |
36.1540 / -95.9928 |
observer location |
OBSERVER_ELEV_M |
210 |
observer elevation (m) |
OBSERVER_NAME |
Tulsa, OK |
label shown in the UI |
NORAD_ID |
25544 |
satellite to track (default: ISS) |
Endpoints
GET /— the tracker pageGET /api/tle— current cached TLE (for client-side propagation)GET /api/position— current sub-point, altitude, velocity, sunlit flagGET /api/passes— next visible passes for the observerGET /health
Develop
docker compose up -d --build