# Change Log All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/) and this project adheres to [Semantic Versioning](http://semver.org/). # [0.37.2] - 2026-01-04 ## Fixed - Months are now correctly ordered (Jan-Dec) in the year-end digest chart instead of being sorted alphabetically. - Time spent in a country and city is now calculated correctly for the year-end digest email. #2104 - Updated Trix to fix a XSS vulnerability. #2102 - Map v2 UI no longer blocks when Immich/Photoprism integration has a bad URL or is unreachable. Added 10-second timeout to photo API requests and improved error handling to prevent UI freezing during initial load. #2085 - In Map v2 settings, you can now enable map to be rendered as a globe. # [0.37.1] - 2025-12-30 ## Fixed - The db migration preventing the app from starting. - Raw data archive verifier now allows having points deleted from the db after archiving. # [0.37.0] - 2025-12-30 ## Added - In the beginning of the year users will receive a year-end digest email with stats about their tracking activity during the past year. Users can opt out of receiving these emails in User Settings -> Notifications. Emails won't be sent if no email is configured in the SMTP settings or if user has no points tracked during the year. ## Changed - Added and removed some indexes to improve the app performance based on the production usage data. ## Changed - Deleting an import will now be processed in the background to prevent request timeouts for large imports. ## Fixed - Deleting an import will no longer result in negative points count for the user. - Updating stats. #2022 - Validate trip start date to be earlier than end date. #2057 - Fog of war radius slider in map v2 settings is now being respected correctly. #2041 - Applying changes in map v2 settings now works correctly. #2041 - Invalidate stats cache on recalculation and other operations that change stats data. # [0.36.4] - 2025-12-26 ## Fixed - Fixed a bug preventing the app to start if a composite index on stats table already exists. #2034 #2051 #2046 - New compiled assets will override old ones on app start to prevent serving stale assets. - Number of points in stats should no longer go negative when points are deleted. #2054 - Disable Family::Invitations::CleanupJob no invitations are in the database. #2043 - User can now enable family layer in Maps v2 and center on family members by clicking their emails. #2036 # [0.36.3] - 2025-12-14 ## Added - Setting `ARCHIVE_RAW_DATA` env var to true will enable monthly raw data archiving for all users. It will look for points older than 2 months with `raw_data` column not empty and create a zip archive containing raw data files for each month. After successful archiving, raw data will be removed from the database to save space. Monthly archiving job is being run every day at 2:00 AM. Default env var value is false. - In map v2, user can now move points when Points layer is enabled. #2024 - In map v2, routes are now being rendered using same logic as in map v1, route-length-wise. #2026 ## Fixed - Cities visited during a trip are now being calculated correctly. #547 #641 #1686 #1976 - Points on the map are now show time in user's timezone. #580 #1035 #1682 - Date range inputs now handle pre-epoch dates gracefully by clamping to valid PostgreSQL integer range. #685 - Redis client now also being configured so that it could connect via unix socket. #1970 - Importing KML files now creates points with correct timestamps. #1988 - Importing KMZ files now works correctly. - Map settings are now being respected in map v2. #2012 # [0.36.2] - 2025-12-06 ## The Map v2 release In this release we're introducing Map v2 based on MapLibre GL JS. It brings better performance, smoother interactions and more features in the future. User can select between Map v1 (Leaflet) and Map v2 (MapLibre GL JS) in the Settings -> Map Settings. New map features will be added to Map v2 only. ## Added - User can select between Map v1 (Leaflet) and Map v2 (MapLibre GL JS) in the User Settings. ## Fixed - Heatmap and Fog of War now are moving correctly during map interactions on v2 map. #1798 - Polyline crossing international date line now are rendered correctly on v2 map. #1162 - Place popup tags parsing (MapLibre GL JS compatibility) - Stats calculation should be faster now. # [0.36.1] - 2025-11-29 ## Fixed - Exporting user data now works a lot faster and consumes less memory. - Fix the restart loop. #1937 #1975 # [0.36.0] - 2025-11-24 ## OIDC and KML support release So, you want to configure your OIDC provider. If not — skip to the actual changelog. You're going to need to provide at least 4 environment variables: `OIDC_CLIENT_ID`, `OIDC_CLIENT_SECRET`, `OIDC_ISSUER`, and `OIDC_REDIRECT_URI`. Then, if you want to rename the provider from "OpenID Connect" to something else (e.g. "Authentik"), set `OIDC_PROVIDER_NAME` variable as well. If you want to disable email/password registration and allow only OIDC login, set `ALLOW_EMAIL_PASSWORD_REGISTRATION` to `false`. After just 7 brand new environment variables, you'll never have to deal with passwords in Dawarich again! Jokes aside, even though I'm not a fan of bloating the environment with too many variables, this is a nice addition and it will be reused in the cloud version of Dawarich as well. Thanks for waiting more than a year for this feature! To configure your OIDC provider, set the following environment variables: ``` OIDC_CLIENT_ID=client_id_example OIDC_CLIENT_SECRET=client_secret_example OIDC_ISSUER=https://authentik.yourdomain.com/application/o/dawarich/ OIDC_REDIRECT_URI=https://your-dawarich-url.com/users/auth/openid_connect/callback OIDC_AUTO_REGISTER=true # optional, default is false OIDC_PROVIDER_NAME=YourProviderName # optional, default is OpenID Connect ALLOW_EMAIL_PASSWORD_REGISTRATION=false # optional, default is true ``` ## Added - Support for KML file uploads. #350 - Added a commented line in the `docker-compose.yml` file to use an alternative PostGIS image for ARM architecture. - User can now create a place directly from the map and add tags and notes to it. If reverse geocoding is enabled, list of nearby places will be shown as suggestions. - User can create and manage tags for places. - Visits for manually created places are being suggested automatically, just like for areas. - User can enable or disable places layers on the map to show/hide all or just some of their visited places based on tags. - User can define privacy zones around places with specific tags to hide map data within a certain radius. - If user has a place tagged with a tag named "Home" (case insensitive), and this place doesn't have a privacy zone defined, this place will be used as home location for days with no tracked data. #1659 #1575 ## Fixed - The map settings panel is now scrollable - Fixed a bug where family location sharing settings were not being updated correctly. #1940 ## Changed - Internal redis settings updated to implement support for connecting to Redis via unix socket. #1706 - Implemented authentication via GitHub and Google for Dawarich Cloud. - Implemented OpenID Connect authentication for self-hosted Dawarich instances. #66 # [0.35.1] - 2025-11-09 ## Fixed - StrongMigration issue #1931 # [0.35.0] - 2025-11-09 ⚠️ Important ⚠️ The default `docker-compose.yml` file has been updated to provide sensible defaults for self-hosted production environments. This should not break existing setups, but it's recommended to review your `docker-compose.yml` file and update it accordingly. You can now set `RAILS_ENV` environment variable to `production` to run Dawarich in production mode. ## Added - Selection tool on the map now can select points that user can delete in bulk. #433 ## Fixed - Taiwan flag is now shown on its own instead of in combination with China flag. - On the registration page and other user forms, if something goes wrong, error messages are now shown to the user. - Leaving family, deleting family and cancelling invitations now prompt confirmation dialog to prevent accidental actions. - Each pending family invitation now also contains a link to share with the invitee. ## Changed - Removed useless system tests and cover map functionality with Playwright e2e tests instead. - S3 storage now can be used in self-hosted instances as well. Set STORAGE_BACKEND environment variable to `s3` and provide `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY`, `AWS_REGION`, `AWS_BUCKET` and `AWS_ENDPOINT_URL` environment variables to configure it. - Number of family members on self-hosted instances is no longer limited. #1918 - Export to GPX now adds speed and course to each point if they are available. - `docker-compose.yml` file updated to provide sensible defaults for self-hosted production environment. - `.env.example` file added with default environment variables. - Single Dockerfile introduced so Dawarich could be run in self-hosted mode in production environment. # [0.34.2] - 2025-10-31 ## Fixed - Fixed a bug in UTM trackable concern. #1909 # [0.34.1] - 2025-10-30 ## Fixed - Broken Stats page for users with no reverse geocoding enabled. #1877 ## Changed - Date navigation on the map page is no longer shown as floating panel. It is now part of the top navigation bar to prevent overlapping with other map controls. #1894 #1881 ## Added - [Dawarich Cloud] Added support for UTM parameters during user registration. UTM parameters will be stored with the user record for marketing analytics purposes. # [0.34.0] - 2025-10-10 ## The Family release In this release we're introducing family features that allow users to create family groups, invite members, and share location data. Family owners can manage members, control sharing settings, and ensure secure access to shared information. Location sharing is optional and can be enabled or disabled by each member individually. Users can join only one family at a time. Location sharing settings can be set to share location for 1, 6, 12, 24 hours or permanently. Family features are now available only for self-hosted instances and will be available in the cloud in the future. When "Family members" layer is enabled on the map, family member markers will be updated in real-time. ## Added - Users can now create family groups and invite members to join. ## Fixed - Sign out button works again. #1844 - Fixed user deletion bug where user could not be deleted due to counter cache on points. - Users always have default distance unit set to kilometers. #1832 - All confirmation dialogs are now showing only once. ## Changed - Minor versions of Dawarich are being built for ARM64 architecture as well again. #1840 - Importing process for Google Maps Timeline exports, GeoJSON and geodata from photos is now significantly faster. - The Map page now features a full-screen map. # [0.33.1] - 2025-10-07 ## Changed - On the Trip page, instead of list of visited countries, a number of them is being shown. Clicking on it opens a modal with a list of countries visited during the trip. #1731 ## Fixed - `GET /api/v1/stats` endpoint now returns correct 0 instead of null if no points were tracked in the requested period. - User import data now being streamed instead of loaded into memory all at once. This should prevent large imports from exhausting memory or hitting IO limits while reading export archives. - Popup for manual visit creation now looks better in both light and dark modes. #1835 - Fixed a bug where visit circles were not interactive on the map page. #1833 - Fixed a bug with stats sharing settings being not filled. #1826 - Fixed a bug where user could not be deleted due to counter cache on points. #1818 - Introduce apt-get upgrade before installing new packages in the docker image to prevent vulnerabilities. #1793 - Fixed time shift when creating visits manually. #1679 - Provide default map layer if user settings are not set. # [0.33.0] - 2025-09-29 ## Fixed - Fix a bug where some points from Owntracks were not being processed correctly which prevented import from being created. #1745 - Hexagons for the stats page are now being calculated a lot faster. - Prometheus exporter is now not being started when console is being run. - Stats will now properly reflect countries and cities visited after importing new points. - `GET /api/v1/points` will now return correct latitude and longitude values. #1502 - Deleting an import will now trigger stats recalculation for affected months. #1789 - Importing process should now schedule visits suggestions job a lot faster. - Importing GPX files that start with `