No description
- TypeScript 68.3%
- Svelte 26.5%
- Dockerfile 1.6%
- Shell 1.1%
- Python 1%
- Other 1.5%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
|
All checks were successful
Build & Deploy / deploy-test (push) Has been skipped
Build & Deploy / deploy-production (push) Successful in 16s
Build & Deploy / detect-changes (push) Successful in 8s
Build & Deploy / build-and-push (push) Successful in 52s
Build & Deploy / deploy-dev (push) Has been skipped
Build & Deploy / test (push) Successful in 2m49s
Concurrent deploys (e.g. main + production pushed close together) run git fetch origin in the same /data/apps/airwaysgg dir and collide on ref locks (cannot lock ref 'refs/remotes/origin/...'). Fetch only the target branch and retry checkout/pull up to 5x to ride out the race. |
||
| .cc-mirror/kimi/config/plans | ||
| .forgejo/workflows | ||
| apps | ||
| packages | ||
| scripts | ||
| .dockerignore | ||
| .env.example | ||
| .gitignore | ||
| .mcp.json | ||
| AGENTS.md | ||
| CLAUDE.md | ||
| docker-compose.dev.yml | ||
| docker-compose.prod.yml | ||
| docker-compose.test.yml | ||
| docker-compose.yml | ||
| package-lock.json | ||
| package.json | ||
| PLAN.md | ||
| PROJECT_SUMMARY.md | ||
| README.md | ||
airways.gg
Flight tracking platform for Guernsey Airport.
Overview
Shows live arrivals/departures with ML-powered delay predictions based on weather data and historical flight performance.
Tech Stack
- Frontend: SvelteKit 5 + TypeScript + Tailwind CSS
- Database: PostgreSQL + Drizzle ORM
- Scrapers:
- Guernsey Airport (airport.gg): HTTP-based TypeScript scraper
- FlightRadar24: Flight data scraper
- ADS-B: Aircraft registration lookup (adsb.lol / airplanes.live)
- ML Service: Python FastAPI + scikit-learn
- Infrastructure: Docker + Docker Compose
Project Structure
airways.gg/
├── apps/
│ ├── web/ # SvelteKit frontend
│ ├── guernsey-scraper/ # Airport.gg scraper (live + historical backfill)
│ ├── fr24-scraper/ # FlightRadar24 flight data scraper
│ ├── adsb-service/ # ADS-B aircraft registration lookup
│ ├── position-service/ # FR24 live aircraft position poller
│ ├── weather-service/ # Weather data poller
│ └── ml-service/ # Python ML prediction service
├── packages/
│ └── database/ # Drizzle ORM schema & connection
├── docker-compose.yml
├── .env.example
└── package.json
Quick Start
- Install dependencies:
npm install
- Set up environment:
cp .env.example .env
# Edit .env with your database credentials
- Run database migrations:
npm run db:push
- Start development:
npm run dev
Docker Deployment
# Build and start all services
docker compose -f docker-compose.prod.yml --env-file .env.prod up -d
# Run historical backfill
docker compose -f docker-compose.prod.yml --env-file .env.prod --profile backfill up guernsey-backfill
Environment Variables
See .env.example for all required variables.
Key variables:
DATABASE_URL- PostgreSQL connection stringREDIS_URL- Redis/Valkey connection stringSESSION_SECRET- Session encryption key
Features
- Live departure/arrival board with auto-refresh
- ML delay predictions with confidence levels
- Historical data backfill (5+ years)
- Real-time aircraft position tracking
- Admin panel for monitoring
- Dark/light mode
- Mobile-first responsive design
License
Private - All rights reserved.