dawarich_app

dawarich_app

Docker app from Pa7rickStar's Repository

Overview

Dawarich is a self-hosted web app designed to replace Google Timeline (aka Google Location History). Visualize your data on an interactive map, import your location history from Google Maps Timeline and Owntracks, and explore statistics like the number of countries and cities visited, total distance traveled, and more! This template is setting up the production version of the app. NOTE: Do not use autoupdate and do not update any Dawarich container without backing up your data first and checking for breaking changes in the updating guides. https://dawarich.app/docs/self-hosting/updating/ https://dawarich.app/docs/self-hosting/maintenance/backup-and-restore/

Media gallery

1 / 3

Requirements

For Dawarich production 3 docker containers are required:
- dawarich_app - Dawarich web application including Sidekiq worker for background jobs
- dawarich_db - PostGIS database
- dawarich_redis - Redis database

Download Statistics

10,085,265
Total Downloads
2,224,267
This Month
946,054
Avg / Month

Total Downloads Over Time

Loading chart...

Details

Repository
freikin/dawarich:latest
Last Updated2026-10-30
First Seen2024-12-31

Runtime arguments

Web UI
http://[IP]:[PORT:3000]/
Network
dawarich
Shell
sh
Privileged
false
Extra Params
--entrypoint=web-entrypoint.sh --restart=unless-stopped --stop-timeout=60 --health-cmd='wget -qO- http://127.0.0.1:3000/api/v1/health | grep -q "\"status\"[[:space:]]*:[[:space:]]*\"ok\"" || exit 1' --health-interval=10s --health-retries=30 --health-start-period=30s --health-timeout=10s

Template configuration

Web UI PortPorttcp

Host port for the Dawarich web interface (container port 3000).

Target
3000
Default
3000
Imports PathPathrw

Path to watch for imports

Target
/var/app/tmp/imports/watched
Default
/mnt/cache/appdata/dawarich/imports
Storage PathPathrw

Path to store application data

Target
/var/app/storage
Default
/mnt/cache/appdata/dawarich/storage
Database PathPathrw

Path to store database data

Target
/dawarich_db_data
Default
/mnt/cache/appdata/dawarich/db_data
Web Files PathPathrw

Path to web files

Target
/var/app/public
Default
/mnt/cache/appdata/dawarich/wwwroot
Secret Key BaseVariable

Signs sessions and cookies, and derives encryption keys that aren't set explicitly. Required in production. Generate a value with openssl rand -hex 64 and keep it: changing it signs everyone out and can make encrypted data unreadable.

Target
SECRET_KEY_BASE
Application HostsVariable

Application hosts, provide multiple if you want your Dawarich instance to be available by multiple domains/ip addresses. Don't put protocols here, only host names.

Target
APPLICATION_HOSTS
Default
localhost,127.0.0.1,::1
Application ProtocolVariable

Application protocol. Change to https if you want your Dawarich instance to be served via SSL

Target
APPLICATION_PROTOCOL
Default
http|https
DomainVariable

Public hostname used to build absolute URLs in outgoing emails (family invitations, digest emails, password resets). Required in production - leaving it unset will cause email delivery to fail with a URL generation error. No protocol, no trailing slash. Example: dawarich.example.com.

Target
DOMAIN
Time ZoneVariable

Time zone. Full list of supported timezones available on Github

Target
TIME_ZONE
Default
Europe/London
Distance UnitVariable

Distance unit. For miles, change to mi. All settings still should be provided in meters/kilometers

Target
DISTANCE_UNIT
Default
km|mi
Min Minutes Spent In CityVariable

Minimum minutes spent in a city

Target
MIN_MINUTES_SPENT_IN_CITY
Default
60
Database HostVariable

Database host

Target
DATABASE_HOST
Default
dawarich_db
Database UsernameVariable

Database username

Target
DATABASE_USERNAME
Default
postgres
Database PasswordVariable

Database password

Target
DATABASE_PASSWORD
Default
password
Database NameVariable

Database name. An existing dawarich_development database remains usable when RAILS_ENV is production.

Target
DATABASE_NAME
Default
dawarich_development
Database PortVariable

Database port

Target
DATABASE_PORT
Default
5432
Rails Max ThreadsVariable

Connection pool size for the Dawarich database

Target
RAILS_MAX_THREADS
Default
5
Redis URLVariable

Redis URL. Redis 8 is the default; Valkey also works

Target
REDIS_URL
Default
redis://dawarich_redis:6379
Rails Cache DBVariable

Redis cache database

Target
RAILS_CACHE_DB
Default
0
Rails Job Queue DBVariable

Redis job queue database

Target
RAILS_JOB_QUEUE_DB
Default
1
Rails WS DBVariable

Redis WebSocket database

Target
RAILS_WS_DB
Default
2
Self HostedVariable

Set to true if you're self-hosting Dawarich

Target
SELF_HOSTED
Default
true|false
Rails ENVVariable

Application environment. Self-hosted instances should use `production`. `development` is for working on Dawarich itself: it reloads code when it changes and logs every SQL query. See Switching an existing instance to production: https://dawarich.app/docs/self-hosting/environment-variables/#switching-an-existing-instance-to-production.

Target
RAILS_ENV
Default
production|development
Sidekiq EmbeddedVariable

Run background jobs inside the web process. Leave it unset when you run a separate worker.

Target
SIDEKIQ_EMBEDDED
Default
true|false
Web ConcurrencyVariable

Number of web worker processes. Keep 0 with embedded jobs.

Target
WEB_CONCURRENCY
Default
0
Background Processing ConcurrencyVariable

Background job threads. More info on Sidekiq docs

Target
BACKGROUND_PROCESSING_CONCURRENCY
Default
2
Sidekiq UsernameVariable

Sidekiq dashboard username

Target
SIDEKIQ_USERNAME
Sidekiq PasswordVariable

Sidekiq dashboard password

Target
SIDEKIQ_PASSWORD
OIDC Client IDVariable

OIDC client ID from your identity provider

Target
OIDC_CLIENT_ID
Archive Raw DataVariable

Enable archival of raw import data. When enabled, original import files are preserved for potential re-processing.

Target
ARCHIVE_RAW_DATA
Default
false|true
Archive Encryption KeyVariable

Encryption key for raw data archives. Required when ARCHIVE_RAW_DATA is true. Preserve the original key to keep existing archives readable.

Target
ARCHIVE_ENCRYPTION_KEY
Photon API HostVariable

Photon API host. Useful if you're self-hosting your own Photon instance

Target
PHOTON_API_HOST
Reverse Geocoding RPSVariable

Requests per second your provider allows. Set it for Geoapify, LocationIQ or the public Nominatim. photon.komoot.io is always limited to 1.

Target
REVERSE_GEOCODING_RPS
Reverse Geocoding ConcurrencyVariable

Reverse-geocoding threads across all workers. No limit when no rate is set. See Background jobs.

Target
REVERSE_GEOCODING_CONCURRENCY
Photon API KeyVariable

Photon API key. Useful if you're supporting Dawarich development on Patreon and want to use Photon API instance hosted by Freika without any limits

Target
PHOTON_API_KEY
Photon API Use HTTPSVariable

Use HTTPS for Photon API requests. Set to true if you're using your own Photon instance behind a reverse proxy with SSL

Target
PHOTON_API_USE_HTTPS
Default
false|true
Photon API LanguageVariable

Language Dawarich asks Photon for place names in: a two-letter code such as nl, or default for names in the local language. Your Photon index must include it. Can also be set under Admin → Instance settings. See Photon index languages

Target
PHOTON_API_LANGUAGE
Default
en
Geoapify API KeyVariable

Geoapify API key. Provide your own key if you want to use Geoapify reverse geocoding service

Target
GEOAPIFY_API_KEY
Nominatim API HostVariable

Nominatim API host. Useful if you're self-hosting your own Nominatim instance

Target
NOMINATIM_API_HOST
Nominatim API KeyVariable

Nominatim API key. Provide your own key if you want to use Nominatim reverse geocoding service

Target
NOMINATIM_API_KEY
Nominatim API Use HTTPSVariable

Use HTTPS for Nominatim API requests. Set to true if you're using a Nominatim instance behind a reverse proxy with SSL

Target
NOMINATIM_API_USE_HTTPS
Default
true|false
Store GeodataVariable

Set to true if you want to store geodata in the database. This will increase the size of the database and will require more disk space.

Target
STORE_GEODATA
Default
true|false
Prometheus Exporter EnabledVariable

Enable Prometheus metrics exporter

Target
PROMETHEUS_EXPORTER_ENABLED
Default
false|true
Metrics UsernameVariable

HTTP basic auth username Prometheus uses to scrape /metrics. Required.

Target
METRICS_USERNAME
Metrics PasswordVariable

HTTP basic auth password. Required.

Target
METRICS_PASSWORD
OTP Encryption Primary KeyVariable

Primary key for encrypting OTP secrets. Set explicitly to enable two-factor authentication.

Target
OTP_ENCRYPTION_PRIMARY_KEY
OTP Encryption Deterministic KeyVariable

Deterministic key for OTP encryption. Set explicitly to enable two-factor authentication.

Target
OTP_ENCRYPTION_DETERMINISTIC_KEY
OTP Encryption Key Derivation SaltVariable

Salt for OTP key derivation. Set explicitly to enable two-factor authentication.

Target
OTP_ENCRYPTION_KEY_DERIVATION_SALT
OIDC Client SecretVariable

OIDC client secret from your identity provider

Target
OIDC_CLIENT_SECRET
OIDC IssuerVariable

OIDC issuer URL (enables auto-discovery)

Target
OIDC_ISSUER
OIDC Redirect URIVariable

Callback URL. Defaults to {APPLICATION_URL}/users/auth/openid_connect/callback

Target
OIDC_REDIRECT_URI
OIDC Provider NameVariable

Custom display name for the OIDC login button

Target
OIDC_PROVIDER_NAME
Default
Openid Connect
OIDC Auto RegisterVariable

Automatically create accounts for new OIDC users

Target
OIDC_AUTO_REGISTER
Default
true|false
OIDC PKCE EnabledVariable

Enable PKCE (S256) for the authorization code flow. Required when your OIDC client enforces PKCE (e.g. Pocket ID, hardened Authentik/Keycloak)

Target
OIDC_PKCE_ENABLED
Default
false|true
Allow Email Password RegistrationVariable

Allow traditional email/password registration alongside OIDC

Target
ALLOW_EMAIL_PASSWORD_REGISTRATION
Default
false|true
OIDC HostVariable

Hostname of your identity provider

Target
OIDC_HOST
OIDC SchemeVariable

Protocol (https or http)

Target
OIDC_SCHEME
Default
https|http
OIDC PortVariable

Port number

Target
OIDC_PORT
Default
443
OIDC Authorization EndpointVariable

Authorization endpoint path

Target
OIDC_AUTHORIZATION_ENDPOINT
Default
/authorize
OIDC Token EndpointVariable

Token endpoint path

Target
OIDC_TOKEN_ENDPOINT
Default
/token
OIDC Userinfo EndpointVariable

User info endpoint path

Target
OIDC_USERINFO_ENDPOINT
Default
/userinfo
SMTP ServerVariable

Your SMTP server hostname

Target
SMTP_SERVER
SMTP PortVariable

Your SMTP port (typically 587 for TLS)

Target
SMTP_PORT
SMTP DomainVariable

HELO/EHLO domain. For transactional relays (Brevo, Mailgun, SendGrid, Postmark, Resend), set this to your verified sender domain - typically the part after @ in SMTP_FROM.

Target
SMTP_DOMAIN
SMTP UsernameVariable

Your SMTP username

Target
SMTP_USERNAME
SMTP PasswordVariable

Your SMTP password

Target
SMTP_PASSWORD
SMTP FromVariable

Email address to send emails from

Target
SMTP_FROM
SMTP AuthenticationVariable

Auth mechanism. Common values: plain, login (Office 365 / Microsoft 365 requires this), and cram_md5. Use none for an unauthenticated relay. digest_md5, gssapi, ntlm, and xoauth2 are also accepted but rarely useful.

Target
SMTP_AUTHENTICATION
Default
plain|login|cram_md5|none|digest_md5|gssapi|ntlm|xoauth2
SMTP StartTLSVariable

Opportunistic TLS upgrade on port 587. Leave true for internet-facing relays. Set false only for plain SMTP on port 25 to a trusted local relay. No effect on port 465 (SMTPS / implicit TLS).

Target
SMTP_STARTTLS
Default
true|false
SMTP Open TimeoutVariable

Seconds to wait for the TCP connection. Bump to 25 for slow providers.

Target
SMTP_OPEN_TIMEOUT
Default
5
SMTP Read TimeoutVariable

Seconds to wait for an SMTP response. Bump to 25 for slow providers.

Target
SMTP_READ_TIMEOUT
Default
5