Flight Sitter
A Personal Flight Tracker So I Could Stop Refreshing FlightAware.
My wife travels occasionally for work, and every time she does, I end up doing the same thing: opening a new tab, typing in her flight number, waiting for the page to load, closing it, and then doing it again twenty minutes later. FlightAware is great. I just wanted it to come to me.
So I built Flight Sitter — a self-hosted flight tracking app that watches a flight and pushes updates straight to Telegram. No refreshing. No subscriptions. No third-party app with access to my account. Just a Docker container running on my home server, doing the watching for me.
How It Works#
You give it a flight ident — like UA1234 — either through a Telegram command (/track UA1234) or the web dashboard. From there it takes over: polling FlightAware's AeroAPI every 30 minutes (or faster if you want), pulling position, altitude, speed, and heading. When something meaningful happens — departure, arrival, a delay, a diversion — it sends you a Telegram message.

A mid-flight update — departure time, ETA, altitude, and delay status, pushed straight to Telegram.

An earlier ping while the flight is still on the ground, showing it is running on time.
There's also a web dashboard if you want to actually see the flight. It pulls up a Leaflet map with the flight path, the route card, METAR weather for origin and destination, and any active FAA airport advisories.

The dashboard — every tracked flight at a glance, with route, aircraft, departure times, and live position data.

Each flight gets its own detail page with a full route card; a live Leaflet position map sits just below it in the app.
If you want near-instant notifications instead of polling, you can wire up FlightAware's webhooks. That's optional — the app falls back to polling gracefully if webhooks aren't configured.
What It Actually Costs#
The FlightAware AeroAPI Personal tier has no monthly minimum — you pay about $0.002 per query. For a single five-hour flight on a 30-minute poll cycle, that's roughly $0.05. Even a busy month tracking multiple trips would run well under a dollar.
The rest of the stack is free: FAA airport advisory data pulls from a public API with no key required, the map uses OpenStreetMap via Leaflet, and the whole thing runs in a single Docker container with SQLite.
The Stack#
Built with FastAPI, python-telegram-bot, APScheduler for the poll loop. Single SQLite database.
git clone https://github.com/jchimp/flight-sitter.git
cd flight-sitter
cp .env.example .env
# Fill in your FlightAware API key, Telegram bot token, and chat ID
docker compose up -d --build
Then open http://localhost:8080 or fire off /track UA1234 in Telegram.
Why Self-Host This?#
Honestly, you don't have to. FlightAware's own app is fine. This was just fun.
The full source, setup instructions, and cost breakdown are on GitHub: jchimp/flight-sitter.