Skip to main content

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, then docker 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:

  1. Validates the preset exists in regions/.
  2. Sends the new selection to the atlas-control sidecar.
  3. 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.
  4. The map page reloads its region_meta so 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

ScopeWhat scales downWhat doesn't
City (Berlin, Tokyo)Valhalla PBF + Overpass index + OTP graph + a self-built regional PMTilesPhoton (Komoot only publishes country/continent bundles), Placeholder (always global Who's-on-First)
CountryEverything except PlaceholderPlaceholder still pulls global WOF (~3 GB store after build)
Continent / planetNothing — 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.

ServicePhaseTime
PhotonDownload + extract≈10 min
PlaceholderWOF download + build≈1.5 hours (global WOF — country-independent)
libpostalReady<30 s
ValhallaPBF + admins + graph tiles30–50 min
OverpassPBF + initial ingest2–4 hours

Total disk for Germany with all defaults and remote basemap: ~73 GB under data/. Planet: ~1.15 TB.