A simple app to log and manage your flight history.
Flightlog uses AeroDataBox via RapidAPI to fetch flight data. It calls the Get Flight on Specific Date endpoint and caches results locally in SQLite to minimize API usage.
To get an API key:
- Sign up at rapidapi.com
- Subscribe to AeroDataBox (free tier available)
- Copy your X-RapidAPI-Key
Copy .env.example to .env and set the required values.
| Variable | Description |
|---|---|
AERODATABOX_API_KEY |
Your RapidAPI key from the step above |
AUTH_JWT_SECRET |
Secret for signing JWT tokens (openssl rand -base64 32) |
| Variable | Default | Description |
|---|---|---|
ENVIRONMENT |
production |
Set to development for debug info |
SERVER_PORT |
8080 |
HTTP port |
LOG_LEVEL |
info |
debug, info, warn, error |
Create a docker-compose.yml:
services:
flightlog:
image: ghcr.io/thulasirajkomminar/flightlog:latest
env_file: .env
ports:
- 8080:8080
volumes:
- flightlog_data:/app/data
restart: unless-stopped
volumes:
flightlog_data:docker compose up -dservices:
flightlog:
container_name: flightlog
environment:
- AERODATABOX_API_KEY=${AERODATABOX_API_KEY}
- AUTH_JWT_SECRET=${AUTH_JWT_SECRET}
image: ghcr.io/thulasirajkomminar/flightlog:latest
labels:
- traefik.enable=true
- traefik.http.routers.flightlog.entrypoints=websecure
- traefik.http.routers.flightlog.rule=Host(`flightlog.example.com`)
- traefik.http.routers.flightlog.tls=true
- traefik.http.routers.flightlog.tls.certresolver=cloudflare
- traefik.http.services.flightlog.loadbalancer.server.port=8080
networks:
- proxy
restart: unless-stopped
volumes:
- /opt/docker/flightlog/data:/app/data
networks:
proxy:
external: truedocker compose up -dHead to My Flights and hit the Export button — you'll get a CSV file (flightlog-export.csv) with everything: flight details, airline info, airport data (with coordinates), times, terminals, gates, aircraft, distance. 29 columns in total.
From My Flights, click Import to open the import dialog:
- Select source — pick your CSV format from the dropdown
- Upload CSV — choose your file (up to 5 MB, 100 flights per import)
- Preview — the dialog will tell you how many flights it found
- Enrich (Flighty only) — optionally pull in extra detail (gates, aircraft, actual times) for recent flights (within the last year) via AeroDataBox
- Import — you're done
| Source | Description | API Calls |
|---|---|---|
| Flighty | Import from a Flighty CSV export. These only include the basics (date, airline, flight number, airports), so enrichment is available to fill in the gaps. | Airport lookups + optional enrichment via AeroDataBox |
| Flightlog | Re-import your own Flightlog export. All fields come straight from the CSV — no lookups needed. | None |
Tip
A handy way to migrate to a new instance: export your flights, then re-import. No API calls required.




