Regions
Dawarich Atlas is region-agnostic — the same compose stack serves Berlin, Germany, Europe, or the entire planet depending on the data you point it at. Configuration is one preset file per region under regions/.
There are two ways to switch regions:
- From the admin UI — open
http://localhost:8484, click the Settings tab, pick a region from the chips, hit Save & apply. The Go sidecar swaps the active selection and triggers any data downloads. - From the shell, before boot — copy a preset over
.env, thendocker compose up -d. This is the path used in Quickstart.
Built-in presets
regions/
├── berlin.env # city (BBBike Berlin) — ~30 MB PBF, ~5 GB total
├── germany.env # country (Geofabrik DE) — ~4 GB PBF, ~73 GB total
├── france.env # country (Geofabrik FR) — ~4.5 GB PBF, ~80 GB total
├── usa.env # country (Geofabrik US) — ~10 GB PBF, ~175 GB total
├── europe.env # continent (Geofabrik EU) — ~30 GB PBF, ~280 GB total
├── planet.env # planet — ~75 GB PBF, ~1.15 TB total
├── multi-dach.env # DE + AT + CH (merged)
└── multi-cities.env # Berlin + Vienna (merged)
Switching from the shell
cp regions/germany.env .env
docker compose up -d
Each regions/<name>.env is a complete env file that defines PBF_URL, COUNTRY_CODE (for Photon), DEFAULT_LAT/DEFAULT_LON/DEFAULT_ZOOM, and the basemap TILES_URL. Docker Compose picks it up on up -d.
When you change .env on an already-running stack, services that read it at boot need a restart:
docker compose up -d --force-recreate
Switching from the admin UI
If the stack is already booted, the admin panel is the easier path:
Settings ▸ Region ▸ pick a preset ▸ Save & apply
Behind the scenes, Atlas:
- Validates the preset exists in
regions/. - Sends the new selection to the
atlas-controlsidecar. - The sidecar updates the active region records, triggers re-downloads where needed (Photon country bundle, Valhalla PBF, Overpass index), and streams progress back over Action Cable.
- The map page reloads its
region_metaso its default centre / zoom matches the new region.
The map page stays live throughout. Data services restart in the background as their data lands.
Scaling rules of thumb
| Scope | What scales down | What doesn't |
|---|---|---|
| City (Berlin, Tokyo) | Valhalla PBF + Overpass index + OTP graph + a self-built regional PMTiles | Photon (Komoot only publishes country/continent bundles), Placeholder (always global Who's-on-First) |
| Country | Everything except Placeholder | Placeholder still pulls global WOF (~3 GB store after build) |
| Continent / planet | Nothing — full-scale ingest | — |
Generating a new region preset
For a city BBBike publishes (~200 cities):
cat > regions/tokyo.env <<'ENV'
PBF_URL=https://download.bbbike.org/osm/bbbike/Tokyo/Tokyo.osm.pbf
PBF_NAME=Tokyo.osm.pbf
COUNTRY_CODE=jp
DEFAULT_LAT=35.68
DEFAULT_LON=139.69
DEFAULT_ZOOM=11
ENV
cp regions/tokyo.env .env
docker compose up -d
For any Geofabrik country:
cat > regions/france.env <<'ENV'
PBF_URL=https://download.geofabrik.de/europe/france-latest.osm.pbf
PBF_NAME=france-latest.osm.pbf
COUNTRY_CODE=fr
DEFAULT_LAT=46.0
DEFAULT_LON=2.5
DEFAULT_ZOOM=6
ENV
cp regions/france.env .env
docker compose up -d
Once the preset file exists in regions/, it shows up in the admin panel's region chips automatically.
Multi-region (merged extracts)
Multi-region presets list PBF_URLS= and a derived merged file path. The merge step uses osmium-tool inside a one-shot container:
cp regions/multi-dach.env .env
docker compose run --rm osmium-merge # downloads sources, runs osmium merge, writes data/osm/<merged>.osm.pbf
docker compose up -d # boot the stack pointed at the merged PBF
WIP: auto-wiring the merged PBF into Valhalla / Overpass / OTP is partially scripted. For now the merged file is produced under
data/osm/, but you may need to symlink it into the service-specific input directories. See the README for the manual copy step.
Resetting per-service data after a region change
If you switch regions on a stack that already has fully-built data, the services need their existing indexes wiped so they rebuild against the new PBF. Per-service cleanup:
docker compose down photon valhalla overpass otp
rm -rf data/photon/* data/valhalla/* data/overpass/* data/otp/*
docker compose --profile geocoding --profile routing --profile pois --profile transit up -d
The admin panel's Save & apply flow handles the same teardown automatically when it detects an incompatible existing index.
Realistic first-boot timings (Germany, 100 Mbps link)
| Service | Phase | Time |
|---|---|---|
| Photon | Download + extract | ≈10 min |
| Placeholder | WOF download + build | ≈1.5 hours (global WOF — country-independent) |
| libpostal | Ready | <30 s |
| Valhalla | PBF + admins + graph tiles | 30–50 min |
| Overpass | PBF + initial ingest | 2–4 hours |
Total disk for Germany with all defaults and remote basemap: ~73 GB under data/. Planet: ~1.15 TB.