From 535a3a4f18fa0cb83424a9e7c0193d420808c7c2 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 14 Apr 2026 13:55:57 +0000 Subject: [PATCH 1/2] Initial plan From 8af5563069cc7ab79e4fbf38c2da2ca95cdff553 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 14 Apr 2026 14:01:32 +0000 Subject: [PATCH 2/2] Add GitHub Pages documentation site and deployment workflow Agent-Logs-Url: https://github.com/rorpage/gee-bee/sessions/7d9a5d41-8d9b-4314-9a43-04670ecb6d94 Co-authored-by: rorpage <1423093+rorpage@users.noreply.github.com> --- .github/workflows/pages.yml | 41 +++ docs/index.html | 600 ++++++++++++++++++++++++++++++++++++ 2 files changed, 641 insertions(+) create mode 100644 .github/workflows/pages.yml create mode 100644 docs/index.html diff --git a/.github/workflows/pages.yml b/.github/workflows/pages.yml new file mode 100644 index 0000000..c4bb095 --- /dev/null +++ b/.github/workflows/pages.yml @@ -0,0 +1,41 @@ +name: Deploy Documentation to GitHub Pages + +on: + push: + branches: + - main + paths: + - 'docs/**' + workflow_dispatch: + +permissions: + contents: read + pages: write + id-token: write + +concurrency: + group: pages + cancel-in-progress: false + +jobs: + deploy: + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Setup Pages + uses: actions/configure-pages@v5 + + - name: Upload artifact + uses: actions/upload-pages-artifact@v3 + with: + path: docs + + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4 diff --git a/docs/index.html b/docs/index.html new file mode 100644 index 0000000..c8ba331 --- /dev/null +++ b/docs/index.html @@ -0,0 +1,600 @@ + + + + + + Gee Bee – Airplane Tail Number Tracker + + + + +
+ ✈️ +

Gee Bee

+

+ An app that alerts you when it detects specific airplane tail numbers in + flight. +

+
+ GitHub Repository + Releases +
+
+ +
+ +
+

About

+

+ Gee Bee is a lightweight Go application that + continuously polls live flight data from + ADSB.one + and fires a notification whenever one of your watched tail numbers + takes to the skies. It supports Discord, Slack, and any custom + webhook. +

+

+ Gee Bee is heavily inspired by and shares logic with + Jetspotter + by + Vincent Van Ouytsel. Many thanks for the excellent foundation! +

+
+
+ 🔍 +

Live Flight Tracking

+

+ Queries the ADSB.one API on a configurable interval to track + specific registrations. +

+
+
+ 🔔 +

Multi-channel Alerts

+

+ Push notifications to Discord, Slack, or any custom HTTP + endpoint. +

+
+
+ 🐳 +

Docker Ready

+

+ A production-ready Docker image is built and published + automatically on every commit to main. +

+
+
+ ⚙️ +

Flexible Config

+

+ Configure via a YAML file or plain environment variables – ideal + for containers and CI pipelines. +

+
+
+
+ + +
+

Quick Start

+ +

1 – Clone and configure

+
git clone https://github.com/rorpage/gee-bee.git
+cd gee-bee
+cp config.example.yml config.yml
+# Edit config.yml with your tail numbers and webhook URLs
+ +

2 – Run

+
task run
+

+ Or with the Go tool directly: +

+
go run cmd/geebee/*
+ +

3 – Build

+
task build   # produces gee-bee.exe
+ +
+ 💡 No config file? Sensible defaults are baked in. + You can testdrive the app without any configuration by running it + directly. +
+
+ + +
+

Docker

+

+ A pre-built image is published to the GitHub Container Registry on + every push to main. Pull and run it with: +

+
docker run --rm \
+  -e TAIL_NUMBERS="28000,29000" \
+  -e DISCORD_WEBHOOK_URL="https://discord.com/api/webhooks/…" \
+  ghcr.io/rorpage/gee-bee:latest
+ +

Or with Docker Compose:

+
services:
+  gee-bee:
+    image: ghcr.io/rorpage/gee-bee:latest
+    environment:
+      TAIL_NUMBERS: "28000,29000"
+      DISCORD_WEBHOOK_URL: "https://discord.com/api/webhooks/…"
+      FETCH_INTERVAL: "60"
+    restart: unless-stopped
+
+ + +
+

Configuration

+

+ Values can be set in a config.yml / + config.yaml file placed next to the binary, or via + environment variables. Environment variables take precedence. +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Config key / Env varDefaultDescription
+ tailNumbers
TAIL_NUMBERS +
28000,29000 + Comma-separated list of aircraft registrations (tail numbers) to + watch. +
+ fetchInterval
FETCH_INTERVAL +
60 + How often (in seconds) to poll the flight API. Values below 60 + may trigger rate limits. +
+ logPlanesToConsole
LOG_PLANES_TO_CONSOLE +
truePrint spotted aircraft details to stdout.
+ discordWebhookUrl
DISCORD_WEBHOOK_URL +
emptyDiscord incoming-webhook URL for notifications.
+ slackWebhookUrl
SLACK_WEBHOOK_URL +
emptySlack incoming-webhook URL for notifications.
+ customWebhookUrl
CUSTOM_WEBHOOK_URL +
empty + Any HTTP endpoint that accepts a JSON POST. See the + Custom Webhook section for the + payload shape. +
+ +

Example config.yml

+
tailNumbers: 28000,29000
+fetchInterval: 60
+logPlanesToConsole: true
+discordWebhookUrl: https://discord.com/api/webhooks/12345/abcdef-ghijkl
+slackWebhookUrl: https://hooks.slack.com/services/random/ids/andstrings
+customWebhookUrl: https://your-custom-url.com/endpoint
+
+ + +
+

Notifications

+ +

Discord

+

+ Set discordWebhookUrl to a valid Discord + Incoming Webhook + URL. Gee Bee posts a rich embed for each spotted aircraft containing + callsign, registration, speed, altitude, heading, aircraft type, + owner/operator, and a thumbnail image when available. +

+ +

Slack

+

+ Set slackWebhookUrl to a Slack + Incoming Webhook + URL. Notifications use Slack's Block Kit for clean, structured + messages. +

+ +

Custom Webhook

+

+ Set customWebhookUrl to any URL that accepts an HTTP POST + with a JSON body. Gee Bee sends the following payload per spotted + aircraft: +

+
{
+  "altitude":      "3,200 m",
+  "callsign":      "AF001",
+  "description":   "Boeing 747-400",
+  "heading":       "270°",
+  "imageUrl":      "https://…",
+  "ownerOperator": "Air France",
+  "speed":         "900 km/h",
+  "squawk":        "1234",
+  "tailNumber":    "F-GITD",
+  "type":          "B744",
+  "url":           "https://globe.adsbexchange.com/…"
+}
+
+ + +
+

Taskfile Commands

+

+ Gee Bee uses + Task + as its task runner. Install it once and use the following commands: +

+ + + + + + + + + + + + + + + + + + + + + +
CommandDescription
task buildCompile the app to a gee-bee.exe binary.
task format + Run gofmt -s -w . to format all Go source files. +
task run + Run the app directly with go run, reading + configuration from config.yml or env vars. +
+
+ + +
+

License

+

+ Gee Bee is released under the + MIT License. +

+
+
+ + + +