Dawarich

Your own location history, like Google Timeline.

  • ghcr.io/hsinghhira/dawarich:latest
  • v1.19.0
  • Updated 30 Oct 2026
  • port 6175
  • amd64 · arm64
  • Others
  • 10.8k stars

Screenshots

Dawarich screenshot 1: MapDawarich screenshot 2: TimelineDawarich screenshot 3: StatsDawarich screenshot 4: TripsDawarich screenshot 5: Family

Open the app

Web App

http://localhost:6175/

API Docs

http://localhost:6175/api-docs

About Dawarich

Dawarich keeps your location history on your own server, like Google Timeline (Location History). Send points from your phone, import your old Google data, and see where you've been on a map. This is Dawarich in a single container, with PostgreSQL (with PostGIS) and Redis inside, one port and one data folder. All secret keys and the first password are made for you on first start.

Features

  • Map of everywhere you've been, with a timeline per day
  • Track your phone with the Dawarich app (iOS, Android), OwnTracks, Overland, GPSLogger or Home Assistant
  • Import Google Takeout and Timeline, GPX, GeoJSON, OwnTracks and photo locations from Immich or Photoprism
  • Visits and places, trips, countries and cities, yearly stats
  • Share your location with family, and make route videos and posters
  • Your data stays on your server; export it any time

How to use

  1. Open Dawarich from your dashboard.
  2. Sign in as [email protected] with the password from the app logs (the line "Dawarich login is").
  3. Change the email and password in Account settings.
  4. Import your old data under Imports, or connect a phone app with the API key from Account settings and the server http://[ZIMAOS-IP-ADDRESS]:6175.

Before you install

PUBLIC_URL starts as http://localhost:6175. Change localhost to your ZimaOS IP, like http://192.168.1.20:6175, so links in emails work; Dawarich itself opens from any address. Leave ADMIN_PASSWORD empty to get a new password: it is in the app logs on the line "Dawarich login is" and in admin-password.txt in the data folder. The first start takes about five minutes. Email, OIDC sign-in, place names (reverse geocoding), S3 storage and the other settings are in the Variables tab; add them in the app settings. Plan for 1 to 4 GB of memory, more with large imports. To sync Strava activities into Dawarich, install Strava to Dawarich from IceStore too.

The settings in the first table are already in the app settings. To use any other one, open the app settings, add the variable with your value, save, and the app restarts with it. A setting you leave out uses its default.

In the app settings

VariableDefault valueDescription
TZ$TZYour time zone. It is filled in from your ZimaOS time zone. Dawarich uses it for days and times on the map and in stats.
PUBLIC_URLhttp://localhost:6175The address you open Dawarich at, like http://192.168.1.20:6175. Only used for links in emails: Dawarich works from any address. With an https:// address (your own domain behind HTTPS), Dawarich only allows HTTPS.
ADMIN_PASSWORD—The password for the first account, [email protected]. Leave it empty and one is made for you; it is in the app logs on the line "Dawarich login is". Used only until you change the password in Dawarich.

Server

VariableDefault valueDescription
APPLICATION_HOSTS—The addresses Dawarich may be opened at, comma separated, like dawarich.example.com,192.168.1.20. Leave it out to allow any address.

Sign-up and accounts

VariableDefault valueDescription
ALLOW_EMAIL_PASSWORD_REGISTRATIONfalseSet to true so anyone can make an account with email and password. Otherwise only people you invite (family) can join.
ALLOW_EMAIL_PASSWORD_LOGINtrueSet to false to hide the email and password form when OIDC sign-in is on, so people can only sign in with OIDC.

Email (SMTP)

VariableDefault valueDescription
SMTP_SERVER—Your mail server, like smtp.gmail.com. Leave it out to send no emails.
SMTP_PORT—Your mail server's port, usually 587, or 465 for TLS from the start.
SMTP_USERNAME—The user name for your mail server.
SMTP_PASSWORD—The password for your mail server.
SMTP_FROM—The sender address on emails, like [email protected].
SMTP_DOMAIN—The domain Dawarich says hello as to the mail server. Most servers don't need it.
SMTP_SSL—Set to true for TLS from the start. It turns on by itself with port 465.
SMTP_STARTTLStrueSet to false to not use STARTTLS on ports other than 465.
SMTP_AUTHENTICATIONplainHow to log in to the mail server: plain, login, cram_md5, or none for a server that needs no login.
SMTP_OPENSSL_VERIFY_MODE—Set to none to skip checking the mail server's certificate, for a server on your network with a self-signed one.

Sign in with OIDC

VariableDefault valueDescription
OIDC_CLIENT_ID—The client ID from your sign-in provider (Authentik, Authelia, Pocket ID, Keycloak...). Leave it out to keep OIDC sign-in off.
OIDC_CLIENT_SECRET—The client secret. Leave it out for a public client with OIDC_PKCE_ENABLED set to true.
OIDC_ISSUER—Your provider's issuer address, like https://auth.example.com/application/o/dawarich/.
OIDC_REDIRECT_URI—Your Dawarich address plus /users/auth/openid_connect/callback. Add the same address in your provider.
OIDC_PROVIDER_NAMEOpenid ConnectThe name on the sign-in button, like Authentik.
OIDC_AUTO_REGISTERtrueSet to false so only people who already have an account (same email) can sign in with OIDC.
OIDC_PKCE_ENABLEDfalseSet to true when your provider needs PKCE (Pocket ID does).

Place names

VariableDefault valueDescription
STORE_GEODATAtrueSet to false to not keep reverse geocoding results.
PHOTON_API_HOST—A Photon server for place names, like photon.komoot.io or your own. Can also be set in Dawarich under Settings, Instance.
PHOTON_API_KEY—The API key for the Photon server, if it needs one.
PHOTON_API_USE_HTTPSfalseSet to true when the Photon server uses HTTPS.
PHOTON_API_LANGUAGE—The language for place names from Photon, like en or de.
NOMINATIM_API_HOST—A Nominatim server for place names, instead of Photon.
NOMINATIM_API_KEY—The API key for the Nominatim server, if it needs one.
NOMINATIM_API_USE_HTTPStrueSet to false when the Nominatim server has no HTTPS.
GEOAPIFY_API_KEY—A Geoapify API key, to use Geoapify for place names.
LOCATIONIQ_API_KEY—A LocationIQ API key, to use LocationIQ for place names.
REVERSE_GEOCODING_RPS—The most place-name requests per second. Set it for services with a limit, like 1 for public Nominatim.
REVERSE_GEOCODING_CONCURRENCY—How many background jobs may look up place names at the same time.

File storage

VariableDefault valueDescription
STORAGE_BACKENDlocalWhere imports and exports are kept: local (the data folder) or s3.
AWS_ACCESS_KEY_ID—The S3 access key, when STORAGE_BACKEND is s3.
AWS_SECRET_ACCESS_KEY—The S3 secret key.
AWS_REGION—The S3 region, like us-east-1.
AWS_BUCKET—The S3 bucket name.
AWS_ENDPOINT_URL—The S3 server address, for S3-compatible storage like MinIO or Garage. Leave it out for Amazon S3.

Route videos

VariableDefault valueDescription
VIDEO_RETENTION_DAYS30Delete route video files older than this many days. 0 keeps them forever.
VIDEO_MAX_PER_USER10Keep at most this many route videos per person. 0 means no limit.

Performance

VariableDefault valueDescription
BACKGROUND_PROCESSING_CONCURRENCY2How many background jobs (imports, place names, stats) run at once. Raise it on a fast box.
VECTOR_TILES_QUERY_TIMEOUT_MS5000How long one map tile query may take, in milliseconds. Raise it if very long date ranges don't show on the map.
SKIP_VISITS_FLEET_REDETECT—Set to 1 to skip finding visits again across all history after some updates. Each person can still start it under Visits.
docker-compose.yml
name: dawarich

services:
  dawarich:
    image: ghcr.io/hsinghhira/dawarich:latest
    container_name: dawarich
    restart: unless-stopped
    stop_grace_period: 90s
    privileged: true
    shm_size: 1g
    environment:
      - TZ=$TZ
      - PUBLIC_URL=http://localhost:6175
      - ADMIN_PASSWORD=
    ports:
      - target: 8080
        published: "6175"
        protocol: tcp
    volumes:
      - type: bind
        source: /DATA/AppData/$AppID/data
        target: /data
        bind:
          create_host_path: true
    healthcheck:
      test: ["CMD", "curl", "-fsS", "-o", "/dev/null", "http://127.0.0.1:8080/api/v1/health"]
      interval: 30s
      timeout: 10s
      retries: 5
      start_period: 300s
    deploy:
      resources:
        limits:
          cpus: "2.00"
          memory: 4096M
        reservations:
          cpus: "0.25"
          memory: 768M
    labels:
      icon: https://cdn.jsdelivr.net/gh/HSinghHira/IceStore@main/Apps/dawarich/icon.png
    x-casaos:
      id: com.icestore.dawarich
      envs:
        - container: TZ
          description:
            en_US: >-
              Your time zone. It is filled in from your ZimaOS time zone.
              Dawarich uses it for days and times on the map and in stats.
        - container: PUBLIC_URL
          description:
            en_US: >-
              The address you open Dawarich at, like http://192.168.1.20:6175.
              Only used for links in emails: Dawarich works from any address.
              With an https:// address (your own domain behind HTTPS),
              Dawarich only allows HTTPS.
        - container: ADMIN_PASSWORD
          description:
            en_US: >-
              The password for the first account, [email protected]. Leave it
              empty and one is made for you; it is in the app logs on the line
              "Dawarich login is". Used only until you change the password in
              Dawarich.
      ports:
        - container: "8080"
          description:
            en_US: Dawarich web app and API (for the phone apps), published on host as 6175
      volumes:
        - container: /data
          description:
            en_US: >-
              The database with all your location points, uploaded imports
              and exports in storage/, the watched/ folder for automatic
              imports, Redis data, secret keys (state/secrets.env) and the
              first password (admin-password.txt). Back it up.

x-casaos:
  id: com.icestore.dawarich
  architectures:
    - amd64
    - arm64
  main: dawarich
  author: HSinghHira
  category: Others
  developer: Freika
  icon: https://cdn.jsdelivr.net/gh/HSinghHira/IceStore@main/Apps/dawarich/icon.png
  thumbnail: https://cdn.jsdelivr.net/gh/HSinghHira/IceStore@main/Apps/dawarich/screenshot-1.png
  screenshot_link:
    - https://cdn.jsdelivr.net/gh/HSinghHira/IceStore@main/Apps/dawarich/screenshot-1.png
    - https://cdn.jsdelivr.net/gh/HSinghHira/IceStore@main/Apps/dawarich/screenshot-2.png
    - https://cdn.jsdelivr.net/gh/HSinghHira/IceStore@main/Apps/dawarich/screenshot-3.png
    - https://cdn.jsdelivr.net/gh/HSinghHira/IceStore@main/Apps/dawarich/screenshot-4.png
    - https://cdn.jsdelivr.net/gh/HSinghHira/IceStore@main/Apps/dawarich/screenshot-5.png
  title:
    en_US: Dawarich
  tagline:
    en_US: Your own location history, like Google Timeline.
  description:
    en_US: >-
      Visit: [https://icestore.hsinghhira.me/app/dawarich/](https://icestore.hsinghhira.me/app/dawarich/) for full details


      Dawarich keeps your location history on your own server, like Google
      Timeline (Location History). Send points from your phone, import your
      old Google data, and see where you've been on a map. This is Dawarich
      in a single container, with PostgreSQL (with PostGIS) and Redis
      inside, one port and one data folder. All secret keys and the first
      password are made for you on first start.


      **Features**


      - Map of everywhere you've been, with a timeline per day

      - Track your phone with the Dawarich app (iOS, Android), OwnTracks,
        Overland, GPSLogger or Home Assistant

      - Import Google Takeout and Timeline, GPX, GeoJSON, OwnTracks and
        photo locations from Immich or Photoprism

      - Visits and places, trips, countries and cities, yearly stats

      - Share your location with family, and make route videos and posters

      - Your data stays on your server; export it any time


      **How to use?**


      1. Open Dawarich from the Zima OS dashboard.

      2. Sign in as [email protected] with the password from the app logs
         (the line "Dawarich login is").

      3. Change the email and password in Account settings.

      4. Import your old data under Imports, or connect a phone app with
         the API key from Account settings.
  tips:
    before_install:
      en_US: >-
        1. Open the app configuration before you install.


        2. Find PUBLIC_URL. It starts as http://localhost:6175. Change
           localhost to your ZimaOS IP, like http://192.168.1.20:6175, so
           links in emails work. Dawarich opens from any address either way.


        3. Leave ADMIN_PASSWORD empty to get a new password, or type your
           own.


        4. Email, sign-in with OIDC, place names (reverse geocoding) and
           other settings are listed on the Dawarich page at
           https://icestore.hsinghhira.me/app/dawarich/ (Variables tab). You
           can add them now or later in the app settings.


        5. Start the installation.


        6. Wait about five minutes. The first start sets up the database.


        7. Open the app logs and find the line that says "Dawarich login
           is". It shows the email [email protected] and a password.


        8. Open http://[ZIMAOS-IP-ADDRESS]:6175 and sign in with them.


        9. Change the email and password in Account settings right away.


        10. To track your phone, install the Dawarich app or OwnTracks and
            use the API key from Account settings, with the server
            http://[ZIMAOS-IP-ADDRESS]:6175.
  index: /
  port_map: "6175"
  scheme: http
  is_uncontrolled: false
  version: "1.19.0"
  update_at: "2026-10-30"
  release_notes:
    en_US: |-
      - Single-container Dawarich with one port (6175) and one data folder
      - All secret keys (sessions, two-factor, tokens) and database passwords are made on first start, so each install gets its own
      - The seeded [email protected] account gets this install's own password instead of the published "safepassword"
      - Works from any address you open it at (no APPLICATION_HOSTS needed)
      - freikin/dawarich 1.19.0
      - PostgreSQL 17 with PostGIS 3 and Redis inside
  repo: "https://github.com/Freika/dawarich"
  support: "https://github.com/Freika/dawarich/issues"
  docs: "https://dawarich.app/docs/intro"

Install Dawarich

Something not working with Dawarich? Report a problem or request another app.

More Others apps

See all