Data sources overview
| Service | Key required | Data layer | Free tier |
|---|---|---|---|
| AISStream.io | Optional — AIS_API_KEY | Real-time vessel positions (ships layer empty without it) | Yes |
| OpenSky Network | Optional — OPENSKY_CLIENT_ID + OPENSKY_CLIENT_SECRET | Flight gap-fill in Africa / Asia / LatAm | Yes (400 req/day) |
| LTA DataMall | Optional — LTA_ACCOUNT_KEY | Singapore CCTV traffic cameras | Yes |
| ADS-B Exchange (adsb.lol) | No | Global commercial, military, and private flights | — |
| USGS Earthquakes | No | Real-time earthquake feed | — |
| CelesTrak | No | Satellite orbital elements (TLEs) | — |
| GDELT Project | No | Geolocated news events | — |
| Nominatim | No | Reverse geocoding | — |
| RainViewer | No | Weather radar tiles | — |
| OpenMHz | No | Public radio scanner feeds | — |
| Yahoo Finance | No | Defense stocks and commodity prices | — |
Setting up each key
AIS Stream (required for ships layer)
Create a free account
Go to aisstream.io and sign up for a free account. No credit card is required.
Generate a WebSocket API key
After logging in, navigate to your dashboard and create a new API key. Copy the key — you will only see it once.
Add the key to your environment
Set
AIS_API_KEY in backend/.env or your Docker Compose environment:backend/.env
OpenSky Network (optional — improves flight coverage)
OpenSky fills in flight data in regions where ADS-B Exchange has sparse coverage. Both the client ID and client secret must be set together.Register on OpenSky Network
Create a free account at opensky-network.org. The free tier provides 400 API requests per day.
Create an OAuth2 application
In your OpenSky dashboard, navigate to API → OAuth2 Applications and create a new application. Note the client ID and client secret.
LTA DataMall (optional — Singapore CCTV cameras)
Register for LTA DataMall access
Go to datamall.lta.gov.sg and request API access. LTA requires a brief registration form. The key is provided free of charge.
Managing keys via the Settings panel
You can view and update API keys through the Settings panel in the dashboard UI without restarting the backend. Keys are written tobackend/.env and take effect immediately in the running process.
- Open the dashboard and click Settings in the sidebar.
- Navigate to the API Keys tab.
- Click the edit icon next to any key.
- Enter the new value and click Save.
The Settings panel shows obfuscated key values — the first four characters followed by bullets. It never exposes the full key.
The /api/settings/api-keys endpoint
You can also manage keys programmatically via the REST API.GET /api/settings/api-keys
Returns the full API registry with obfuscated values andis_set flags.
PUT /api/settings/api-keys
Updates a single key. The key takes effect immediately without a restart.env_key values: AIS_API_KEY, OPENSKY_CLIENT_ID, OPENSKY_CLIENT_SECRET, LTA_ACCOUNT_KEY.
ADMIN_KEY security
ADMIN_KEY protects the following endpoints:
GET /api/settings/api-keysPUT /api/settings/api-keysPUT /api/settings/news-feedsPOST /api/settings/news-feeds/resetPOST /api/system/update
403 Forbidden.
Choosing an ADMIN_KEY value
Use a long, random string. You can generate one with:backend/.env or via Docker secrets (see Environment variables for the _FILE variant).