Upgrading Atlas
Upgrade from 0.5.1 to 0.6.0
- Stop the app while backing up
.env, Compose overrides and the completedata/app/directory. Keep the previous checkout and image available for rollback. - Fetch and check out
v0.6.0. The checkout contains the newMAP_MATCH_CONCURRENCYCompose setting, so update the checkout together with the app image. - To pin the release, set
APP_IMAGE=ghcr.io/dawarich-app/atlas/app:0.6.0in.env, then rundocker compose pull appanddocker compose up -d app caddy. - Check
/api/v1/version, road routing and a representative map-match request. Existing regions, service selections and transit data do not need to be rebuilt for this upgrade.
Map-match clients need one compatibility change. data.legs now contains all
matched trace segments without narrative maneuvers. Clients that need maneuvers
must send include_directions=true and read every entry in
data.directions.paths. See Map matching for the response
formats and retry behaviour.
Atlas accepts four map matches at once by default. Extra requests receive
429 MAP_MATCH_BUSY with Retry-After: 1; clients should retry after that delay.
Operators can set MAP_MATCH_CONCURRENCY to a positive integer after measuring
Valhalla capacity. MAP_MATCH_MAX_POINTS continues to control the largest trace
accepted in one request and defaults to 10,000.
Upgrade from 0.5.0 to 0.5.1
- Stop the app while backing up
.env, Compose overrides and the completedata/app/directory, including SQLite WAL files and the signing secret. Keep a record of your previous checkout and image for rollback. - Fetch and check out
v0.5.1, preserving local configuration. Update both the checkout and image: this release changesscripts/motis/start.sh. - To pin the release, set
APP_IMAGE=ghcr.io/dawarich-app/atlas/app:0.5.1in.env. Rundocker compose pull appanddocker compose up -d app. - Existing installations keep their selected transit engine and regional timetables. Settings → Setup wizard is optional. Connecting a source edits configuration; Download & apply downloads the selected timetables and rebuilds the selected transit engine, which can interrupt routing.
- Review provider coverage and license information before applying a source selection. Daily updates and realtime endpoints are optional. Applying managed sources replaces the timetable selection, not street data.
- Check
/api/v1/version, a local search and a route. No manual schema migration or regional re-download is required just to upgrade the app.
Upgrade from 0.4.0 to 0.5.0
- Back up
data/app/atlas.sqlite3and your.envbefore changing the checkout. - Fetch the release:
git fetch --tags origin, thengit checkout v0.5.0. - Pull and recreate the application:
docker compose pull app && docker compose up -d app. - Atlas now defaults new installations to MOTIS for
/api/v1/transit. Existing saved engine choices are deliberately preserved. Select MOTIS in Settings → Services → Public transport → Transit engine if the instance still uses OTP; wait for the MOTIS service to reach Ready before routing.
What changes in 0.5.0
- MOTIS is available as the default transit engine, while OTP remains a supported alternative.
- The public transit response envelope stays stable; clients do not need to change when the selected engine changes.
- Search now collects and clusters results beyond the initial geocoder page.
Upgrade from 0.3.0 to 0.4.0
- Record your current checkout (
git rev-parse HEAD) and retain your current local image:docker image tag "$(docker inspect atlas-app --format '{{.Image}}')" atlas-app:before-0.4.0. Stop writes while making a backup:docker compose stop app. - Back up
.env, your Compose overrides anddata/app/while the app is stopped. Preserve the whole directory, including SQLite WAL files and.secret_key_base; this keeps settings and signed sessions. Back up any other data you need to restore, especially before changing regions. - Fetch the release:
git fetch --tags origin, thengit checkout v0.4.0. Keep your local configuration changes. Do not overwrite.envwith an example file. The checkout includes updated Compose files andscript/placeholder-entrypoint.cjs, so pulling just the image is insufficient. - To pin the image, set
APP_IMAGE=ghcr.io/dawarich-app/atlas/app:0.4.0in.env. Rundocker compose pull appthendocker compose up -d app caddy. The app applies its database migrations at startup. - If Placeholder was already enabled, recreate it with
docker compose up -d placeholderto apply its new startup script. Check/api/v1/version, the Settings service statuses, search and routing before resuming use.
What changes in 0.4.0
latestmeans the newest stable release. Development commits are not published to that tag.- Placeholder no longer needs a manual WhosOnFirst import for normal setup.
On its first start it downloads the official prebuilt database (about 1.9 GB
compressed; allow additional space for the expanded SQLite file). The
download is streamed, validated against the pinned service's schema and
renamed into place only when complete. Later starts work offline. An invalid
existing database is preserved as
store.sqlite3.backup-<timestamp>after a valid replacement has been downloaded. A failed download leaves the old file intact.PLACEHOLDER_DATABASE_URLcan point to an internal gzip mirror. - The app and Placeholder start as root only to prepare their own data
directories, then drop privileges to
PUID:PGID(default65534:65534). Keep those variables set to the owner of your NAS appdata share if needed. The app reads the Docker socket's group automatically. - The control plane now reads
.env. IfCOUNTRY_CODEdiffers from previous implicit defaults, a newly started Photon container will use the configured country. Review the value before recreating services. - Region apply stages the PBF for Valhalla and reports ingestion/restart errors. Re-apply your selected region if routing has no tiles. Region rebuilds can take time and must have enough free disk space.
- Directions has a submit button; Transit uses OTP; map matching is available
through
POST /api/v1/map-match.
The official Placeholder database source and local-build instructions are documented in Pelias Placeholder. WhosOnFirst remains an optional manual data source; it is not downloaded when Search is enabled through Settings.
Rollback
Stop the app, preserve the failed upgrade's data separately, restore the
data/app/ backup, and return to the previously recorded checkout and image.
Use APP_IMAGE=atlas-app:before-0.4.0 and APP_PULL_POLICY=never, then run
docker compose up -d app caddy. The original 0.3.0 publication did not provide
a :0.3.0 image tag, so retain the exact image instead of relying on that tag
or on a mutable latest. Restore any region datasets
you changed after the backup if you need the previous maps too. Do not delete
all of data/: it contains separately owned upstream databases.
An application rollback does not reverse upstream data rebuilds. A backup of
data/app/ restores Atlas settings; restoring a prior map dataset requires a
backup of that service's data as well.