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 in-app control plane 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. Hands the new selection to the in-app control plane (Atlas.Control.*).
  3. The control plane updates the active region records, downloads and stages the new OSM/GTFS inputs, then restarts the enabled data services and the selected transit engine. Progress streams back over the LiveView WebSocket.
  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.

Discovering coverage from a client​

Clients can inspect the running instance without relying on the last region selected in Settings:

curl http://localhost:8484/api/v1/coverage

The response lists geocoding, routing, map_matching, pois, and transit under data.capabilities. Each capability includes its live service status, an available flag, the backing service, and the region names Atlas can verify from installed dataset provenance. coverage_status: "unknown" means Atlas cannot prove a region name; it does not mean that the service has no data.

Map matching inherits the routing regions because both use Valhalla. Transit also exposes transit_feeds: timetable coverage can differ from the installed walking network, so clients should not treat them as one region list. The per-capability note explains cases where staged inputs may be newer than the currently built service graph.

Scaling rules of thumb​

ScopeWhat scales downWhat doesn't
City (Berlin, Tokyo)Valhalla PBF + Overpass index + MOTIS or 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

Apply the preset from Settings → Region → Save & apply after booting the app. Atlas stages the merged PBF for Valhalla, Overpass and the selected transit engine automatically.

Resetting per-service data after a region change​

If you switch regions on a stack that already has fully-built data, use the admin panel's Save & apply flow. It refreshes the shared inputs, invalidates affected graphs and restarts the enabled sidecars in the required order. Avoid deleting service data by hand unless you intentionally want a full rebuild.

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.