Easy-to-manage touch screens
Free, open-source touch screens. Guided USB setup, a drag-and-drop editor and local control. Made for Home Assistant.
Your price radar for Bangkok: flights from Düsseldorf, Frankfurt and Amsterdam, with price history and a transparent search status.
Translation pending
LifestylePython · JavaScriptGitHub @Fabiano225OnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Automated flight price tracker powered by GitHub Actions, with flexible date searches, price history, and real-time alerts.
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
✈️ Flightwatch – a free flight price tracker Flightwatch watches flight prices for flexible travel dates, keeps a real price history and tells you on Discord or Telegram when a price is worth a look. It runs entirely on GitHub: no server, no paid flight API, no account to sign up for. Right now it tracks flights from Düsseldorf, Frankfurt and Amsterdam to Bangkok in October 2026. The search can be changed on the website at any time: up to five trips, each with up to five destinations, for 1–9 travellers, as round trips or open jaw (back from another airport).Read the full README ↗
Flightwatch watches flight prices for flexible travel dates, keeps a real price history and tells you on Discord or Telegram when a price is worth a look. It runs entirely on GitHub: no server, no paid flight API, no account to sign up for.
Right now it tracks flights from Düsseldorf, Frankfurt and Amsterdam to Bangkok in October 2026. The search can be changed on the website at any time: up to five trips, each with up to five destinations, for 1–9 travellers, as round trips or open jaw (back from another airport).
A personal travel project. Prices come from Google Flights' public (unofficial) search, which can change without notice. Always check the fare before booking.
…/flight-tracker/?trip=ams.The page clearly says when a search was incomplete or the data is older than 12 hours.
Alerts go to a Discord channel (or a Telegram chat), or to the trip's own one, and name their destination in the title. Each flight in an alert lists its dates, price (per person in the trip's currency, plus the total with several travellers), flight times, connections and a link to search it on Google Flights. The amounts below are the defaults for a trip in euros.
| Message | Meaning |
|---|---|
| PRICE DROPPED / PRICE ROSE | The same flight dates changed by at least €25 since the last alert. |
| CHECK TO BUY | At or below your price target and close to the lowest price seen. |
| WITHIN BUDGET, but … | Within your target, but it has been at least €25 cheaper. |
| WATCH | Still above your target. |
| STRONG DEAL | At least 10% and €50 below the lowest price of the last 30 days. |
| CHEAPER ALTERNATIVE | Other dates are clearly cheaper than the ones you were alerted about. |
Searches without a new alert send a short "No price change" or "Only small price changes" note, linked to the last alert. When a trip's travel window has passed, one message says so and links to the settings page. A missing search result is never treated as a price change.
Open Change search on the dashboard to change what is tracked. Airports can be searched by city, airport name or code (German names such as "München" work too).
Changing a destination, the return airport, the currency, the search country, travellers, cabin, bags, separate tickets, the travel time limit, flight times, airlines or stops starts a new price history for that trip; the old one stays stored. Adding or reordering destinations keeps the existing histories.
Open jaw is experimental. Google searches these trips as multi-city flights. The search library warns that Google can answer such searches slowly or not at all, and this could not be tested live yet. If it fails, the dashboard reports an incomplete search and you get a "needs attention" message (at most once a day); no made-up prices are shown. The "Find flight" link asks Google for the multi-city trip in words and may open a plain search instead. Check the first results of such a trip, and use round trips if they keep failing.
Only issues from the repository owner are applied; anyone else's are closed
automatically. Settings are stored on the search-config branch; deleting that
branch returns to config.json on main.
DISCORD_WEBHOOK_URL
(Settings → Secrets and variables → Actions). Treat it like a password./newbot) and add its token
as the secret TELEGRAM_BOT_TOKEN./start to your bot, then run the Telegram setup workflow; it replies with
your chat ID.TELEGRAM_CHAT_ID and run Test Telegram.If both are set up, Discord is used. The repository variable NOTIFICATION_CHANNEL
(auto, discord or telegram) picks one explicitly.
A trip can send its price alerts, check notes and "travel window ended" message to
its own Discord channel or Telegram chat, for example a friend's who is tracking
flights home. "Needs attention" messages about the tracker itself always go to the
main channel above. Every trip has a trip ID, shown on Change search below the
trips (the first trip is main).
DISCORD_WEBHOOKS with one entry per trip ID:
{"ber": "https://discord.com/api/webhooks/…"}. Run Test Discord; it greets
every channel./start to your bot; within 30
minutes run Telegram setup, which replies to them with their chat ID. Add the
secret TELEGRAM_CHAT_IDS, e.g. {"ber": "123456789"}, and run Test
Telegram.A trip listed in both gets Discord. Trips without an entry use the main channel, and if one channel fails, the others still get their messages. Without a main channel, only trips with their own channel get messages.
You need a free GitHub account; no programming and no code changes. All links, the website address and the settings form adjust to your copy automatically.
main
branch only" ticked, so you start with your own empty price history.https://<your-user-name>.github.io/<repository-name>/.Good to know:
ber; several with commas) under
Only these trips. Empty searches all trips. The regular searches still cover
every trip.TRACKER_ENABLED with the value false
(Settings → Secrets and variables → Actions → Variables).DASHBOARD_URL (for example
https://flights.example.org/) so links in messages point there.More on operation and troubleshooting: DEPLOYMENT.md.
tracker-state branch show the
tracked routes, dates and prices. Don't use it for trips you want to keep private.python -m venv .venv && . .venv/bin/activate
python -m pip install --require-hashes -r requirements.txt
python -m unittest discover -s tests -v
node --test tests/site_model.test.mjs tests/search_model.test.mjs
python -m tracker demo --as-of 2026-09-18 # offline demo with synthetic prices
Other commands: python -m tracker plan, report, export --output history.csv,
discord-test, telegram-test. Don't run a live scan locally while the GitHub
workflow is running.
| Workflow | Purpose |
|---|---|
Track flights | Searches, checks flights, saves the history and sends messages |
Publish dashboard | Builds the website from the saved data |
Search schedule | Starts a search about every 6 hours (hourly check, optional external timer) |
Apply search settings | Applies settings issues from the owner |
Tests | Offline tests; no secrets, no live searches |
Check setup | Checklist of what a copy still needs |
Test Discord / Test Telegram / Telegram setup | Notification setup and tests |
History lives in a SQLite database on the tracker-state branch. Old observations are
cleaned up automatically, so it stays small. The search uses the open-source
fli client. Details on the data model, alerts,
trips, destinations and open-jaw searches, and the website:
docs/ARCHITECTURE.md.
Contributing: CONTRIBUTING.md.