Self-hosted NSW navigation: turn-by-turn, live traffic, partial-toll routes and EV charge planning
2.0K
A self-hosted navigation app for New South Wales, with turn-by-turn guidance, live traffic and NSW hazards.
Four things set it apart from other mapping tools:
Type a place name, pick a result, and read a traffic verdict for the route, with live travel times, hazards and closures along the way, and the tolls priced. Then tap Start: a map that turns with the road, the next turn in a banner, and a voice. A drive with the screen off can still be handed to OsmAnd or your default maps app.
It's a PWA, one container and one SQLite file. There are no accounts, and the server keeps nothing about where you go.
geo: point, or a GPX of the exact route
(detour and toll choice included).You need two free API keys:
services:
take-me:
image: darktrees/take-me:latest
env_file: .env
environment:
- TZ=Australia/Sydney
volumes:
- ./data:/data
ports:
- "8000:8000"
restart: unless-stopped
The container runs as uid 1000, and SQLite creates its file in /data, so
create the folder and hand it over before the first start:
mkdir -p data && sudo chown 1000:1000 data
The PWA needs HTTPS for its service worker, so put it behind a reverse proxy with a trusted certificate.
No endpoint has authentication. The tile and search endpoints spend your TomTom quota, so anything that can reach them can use it up. Keep Take Me on a private network such as Tailscale or WireGuard, and don't expose it to the internet. Check from outside after you deploy that the hostname doesn't answer.
Put these in .env beside the compose file. Never put them in the compose
file itself.
| Variable | Required | What it's for |
|---|---|---|
TFNSW_API_KEY | yes | Live Traffic NSW hazards, and toll prices |
TOMTOM_API_KEY | yes | Search, routing and map tiles |
HOME_LAT / HOME_LON | yes | The "home" origin for a route |
MISS_SALT | recommended | Salt for hashed search misses: openssl rand -hex 32 |
OCM_API_KEY | no | Open Charge Map, one more source for the charger list |
Everything else has a working default.
/api/health reports what is configured and what the last outbound calls did.
It makes no outbound calls of its own.
docker exec take-me python -m app.ev.dem fetchdocker exec take-me python -m app.crashload load /data/<file>.xlsxTake Me's licence covers its own code. The data comes from other providers, each under its own terms. Whoever runs Take Me supplies their own keys and agrees to each provider's terms themselves. The app shows the attribution each provider requires.
| Source | Used for | Terms |
|---|---|---|
| Transport for NSW | Hazards, toll prices, crash data; the fixed and red-light speed cameras and the school zones, fetched at runtime for the whole state | CC BY 4.0 (crash data CC BY 3.0 AU) |
| NSW Department of Education | School term dates, development days included, for when a school zone is in force; a small table ships in the image | Public dates; © State of New South Wales |
| TomTom | Search, routing, maps, chargers | Your own TomTom account's terms |
| OpenStreetMap via Overpass | Traffic signals, chargers, the cafés and car parks on the guidance map, and the named shops and businesses search falls back on; fetched at runtime for the region, and searched on the server so no query is sent anywhere | ODbL |
| Open Charge Map | Chargers (optional) | CC BY 4.0 |
| supercharge.info | Which Superchargers are open to all cars | No licence stated |
| ev-wiki | The car list | Free for personal use; fetched at runtime and never shipped in the image |
| Open EV Data | The car list, for models ev-wiki lacks | MIT, with attribution; a snapshot ships in the image |
| Open-Meteo | The temperature forecast for the energy model, fetched for a grid over the region | CC BY 4.0, free for non-commercial use; fetched at runtime and never shipped in the image |
| Terrain Tiles | Elevation | © Commonwealth of Australia (Geoscience Australia) 2017; SRTM courtesy of the U.S. Geological Survey |
The image also includes Leaflet (BSD-2-Clause) and MapLibre GL JS (BSD-3-Clause), each with its own licence file.
Take Me is source-available under the
PolyForm Noncommercial License 1.0.0.
Personal, hobby, research, educational and charity use are all welcome.
Commercial use is not permitted without a separate licence. That also
keeps you inside the terms of the car list, which is for personal use only.
The full terms are at /app/LICENSE in the image.
The code lives on a private forge. It's available on request for non-commercial use; get in touch through the contact link on the darktrees Docker Hub profile. To ask about commercial use, use the same link.
Content type
Image
Digest
sha256:df2323e69…
Size
56.4 MB
Last updated
about 2 hours ago
docker pull darktrees/take-me