Put your photos back on the map

Scans, old imports and stripped exports lose their GPS. Immich Places gives you a fast map and list to hand those photos a location, one drop at a time or a whole track at once.

Immich Places: a photo grid filtered by GPS status beside the map view

LEAFLET MAP · GPX IMPORT · NOMINATIM + HERE + GOOGLE · SQLITE · DOCKER

A workflow built for the map

Everything is arranged around one job: getting a location onto the photos that are missing it, fast.

Drag onto the map

Drop a photo straight onto the map to assign its coordinates. Clustered markers keep thousands of pins readable.

Search any place

Geocoding with autocomplete and history, Nominatim by default, with optional HERE and Google providers for tougher lookups.

Smart suggestions

Locations pulled from same-day and nearby-day shots, weekly patterns, frequent spots and the album a photo belongs to.

Import a GPX track

Upload one or many GPX tracks and batch-assign coordinates to photos by their timestamp, no clicking required.

Favorite places

Star locations from search results for one-tap reuse across a session. The spots you use often stay one click away.

Browse and filter

A photo grid filtered by GPS status or album, with a fullscreen lightbox and shift+click multi-select for bulk work.

Nothing changes until you say so

Every edit is staged locally first. You place photos, review the pending changes, and only then does anything reach your Immich server, in one deliberate save.

  • Edits live in a local SQLite database; Immich is untouched until you save
  • A confirmation bar lets you review, then save or cancel pending changes in bulk
  • Background sync keeps assets current, with a manual trigger when you want it now

# Immich API key needs
user.read
asset.read
asset.update
asset.view
album.read
stack.read

validated against /api/users/me

Yours, and reversible

It stages everything locally and only ever writes the coordinates you approve.

Local by default

State lives in a local SQLite database on the host you run. Your Immich server only ever sees the writes you approve.

Bulk, then commit

Multi-select with shift+click, assign in bulk, and review everything in the confirmation bar before a single change is saved.

Bring your own geocoder

Start with Nominatim for free, then add HERE or Google keys for stronger results. The provider chain falls through automatically.

Dawarich-ready

Optionally pull location history from Dawarich to place photos by where you actually were, not just where you guess.

Running in three steps

Set an env, bring it up with compose, and log in to start placing.

$ cp .env.example .env
$ docker compose up -d --build
→ backend :8082
→ web :3032

# open localhost:3032

  1. 1

    Copy the env

    Run cp .env.example .env and set IMMICH_URL and a stable ENCRYPTION_KEY.

  2. 2

    docker compose up

    docker compose up -d --build brings up the Go backend and the web UI on port 3032.

  3. 3

    Log in and place

    Open localhost:3032, paste your API key, wait for sync, then start dropping photos on the map.

Fair questions

Is it free?

Yes. Immich Places is open source and runs with Docker compose. Nominatim geocoding needs no API key, so the default setup costs nothing.

Does it change my photos right away?

No. Edits live in a local SQLite database and nothing is written back to Immich until you review the pending changes and save them from the confirmation bar.

What Immich permissions does it need?

An API key with read and update on assets, plus album and stack read. It validates the key against /api/users/me before syncing.

Can it use Google or HERE maps?

Yes. Nominatim is the default; add HERE and/or Google keys and the provider chain tries each in order until one returns a strong result.

Can I tag from a GPS track?

Yes. Import one or more GPX tracks and it assigns coordinates to photos by matching timestamps, so a whole trip can be placed at once.

Is this an official Immich tool?

No. It's an independent open-source companion that talks to Immich's public REST API. Immich is a trademark of its respective owners.

Free & open source

Give every photo a place

Fix the geolocation on years of old shots, keep your albums in sync, and do it from a map instead of one asset at a time.