chore(deps): update freikin/dawarich docker tag to v1 #44

Open
renovate-bot wants to merge 1 commit from renovate/freikin-dawarich-1.x into master
Member

This PR contains the following updates:

Package Type Update Change
freikin/dawarich Kustomization major 0.32.01.6.1

Release Notes

Freika/dawarich (freikin/dawarich)

v1.6.1

Compare Source

Added
  • Info badge on import form suggesting users zip large files (200MB+) before uploading.
  • Missing SVG icons for activity breakdown (ship, circle).
Fixed
  • Fix compressed zip files failing to import with "No such file or directory" error. Rubyzip needs to re-open the source zip for compressed entries, but the temp file could be garbage collected before extraction completes #​2446.
  • Fix anomaly filter crashing on large imports (millions of points) due to loading all points into memory at once. Speed-based filtering now processes data in monthly chunks.

v1.6.0

Compare Source

Added
  • Immich users can now enrich their photos with geodata.
  • Users can now optionally enable two-factor authentication (2FA) for their accounts in Settings > Two-Factor Authentication. Supported methods: TOTP apps (Google Authenticator, Authy, etc.) and backup codes. Once enabled, users will be prompted for a 2FA code on login. This adds an extra layer of security to protect your location data.
Fixed
  • Fix OIDC account linking failing when the email from the identity provider has different casing than the existing Dawarich account #​1983.
  • Fix confirmation dialogs being ignored when clicking "Cancel" — destructive actions (account deletion, import/export deletion, place deletion) fired regardless of user choice due to Rails UJS and Turbo both handling the same click #​1978.
  • Fix Year in Review share link being empty when toggling public access #​2418.
  • Fix address field on Points page being empty when geodata properties are unavailable #​2419.
  • Fix Stats API returning the same country/city count for every year instead of per-year counts #​2280.
  • Fix flyover countries (with no visited cities) still showing in monthly stats views #​2423.
  • Fix importing Google Timeline files. #​2427

v1.5.1

Compare Source

Fixed
  • Fix points and tracks interactions on Map v2 being unresponsive after the latest update.
  • Fix creating demo data from the onboarding modal.
  • Fix navbar for cloud trial users.
  • Reset months stats instead of deleting when there is no data.

v1.5.0

Compare Source

Added
  • GPS noise filtering. An automatic system to detect ahd filter out points with unrealistic speeds, altitudes, or sudden jumps.
  • Support for signing in via web view using our Android app.
  • On the map settings page user now can enable and disable map layers.
  • Onboarding modal now offers a third option to load demo data (3 days in Berlin, ~1000 points) so new users can instantly see what the map looks like. Demo imports bypass trial limits, are clearly labeled with a "Demo" badge, and can be deleted from a banner on the map page or from the imports list.
  • New tool to the Map V2 tools: The "Day per Country" button will open a modal showing a breakdown of how many days the user has spent in each country, based on their points data. This is calculated by grouping points by country and counting unique days with at least one point in that country.
Changed
  • [Cloud] The point creation API endpoints are being excluded from the default Lite/Pro rate limits (200/1,000 requests/hour). They now have general rate limits of 10,000 requests/hour.
  • Buildings numbers on map V2 are now shown on closer zoom.
Fixed
  • Users who registered via Google (or other OAuth providers) can now change their password and email without needing to enter their current password.
  • Fix deadlocks in reverse geocoding job when multiple Sidekiq workers update points concurrently.
  • Fix counter_cache_column error in points counter reset job by using direct SQL count instead of reset_counters.
  • Fix duplicate place records causing ON CONFLICT cardinality violations during reverse geocoding.
  • Fix TypeError crash in transportation mode backfill when Google export files have unexpected JSON structure.
  • Fix inability to disable visit suggestions background job due to conflicting Rails UJS and Turbo handlers causing request cancellation #​2118.
  • Fix visit confirm/decline buttons firing twice #​2379.
  • Fix clicking on a point in Map v2 silently moving it to the cursor position. Points now only update when intentionally dragged #​2149, #​2150.
  • Fix visit name suggester not recognizing Photon reverse geocoding data format, causing all suggested places to show as "Suggested place" #​2151, #​2377.
  • Fix visit edit form displaying UTC times instead of the user's configured timezone #​2168.
  • Fix export deletion failing when the export file was manually removed from disk #​915.
  • Fix PhotoPrism before date filter being off by one day, excluding photos taken on the end date #​747.
  • Fix datetime inputs allowing 5-digit years on Chrome by adding max attribute to all datetime-local fields #​578.
  • Fix Points page datetime fields requiring seconds input, preventing search on mobile browsers and some desktop browsers #​1040, #​1478.
  • Fix altitude values being truncated to integers instead of preserving decimal precision #​1573.
  • Fix suggested visits keeping "Suggested Visit" name when confirmed directly without selecting a place #​1725.
  • Fix visit name becoming empty and uneditable when clicking the name field and then clicking away #​1776.
  • Fix trips page crashing with undefined method 'coordinates' for nil when trip path calculation hasn't completed yet #​1356, #​1765.
  • Fix Immich/PhotoPrism photos on map not being filtered by the selected date range #​1755.
  • Fix short trips (less than one full day) not showing photos due to PhotoPrism before date filter being exclusive #​1688.
  • Fix health check endpoint (/api/v1/health) triggering unnecessary User Load database queries on every request #​1770.
  • Fix points created via Overland API (Home Assistant, GPSLogger) not being automatically reverse geocoded after creation #​1242.
  • Fix monthly stats map crashing with Invalid LatLng object: (NaN, NaN) when points have missing coordinates #​1762.
  • Fix trips failing with self-signed certificates by leveraging per-integration SSL skip settings #​455.
  • Fix non-admin users unable to access Background Jobs settings to trigger reverse geocoding or manage visit suggestions #​1714.
  • Fix family page map not loading due to escape_javascript producing invalid JSON in the Stimulus data attribute.
  • Fix countries appearing in visited statistics despite only being driven through without spending meaningful time in any city #​1595, #​1779.
  • Fix migrate_to_new_storage rake task crashing when export URL is blank, already migrated, or points to a directory instead of a file #​1018, #​1037.
  • Fix selecting the only suggested place for a visit having no effect because the dropdown change event never fires with a single option #​471.
  • Fix city duration calculation undercounting time spent due to integer division truncating sub-minute GPS intervals to zero #​2408.
  • Fix tooltips in data tables (Imports, Exports, Points) being hidden behind adjacent rows #​2409.
  • Fix iOS QR code in Account settings being cut off on the right side #​2406.

v1.4.0

Compare Source

Added
  • Family page now contains a map with family members markers on it.
  • Visits page now have "Confirm all" and "Decline all" buttons to quickly confirm or decline all visit suggestions at once.
Changed
  • Updated look and feel
  • The point counting was changed to be more efficient on bigger accounts.
  • Redesigned raw data archival system for large instances (10M+ points).
Fixed
  • Fix Lite plan archival warnings sending all three notifications (11-month, 11.5-month, and 12-month) simultaneously when a user's oldest data already exceeds all thresholds. Now only the most severe warning is sent, and lower thresholds are marked as already notified.
  • Misconfigured Prometheus settings will no longer litter logs with error messages, it will make multiple attempts to connect instead and then stop.
  • One of previous versions removed a database index making points upload very slow. The index is now added back to fix the issue.

v1.3.4

Compare Source

Added
  • Family members can now share their location with each other. In the family settings, you can send a location sharing request to any family member. Once they accept it, you will be able to see their location on the map and they will be able to see yours. You can also revoke location sharing at any time. Location sharing is disabled by default for all existing families, so you need to enable it in the family settings if you want to use this feature.
Changed
  • Redesigned onboarding modal with two paths: "I have data" (inline file import) and "Start tracking" (app download + QR code). New users with existing location data can now start importing within 2 clicks of signing up.
  • Onboarding completion is now persisted server-side (settings.onboarding_completed) instead of relying solely on localStorage, preventing the modal from reappearing after browser data clears.
  • Route opacity data migration now runs as a background job instead of inline during migration, improving deployment reliability for large instances.
Fixed
  • Fix admin and supporter tooltip overflowing the page on narrow screens. #​1449
  • Fix date navigation arrow tooltips overlapping with the navbar on map pages. #​2229 #​2100
  • Fix infinite loading spinner when a trip has no points in its date range. #​2293
  • Fix Insights monthly digest panels disappearing when switching months. #​2305
  • Fix suggested visit confirm/decline not removing the visit from the list. #​2307
  • Fix Stats page reloading when clicking "countries, cities" link. #​2270
  • Fix map base layer selection not being restored after page reload (Maps v1). #​2093
  • Fix duplicate country names in stats caused by geocoder returning different spellings. #​2044
  • Fix total distance display overlapping layer picker when distance is in miles. #​2017
  • Fix default route opacity displaying as 6000% for new users. #​1891
  • Fix shared month stats map missing hexagons from the last day of the month. #​1934
  • Fix Nominatim reverse geocoder producing all places named "Suggested place" instead of actual place names. #​2182
  • Fix IDL-crossing route segmenter returning inconsistent coordinate types. unwrapCoordinates now always returns a uniform array-of-arrays structure. #​2038
  • Fix a migration taking too long. #​2375
  • Fix family sharing not including the requesting user's own location. #​2153
  • The "Destroy" button on the trip page is now orange. #​2348

v1.3.3

Compare Source

Added
  • Better user management with pagination, search, and filtering in the admin panel. Admins can now easily find and manage users based on email, registration date, and activity status.
Fixed
  • Points table now converts speed from m/s to km/h (or mph) using the user's distance unit preference. Previously raw m/s values were displayed with a "km/h" label. #​2337
  • Digest list API (GET /api/v1/digests) now returns distance as a structured object with meters, converted, and unit fields, matching the detail endpoint. Previously it returned raw meters, causing clients to display incorrect values. Breaking change: the distance field changed from an integer to an object. #​2336
  • Dead documentation links in v0.26.0 changelog entry now point to the correct URLs. #​2344
  • Filter out Immich and Photoprism api keys from logs to prevent accidental exposure. #​2368
  • Fix foreign key violation when deleting users with place_visits referencing visits.
  • Fix reverse geocoding job failing on points with nil timestamp or lonlat.
  • Fix unsupported archive format generating Sentry noise instead of a user-friendly notification.
  • Fix deadlock in reverse geocoding places upsert under concurrent Sidekiq workers.
  • Reduce Redis disk I/O by relaxing RDB snapshot frequency. Previously the default save 60 10000 rule caused a snapshot every ~60 seconds due to Sidekiq polling, generating tens of terabytes of disk writes over weeks. New defaults: snapshots every 15 minutes (10+ changes) or 5 minutes (100+ changes).
  • Reduce default Sidekiq concurrency from 10 to 5 threads. Most self-hosted instances don't need 10 workers and the extra threads increase Redis polling traffic.
  • Migration bug for version skippers. #​2362

v1.3.2

Compare Source

Important: Self-hosters are not limited in any way. All features remain fully available regardless of plan. The new Lite plan and related limitations apply only to Dawarich Cloud users. If you're self-hosting, you can ignore the Lite plan details below. Self-hosted instances will continue to have access to all features without any restrictions.

Added
  • Lite plan for Dawarich Cloud. Lite includes core tracking, map visualization (routes, points), stats, and the read API. Data view is limited to the last 12 months — older data is archived but can always be exported. Pro-only features: Heatmap, Fog of War, Scratch Map, Globe View, Immich/Photoprism integrations, public stats sharing, and write API (update/delete). Lite users can still create points via the API. Self-hosted instances are unaffected — all features remain fully available regardless of plan.
  • Timed layer previews for Lite users on the map. Toggling a Pro-only layer (Heatmap, Fog of War, Scratch Map) shows it for 20 seconds with a countdown, then auto-hides with an upgrade prompt.
  • Per-plan API rate limiting via rack-attack. Lite: 200 requests/hour, Pro: 1,000 requests/hour. Self-hosted instances are exempt. Rate-limited responses return 429 with Retry-After header.
  • Archival warning notifications for Lite users approaching the 12-month data window: in-app notification at 11 months, email at 11.5 months, archived confirmation at 12 months.
  • GET /api/v1/plan endpoint returning the user's current plan and feature availability.
  • X-Total-Points-In-Range and X-Scoped-Points response headers on the points API, allowing clients to detect when data is being windowed.
  • Branded OAuth buttons for Google and GitHub on the login page.
Changed
  • Numeric-only strings passed to timestamp API parameters (e.g. start_at, end_at) are now treated as Unix timestamps directly. Previously they were passed through Time.zone.parse, which could return unexpected results. If you were relying on the old behavior for numeric strings, update your API calls accordingly.
  • The user serializer now includes plan in the subscription object.

v1.3.1

Compare Source

Changed
  • User deletion now being done in the background to prevent request timeouts for users with large amount of data.
Fixed
  • Point speed in Map V2 is now correctly calculated from m/s to km/h or mph based on user preference. #​2308
  • Family members are now being loaded correctly on Map V2 when family layer is enabled. #​2250
  • Photos popups on Map V2 now show the photo timestamp in user's timezone. #​2310
  • Fix the issue preventing fresh app from starting. #​2304

v1.3.0

Compare Source

The Storage & Timeline Interaction Release

This release adds a dedicated motion_data column for transportation-relevant fields alongside the existing raw_data. Users can now set their timezone for accurate date/time display across the app. The Timeline feed in Map v2 gains richer map interaction: hovering a journey highlights its track with an animated border, clicking zooms to fit and selects it, and expanding a day shows visit markers even when the Visits layer is off. User data export/import is enhanced with a new v2 format using JSONL files and monthly splitting for large datasets, while remaining backward-compatible with the old format.

Added
  • Per-user timezone setting. Users can now select their timezone from Settings > General, and all dates/times across the app (including background jobs and API responses) will respect it. Defaults to the server's TIME_ZONE environment variable for existing users.
  • motion_data JSONB column on the points table for storing transportation-relevant fields separately from raw_data.
  • Background job (DataMigrations::BackfillMotionDataJob) to backfill motion_data from raw_data for existing points.
  • New Timeline feed in Map v2 Tools panel for browsing daily location history. Distances and speeds respect the user's distance unit preference (km/mi).
  • Clicking a track point (when "Show Points" is enabled) now displays point info (timestamp, battery, altitude, speed) in the track info panel instead of triggering a position update. Dragging a point still updates its position and triggers track recalculation.
  • Timeline-map interaction: hovering a journey entry in the Timeline feed now highlights the matching track on the map with the animated border and flow effect. Clicking a journey entry zooms the map to fit the track and keeps it selected. Expanding a day in the Timeline now temporarily shows visit markers for that day, even if the Visits layer is disabled.
  • AES-256-GCM encryption for raw data archives (format version 2). Set ARCHIVE_ENCRYPTION_KEY to use a custom key; otherwise derives from SECRET_KEY_BASE. Existing unencrypted archives (format version 1) are read transparently.
  • v2 export/import format with JSONL files and monthly splitting for large entities (points, visits, stats, tracks, digests). The new format streams data to avoid memory issues with large datasets, while remaining backward-compatible with v1 archives (data.json).
  • User data export now includes Tags, Taggings, Tracks (with embedded TrackSegments), Digests, and Raw Data Archives — previously missing from export/import, meaning users who exported and re-imported would lose these entities.
  • Tracks are exported with their original_path serialized as WKT and track_segments embedded as a nested array, preserving transportation mode detection data across export/import cycles.
  • Digests get a fresh sharing_uuid on import for security — old share links from the original user won't work for the importing user.
  • Raw Data Archives are exported with their attached gzip files, enabling full data restoration.
  • Failed imports now will have an error message shown to the user.
  • Pagination now looks nicer and more informative, indicating current page. #​2279
  • Imports and exports now can be sorted by name, file size, number of points, and creation date. #​2279
  • Lots of missing Swagger specs for the API endpoints have been added, improving API documentation and enabling better client generation. swagger.yaml is updated.
Changed
  • Transportation-relevant fields (motion, activity, action) are now stored in a dedicated motion_data column alongside raw_data, enabling efficient transportation mode detection.
  • All import sources now write both raw_data (full original payload) and motion_data (transportation-relevant fields).
  • The STORE_GEODATA setting now correctly controls whether geodata is written during reverse geocoding.
  • Dropped unused idx_points_user_city database index (304 MB) and replaced the full reverse_geocoded_at index (1,149 MB) with a smaller partial index covering only un-geocoded rows.
  • Selecting a track on Map v2 now always dims other tracks, regardless of whether the track has transportation mode segments.
  • Default map layers for new users changed from Routes + Heatmap to Tracks + Heatmap. Existing users' settings are unaffected.
  • Renamed the bottom-panel "Timeline" feature to "Replay" to avoid naming collision with the new Timeline feed sidebar.
  • Default value for RAILS_ENV in docker-compose.yml is now production instead of development
Fixed
  • Stats queries (daily distance, time of day) now correctly handle timezone conversion without double-converting from UTC.
  • Timezone validation in stats queries now properly resolves Rails timezone names to IANA identifiers.
  • Clicking on [Map] on Stats page now correctly respects the user's preferred map version (v1 or v2) instead of always linking to Map v1. #​2281

v1.2.0

Compare Source

Changed
  • Overall app performance in browser was improved
  • Docker images are now being built in parallel for both amd64 and arm64 architectures to speed up the build process. Thank you @​rtuszik!
Added
  • Map v2 requires WebGL support, so if user's browser doesn't support it or it's disabled, they will see a warning message with a link to the list of supported browsers.
  • New Insights API (GET /api/v1/insights) returning year overview with totals, activity heatmap, and streak data for the mobile app.
  • New Insights Details API (GET /api/v1/insights/details) returning year-over-year comparison and travel patterns for the mobile app.
  • New Digests API (GET/POST/DELETE /api/v1/digests) allowing the mobile app to list, view, generate, and delete yearly digests. Digest generation runs asynchronously via Sidekiq and returns 202 Accepted. Digest detail supports conditional GET (Last-Modified / 304 Not Modified).
Fixed
  • Scratch map layer is now working again on Map v2.
  • Colored routes on Map v2 are now working correctly. Zoom in closer to see colored segments. #​2254
  • Live mode on Map v2 is now working again.

v1.1.0

Compare Source

The Timeline Release

In Map V2 Tools, user can now enable Timeline tool, which allows to quickly navigate through time and see how their location changed throughout the day. It can also be used to replay a trip by clicking the play button. Timeline tool always spans across 24 hours, but you can change the date by clicking on the date picker. Timeline tool is available only on Map V2.

Added
  • Photos are now being clustered on the Map v2 to improve performance and usability when viewing large numbers of photos.
  • City statistics thresholds are now user-configurable: "Min Minutes in City" and "Max Gap Between Points" sliders in the Map v2 Settings panel. #​2207
  • New Timeline tool is added to Map V2. It allows user to quickly navigate through time and see how their location changed throughout the day. It can also be used to replay a trip by clicking the play button.
Fixed
  • The SSL Security Warning is now working correctly on the Immich and Photoprism integration forms.
  • Family members and Places layers are now being correctly remembered across page reloads on Map v2.
  • Immich returning 400. #​2222 #​2186
  • Points info on the Map V2 now shows time in 24h format and includes seconds. #​2172
  • Digests not being created for years earlier than 2000. #​2158
  • Tracks on Map V2 are now respecting the date filters correctly. #​2196
  • Undefined method .to_sym for nil in Sidekiq. #​2190
  • /api/v1/stats now works faster.
Changed
  • Zooming animation is disabled on Map V2 loading #​2219
  • Exporting points to GPX and GeoJSON now works better and faster for large numbers of points by processing the export in chunks to reduce memory usage. #​2161

v1.0.4

Compare Source

Fixed

v1.0.3

Compare Source

Fixed
Added
  • SMTP_STARTTLS environment variable to enable STARTTLS for SMTP connections. Disabled by default.

v1.0.2

Compare Source

The Insights, Transportation Mode Detection and Supporter Verification release

Quiet a few big things in this release! It starterted with the idea of adding the Insights page. I experimented with it a bit to see what kinds charts and visualizations we can already have based on the existing data. There were some, but one of the most exciting to me would be the ability to see the Activity Breakdown: now many hours I spent walking, driving and running. Spoiler: I didn't run that much last year :) Anyway, to get that, we needed to have transportation mode detection for tracks. So naturally I went ahead and implemented that as well. Now, not only we can see the activity breakdown, but also, on the Map V2, if you click on a track (Tracks layer should enabled), you will see the transportation modes for it. That's what I wanted for Dawarich for a long time, and I'm happy it's finally here! In the map settings panel, there is now Transportation Mode Detection section, where you can configure speed thresholds for each mode. By default, they are set to reasonable values, but you can tweak them as you wish. Changing the thresholds will recalculate modes for all tracks in the background, which may take a while depending on how many tracks you have.

Another thing introduced in this release, is support verification. Almost 150 people have supported us financially on Ko-fi, Patreon and GitHub Sponsors, and if you're one of them, on the Settings page you can now enter your email and verify your support. Verified supporters will get a special (disableable) badge in the navbar as a token of our appreciation. Thank you so much for supporting Dawarich!

Anyway, enjoy the release and don't forget to report any bugs you may find!

Added
  • App-level DNS cache with 5 minutes TTL to reduce DNS lookups and improve performance. #​2183
  • New Insights page with comprehensive analytics and visualizations:
    • Activity heatmap: GitHub-style contribution graph showing daily activity throughout the year
    • Activity streak: Track your current streak and longest streak of consecutive active days
    • Top visited locations: See your most frequently visited places for the selected year
    • Year comparison: Compare stats (distance, countries, cities, active days) with previous year
    • Activity breakdown: Visualize your activity distribution by transportation mode
    • Monthly digest: Detailed monthly statistics with travel patterns
    • Travel patterns: Time-of-day and day-of-week activity distribution
    • Movement wellness: Health-related insights based on your movement data
    • Location clusters: Geographic clustering of your visited locations
  • Transportation mode detection for tracks: Tracks are now automatically segmented by transportation mode (walking, cycling, driving, etc.) with configurable speed thresholds in settings. Modes are recalculated when threshold settings change.
  • Near real-time track generation: Tracks are now generated within ~45 seconds of receiving new points (via OwnTracks, Overland, or the Points API) using a Redis-based debouncer. This replaces the previous 4-hour polling cycle for most cases. Daily generation job frequency reduced from every 4 hours to every 12 hours as a fallback.
  • Track merging: Consecutive tracks that belong to the same journey are automatically merged when the gap between them is within the configured time threshold.
  • Email preferences moved to "General" tab in user settings for better organization.
Fixed
  • Remove assets before precompilation to prevent stale assets from being served. #​2187
  • undefined method 'to_sym' for nil in sidekiq #​2190
  • Tracks::BoundaryResolverJob now uses deterministic exponential backoff instead of random delays, and stops retrying after 5 attempts to avoid infinite rescheduling.
  • Hanging Sidekiq job #​2134
Changed
  • Daily track generation job runs every 12 hours instead of every 4 hours, since real-time generation handles most cases.

v1.0.1

Compare Source

Added
  • SSL certificate verification can now be disabled for Immich and Photoprism integrations to support self-signed certificates. A prominent security warning is displayed when this option is enabled. #​1645
Fixed
  • Photo timestamps from Immich are now correctly parsed as UTC, fixing the double timezone offset bug where times were displayed incorrectly. #​1752
  • Trip photo grids now update immediately after photos are imported, instead of showing cached/stale results for up to 24 hours. #​627 #​988
  • Immich API responses are now validated for content-type and JSON format before parsing, providing clear diagnostic error messages when the API returns unexpected responses. #​698 #​1013 #​1078
  • Response validator logs truncated response bodies (max 1000 chars) when JSON parsing fails, improving debugging capabilities.
  • GeoJSON formatted points now have correct timestamp parsed from raw_data['properties']['date'] field.
  • Reduce number of iterations during cache cleaning to improve performance.
  • Version in the navbar is now correct. #​2154
  • Dawarich can now be ran under a non-root user in Docker. #​1159
  • Fix an error on the Trips page when trip is created but no path is yet calculated. #​1426
  • Catch an error with invalid response during reverse-geocoding. #​1439
  • In the Immich integration form there are now required permissions listed: asset.read and asset.view. #​1730
  • A doc issue regarding suggesting new visits. #​1737
  • ALLOW_EMAIL_PASSWORD_REGISTRATION and OIDC_AUTO_REGISTER env vars are now being respected correctly. #​1972
  • Fog of War layer on Map V1 now properly re-appears when toggled off and on again without requiring a page refresh. #​2039
  • User's points_count counter cache is now properly updated when creating points via OwnTracks, Overland, and generic Points API. This fixes visit suggestions not working for users using HomeAssistant or similar integrations. #​2167
  • Removed redundant subscriptions to WS channel.
  • Live mode is working again on both map V1 and V2.
Changed
  • Map V2 is now the default map version for new users. Existing users will keep using Map V1 unless they change it in the settings.
  • Email preferences moved to dedicated "Emails" tab in user settings for better organization.
Removed
  • Tile Usage reporting feature and related prometheus metric have been removed due to low usage. #​1876

v1.0.0

Compare Source

The 1.0.0 release. Same as in 0.37.3, but with updated version number. We're aiming to provide more stable releases going forward.

All the issues that are currently open in Github will be addressed in the upcoming releases.

v0.37.3

Compare Source

Fixed
  • Routes are now being drawn the very same way on Map V2 as in Map V1. #​2132 #​2086 #​2121
  • RailsPulse performance monitoring is now disabled for self-hosted instances. It fixes poor performance on Synology. #​2139 #​2096
Changed
  • Map V2 points loading is significantly sped up.
  • Points size on Map V2 was reduced to prevent overlapping. #​2122
  • Points sent from Owntracks and Overland are now being created synchronously to instantly reflect success or failure of point creation.

v0.37.2

Compare Source

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
Added
  • In Map v2 settings, you can now enable map to be rendered as a globe.

v0.37.1

Compare Source

Fixed
  • The db migration preventing the app from starting.
  • Raw data archive verifier now allows having points deleted from the db after archiving.

v0.37.0

Compare Source

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.

v0.36.4

Compare Source

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

v0.36.3

Compare Source

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

v0.36.2

Compare Source

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.

v0.36.1

Compare Source

Fixed
  • Exporting user data now works a lot faster and consumes less memory.
  • Fix the restart loop. #​1937 #​1975

v0.36.0

Compare Source

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

v0.35.1

Compare Source

Fixed

v0.35.0

Compare Source

⚠️ 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.

v0.34.2

Compare Source

Fixed
  • Fixed a bug in UTM trackable concern. #​1909

v0.34.1

Compare Source

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.

v0.34.0

Compare Source

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.

v0.33.1

Compare Source

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.

v0.33.0

Compare Source

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 <gpx tag will now be detected correctly. #​1775
  • Buttons on the map now have correct contrast in both light and dark modes.
Changed
  • Onboarding modal window now features a link to the App Store and a QR code to configure the Dawarich iOS app.
  • A permanent option was removed from stats sharing options. Now, stats can be shared for 1, 12 or 24 hours only.
  • User data archive importing now uploads the file directly to the storage service instead of uploading it to the app first.
  • Importing progress bars are now looking nice.
  • Ruby version was updated to 3.4.6.
Added
  • Based on preferred theme (light or dark), the map controls will now load with the corresponding styles.
  • [Dawarich Cloud] Added foundation for upcoming authentication from iOS app.
  • [Dawarich Cloud] Trial users can now create up to 5 imports. After that, they will be prompted to subscribe to a paid plan.
  • [Dawarich Cloud] Added Posthog analytics. Disabled by default, can be enabled with POSTHOG_ENABLED environment variable.

Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [freikin/dawarich](https://github.com/Freika/dawarich) | Kustomization | major | `0.32.0` → `1.6.1` | --- ### Release Notes <details> <summary>Freika/dawarich (freikin/dawarich)</summary> ### [`v1.6.1`](https://github.com/Freika/dawarich/blob/HEAD/CHANGELOG.md#161---2026-04-02) [Compare Source](https://github.com/Freika/dawarich/compare/1.6.0...1.6.1) ##### Added - Info badge on import form suggesting users zip large files (200MB+) before uploading. - Missing SVG icons for activity breakdown (ship, circle). ##### Fixed - Fix compressed zip files failing to import with "No such file or directory" error. Rubyzip needs to re-open the source zip for compressed entries, but the temp file could be garbage collected before extraction completes [#&#8203;2446](https://github.com/Freika/dawarich/issues/2446). - Fix anomaly filter crashing on large imports (millions of points) due to loading all points into memory at once. Speed-based filtering now processes data in monthly chunks. ### [`v1.6.0`](https://github.com/Freika/dawarich/blob/HEAD/CHANGELOG.md#160---2026-03-29) [Compare Source](https://github.com/Freika/dawarich/compare/1.5.1...1.6.0) ##### Added - Immich users can now enrich their photos with geodata. - Users can now optionally enable two-factor authentication (2FA) for their accounts in Settings > Two-Factor Authentication. Supported methods: TOTP apps (Google Authenticator, Authy, etc.) and backup codes. Once enabled, users will be prompted for a 2FA code on login. This adds an extra layer of security to protect your location data. ##### Fixed - Fix OIDC account linking failing when the email from the identity provider has different casing than the existing Dawarich account [#&#8203;1983](https://github.com/Freika/dawarich/issues/1983). - Fix confirmation dialogs being ignored when clicking "Cancel" — destructive actions (account deletion, import/export deletion, place deletion) fired regardless of user choice due to Rails UJS and Turbo both handling the same click [#&#8203;1978](https://github.com/Freika/dawarich/issues/1978). - Fix Year in Review share link being empty when toggling public access [#&#8203;2418](https://github.com/Freika/dawarich/issues/2418). - Fix address field on Points page being empty when geodata properties are unavailable [#&#8203;2419](https://github.com/Freika/dawarich/issues/2419). - Fix Stats API returning the same country/city count for every year instead of per-year counts [#&#8203;2280](https://github.com/Freika/dawarich/issues/2280). - Fix flyover countries (with no visited cities) still showing in monthly stats views [#&#8203;2423](https://github.com/Freika/dawarich/issues/2423). - Fix importing Google Timeline files. [#&#8203;2427](https://github.com/Freika/dawarich/issues/2427) ### [`v1.5.1`](https://github.com/Freika/dawarich/blob/HEAD/CHANGELOG.md#151---2026-03-28) [Compare Source](https://github.com/Freika/dawarich/compare/1.5.0...1.5.1) ##### Fixed - Fix points and tracks interactions on Map v2 being unresponsive after the latest update. - Fix creating demo data from the onboarding modal. - Fix navbar for cloud trial users. - Reset months stats instead of deleting when there is no data. ### [`v1.5.0`](https://github.com/Freika/dawarich/blob/HEAD/CHANGELOG.md#150---2026-03-28) [Compare Source](https://github.com/Freika/dawarich/compare/1.4.0...1.5.0) ##### Added - GPS noise filtering. An automatic system to detect ahd filter out points with unrealistic speeds, altitudes, or sudden jumps. - Support for signing in via web view using our Android app. - On the map settings page user now can enable and disable map layers. - Onboarding modal now offers a third option to load demo data (3 days in Berlin, \~1000 points) so new users can instantly see what the map looks like. Demo imports bypass trial limits, are clearly labeled with a "Demo" badge, and can be deleted from a banner on the map page or from the imports list. - New tool to the Map V2 tools: The "Day per Country" button will open a modal showing a breakdown of how many days the user has spent in each country, based on their points data. This is calculated by grouping points by country and counting unique days with at least one point in that country. ##### Changed - \[Cloud] The point creation API endpoints are being excluded from the default Lite/Pro rate limits (200/1,000 requests/hour). They now have general rate limits of 10,000 requests/hour. - Buildings numbers on map V2 are now shown on closer zoom. ##### Fixed - Users who registered via Google (or other OAuth providers) can now change their password and email without needing to enter their current password. - Fix deadlocks in reverse geocoding job when multiple Sidekiq workers update points concurrently. - Fix `counter_cache_column` error in points counter reset job by using direct SQL count instead of `reset_counters`. - Fix duplicate place records causing `ON CONFLICT` cardinality violations during reverse geocoding. - Fix `TypeError` crash in transportation mode backfill when Google export files have unexpected JSON structure. - Fix inability to disable visit suggestions background job due to conflicting Rails UJS and Turbo handlers causing request cancellation [#&#8203;2118](https://github.com/Freika/dawarich/issues/2118). - Fix visit confirm/decline buttons firing twice [#&#8203;2379](https://github.com/Freika/dawarich/issues/2379). - Fix clicking on a point in Map v2 silently moving it to the cursor position. Points now only update when intentionally dragged [#&#8203;2149](https://github.com/Freika/dawarich/issues/2149), [#&#8203;2150](https://github.com/Freika/dawarich/issues/2150). - Fix visit name suggester not recognizing Photon reverse geocoding data format, causing all suggested places to show as "Suggested place" [#&#8203;2151](https://github.com/Freika/dawarich/issues/2151), [#&#8203;2377](https://github.com/Freika/dawarich/issues/2377). - Fix visit edit form displaying UTC times instead of the user's configured timezone [#&#8203;2168](https://github.com/Freika/dawarich/issues/2168). - Fix export deletion failing when the export file was manually removed from disk [#&#8203;915](https://github.com/Freika/dawarich/issues/915). - Fix PhotoPrism `before` date filter being off by one day, excluding photos taken on the end date [#&#8203;747](https://github.com/Freika/dawarich/issues/747). - Fix datetime inputs allowing 5-digit years on Chrome by adding `max` attribute to all datetime-local fields [#&#8203;578](https://github.com/Freika/dawarich/issues/578). - Fix Points page datetime fields requiring seconds input, preventing search on mobile browsers and some desktop browsers [#&#8203;1040](https://github.com/Freika/dawarich/issues/1040), [#&#8203;1478](https://github.com/Freika/dawarich/issues/1478). - Fix altitude values being truncated to integers instead of preserving decimal precision [#&#8203;1573](https://github.com/Freika/dawarich/issues/1573). - Fix suggested visits keeping "Suggested Visit" name when confirmed directly without selecting a place [#&#8203;1725](https://github.com/Freika/dawarich/issues/1725). - Fix visit name becoming empty and uneditable when clicking the name field and then clicking away [#&#8203;1776](https://github.com/Freika/dawarich/issues/1776). - Fix trips page crashing with `undefined method 'coordinates' for nil` when trip path calculation hasn't completed yet [#&#8203;1356](https://github.com/Freika/dawarich/issues/1356), [#&#8203;1765](https://github.com/Freika/dawarich/issues/1765). - Fix Immich/PhotoPrism photos on map not being filtered by the selected date range [#&#8203;1755](https://github.com/Freika/dawarich/issues/1755). - Fix short trips (less than one full day) not showing photos due to PhotoPrism `before` date filter being exclusive [#&#8203;1688](https://github.com/Freika/dawarich/issues/1688). - Fix health check endpoint (`/api/v1/health`) triggering unnecessary `User Load` database queries on every request [#&#8203;1770](https://github.com/Freika/dawarich/issues/1770). - Fix points created via Overland API (Home Assistant, GPSLogger) not being automatically reverse geocoded after creation [#&#8203;1242](https://github.com/Freika/dawarich/issues/1242). - Fix monthly stats map crashing with `Invalid LatLng object: (NaN, NaN)` when points have missing coordinates [#&#8203;1762](https://github.com/Freika/dawarich/issues/1762). - Fix trips failing with self-signed certificates by leveraging per-integration SSL skip settings [#&#8203;455](https://github.com/Freika/dawarich/issues/455). - Fix non-admin users unable to access Background Jobs settings to trigger reverse geocoding or manage visit suggestions [#&#8203;1714](https://github.com/Freika/dawarich/issues/1714). - Fix family page map not loading due to `escape_javascript` producing invalid JSON in the Stimulus data attribute. - Fix countries appearing in visited statistics despite only being driven through without spending meaningful time in any city [#&#8203;1595](https://github.com/Freika/dawarich/issues/1595), [#&#8203;1779](https://github.com/Freika/dawarich/issues/1779). - Fix `migrate_to_new_storage` rake task crashing when export URL is blank, already migrated, or points to a directory instead of a file [#&#8203;1018](https://github.com/Freika/dawarich/issues/1018), [#&#8203;1037](https://github.com/Freika/dawarich/issues/1037). - Fix selecting the only suggested place for a visit having no effect because the dropdown `change` event never fires with a single option [#&#8203;471](https://github.com/Freika/dawarich/issues/471). - Fix city duration calculation undercounting time spent due to integer division truncating sub-minute GPS intervals to zero [#&#8203;2408](https://github.com/Freika/dawarich/issues/2408). - Fix tooltips in data tables (Imports, Exports, Points) being hidden behind adjacent rows [#&#8203;2409](https://github.com/Freika/dawarich/issues/2409). - Fix iOS QR code in Account settings being cut off on the right side [#&#8203;2406](https://github.com/Freika/dawarich/issues/2406). ### [`v1.4.0`](https://github.com/Freika/dawarich/blob/HEAD/CHANGELOG.md#140--2026-03-22) [Compare Source](https://github.com/Freika/dawarich/compare/1.3.4...1.4.0) ##### Added - Family page now contains a map with family members markers on it. - Visits page now have "Confirm all" and "Decline all" buttons to quickly confirm or decline all visit suggestions at once. ##### Changed - Updated look and feel - The point counting was changed to be more efficient on bigger accounts. - Redesigned raw data archival system for large instances (10M+ points). ##### Fixed - Fix Lite plan archival warnings sending all three notifications (11-month, 11.5-month, and 12-month) simultaneously when a user's oldest data already exceeds all thresholds. Now only the most severe warning is sent, and lower thresholds are marked as already notified. - Misconfigured Prometheus settings will no longer litter logs with error messages, it will make multiple attempts to connect instead and then stop. - One of previous versions removed a database index making points upload very slow. The index is now added back to fix the issue. ### [`v1.3.4`](https://github.com/Freika/dawarich/blob/HEAD/CHANGELOG.md#134---2026-03-15) [Compare Source](https://github.com/Freika/dawarich/compare/1.3.3...1.3.4) ##### Added - Family members can now share their location with each other. In the family settings, you can send a location sharing request to any family member. Once they accept it, you will be able to see their location on the map and they will be able to see yours. You can also revoke location sharing at any time. Location sharing is disabled by default for all existing families, so you need to enable it in the family settings if you want to use this feature. ##### Changed - Redesigned onboarding modal with two paths: "I have data" (inline file import) and "Start tracking" (app download + QR code). New users with existing location data can now start importing within 2 clicks of signing up. - Onboarding completion is now persisted server-side (`settings.onboarding_completed`) instead of relying solely on localStorage, preventing the modal from reappearing after browser data clears. - Route opacity data migration now runs as a background job instead of inline during migration, improving deployment reliability for large instances. ##### Fixed - Fix admin and supporter tooltip overflowing the page on narrow screens. [#&#8203;1449](https://github.com/Freika/dawarich/issues/1449) - Fix date navigation arrow tooltips overlapping with the navbar on map pages. [#&#8203;2229](https://github.com/Freika/dawarich/issues/2229) [#&#8203;2100](https://github.com/Freika/dawarich/issues/2100) - Fix infinite loading spinner when a trip has no points in its date range. [#&#8203;2293](https://github.com/Freika/dawarich/issues/2293) - Fix Insights monthly digest panels disappearing when switching months. [#&#8203;2305](https://github.com/Freika/dawarich/issues/2305) - Fix suggested visit confirm/decline not removing the visit from the list. [#&#8203;2307](https://github.com/Freika/dawarich/issues/2307) - Fix Stats page reloading when clicking "countries, cities" link. [#&#8203;2270](https://github.com/Freika/dawarich/issues/2270) - Fix map base layer selection not being restored after page reload (Maps v1). [#&#8203;2093](https://github.com/Freika/dawarich/issues/2093) - Fix duplicate country names in stats caused by geocoder returning different spellings. [#&#8203;2044](https://github.com/Freika/dawarich/issues/2044) - Fix total distance display overlapping layer picker when distance is in miles. [#&#8203;2017](https://github.com/Freika/dawarich/issues/2017) - Fix default route opacity displaying as 6000% for new users. [#&#8203;1891](https://github.com/Freika/dawarich/issues/1891) - Fix shared month stats map missing hexagons from the last day of the month. [#&#8203;1934](https://github.com/Freika/dawarich/issues/1934) - Fix Nominatim reverse geocoder producing all places named "Suggested place" instead of actual place names. [#&#8203;2182](https://github.com/Freika/dawarich/issues/2182) - Fix IDL-crossing route segmenter returning inconsistent coordinate types. `unwrapCoordinates` now always returns a uniform array-of-arrays structure. [#&#8203;2038](https://github.com/Freika/dawarich/issues/2038) - Fix a migration taking too long. [#&#8203;2375](https://github.com/Freika/dawarich/issues/2375) - Fix family sharing not including the requesting user's own location. [#&#8203;2153](https://github.com/Freika/dawarich/issues/2153) - The "Destroy" button on the trip page is now orange. [#&#8203;2348](https://github.com/Freika/dawarich/issues/2348) ### [`v1.3.3`](https://github.com/Freika/dawarich/blob/HEAD/CHANGELOG.md#133---2026-03-12) [Compare Source](https://github.com/Freika/dawarich/compare/1.3.2...1.3.3) ##### Added - Better user management with pagination, search, and filtering in the admin panel. Admins can now easily find and manage users based on email, registration date, and activity status. ##### Fixed - Points table now converts speed from m/s to km/h (or mph) using the user's distance unit preference. Previously raw m/s values were displayed with a "km/h" label. [#&#8203;2337](https://github.com/Freika/dawarich/issues/2337) - Digest list API (`GET /api/v1/digests`) now returns distance as a structured object with `meters`, `converted`, and `unit` fields, matching the detail endpoint. Previously it returned raw meters, causing clients to display incorrect values. **Breaking change**: the `distance` field changed from an integer to an object. [#&#8203;2336](https://github.com/Freika/dawarich/issues/2336) - Dead documentation links in v0.26.0 changelog entry now point to the correct URLs. [#&#8203;2344](https://github.com/Freika/dawarich/issues/2344) - Filter out Immich and Photoprism api keys from logs to prevent accidental exposure. [#&#8203;2368](https://github.com/Freika/dawarich/issues/2368) - Fix foreign key violation when deleting users with place\_visits referencing visits. - Fix reverse geocoding job failing on points with nil timestamp or lonlat. - Fix unsupported archive format generating Sentry noise instead of a user-friendly notification. - Fix deadlock in reverse geocoding places upsert under concurrent Sidekiq workers. - Reduce Redis disk I/O by relaxing RDB snapshot frequency. Previously the default `save 60 10000` rule caused a snapshot every \~60 seconds due to Sidekiq polling, generating tens of terabytes of disk writes over weeks. New defaults: snapshots every 15 minutes (10+ changes) or 5 minutes (100+ changes). - Reduce default Sidekiq concurrency from 10 to 5 threads. Most self-hosted instances don't need 10 workers and the extra threads increase Redis polling traffic. - Migration bug for version skippers. [#&#8203;2362](https://github.com/Freika/dawarich/issues/2362) ### [`v1.3.2`](https://github.com/Freika/dawarich/blob/HEAD/CHANGELOG.md#132---2026-03-08) [Compare Source](https://github.com/Freika/dawarich/compare/1.3.1...1.3.2) **Important**: Self-hosters are not limited in any way. All features remain fully available regardless of plan. The new Lite plan and related limitations apply only to Dawarich Cloud users. If you're self-hosting, you can ignore the Lite plan details below. Self-hosted instances will continue to have access to all features without any restrictions. ##### Added - Lite plan for Dawarich Cloud. Lite includes core tracking, map visualization (routes, points), stats, and the read API. Data view is limited to the last 12 months — older data is archived but can always be exported. Pro-only features: Heatmap, Fog of War, Scratch Map, Globe View, Immich/Photoprism integrations, public stats sharing, and write API (update/delete). Lite users can still create points via the API. Self-hosted instances are unaffected — all features remain fully available regardless of plan. - Timed layer previews for Lite users on the map. Toggling a Pro-only layer (Heatmap, Fog of War, Scratch Map) shows it for 20 seconds with a countdown, then auto-hides with an upgrade prompt. - Per-plan API rate limiting via `rack-attack`. Lite: 200 requests/hour, Pro: 1,000 requests/hour. Self-hosted instances are exempt. Rate-limited responses return 429 with `Retry-After` header. - Archival warning notifications for Lite users approaching the 12-month data window: in-app notification at 11 months, email at 11.5 months, archived confirmation at 12 months. - `GET /api/v1/plan` endpoint returning the user's current plan and feature availability. - `X-Total-Points-In-Range` and `X-Scoped-Points` response headers on the points API, allowing clients to detect when data is being windowed. - Branded OAuth buttons for Google and GitHub on the login page. ##### Changed - Numeric-only strings passed to timestamp API parameters (e.g. `start_at`, `end_at`) are now treated as Unix timestamps directly. Previously they were passed through `Time.zone.parse`, which could return unexpected results. If you were relying on the old behavior for numeric strings, update your API calls accordingly. - The user serializer now includes `plan` in the `subscription` object. ### [`v1.3.1`](https://github.com/Freika/dawarich/blob/HEAD/CHANGELOG.md#131---2026-02-27) [Compare Source](https://github.com/Freika/dawarich/compare/1.3.0...1.3.1) ##### Changed - User deletion now being done in the background to prevent request timeouts for users with large amount of data. ##### Fixed - Point speed in Map V2 is now correctly calculated from m/s to km/h or mph based on user preference. [#&#8203;2308](https://github.com/Freika/dawarich/issues/2308) - Family members are now being loaded correctly on Map V2 when family layer is enabled. [#&#8203;2250](https://github.com/Freika/dawarich/issues/2250) - Photos popups on Map V2 now show the photo timestamp in user's timezone. [#&#8203;2310](https://github.com/Freika/dawarich/issues/2310) - Fix the issue preventing fresh app from starting. [#&#8203;2304](https://github.com/Freika/dawarich/issues/2304) ### [`v1.3.0`](https://github.com/Freika/dawarich/blob/HEAD/CHANGELOG.md#130---2026-02-25) [Compare Source](https://github.com/Freika/dawarich/compare/1.2.0...1.3.0) The Storage & Timeline Interaction Release This release adds a dedicated `motion_data` column for transportation-relevant fields alongside the existing `raw_data`. Users can now set their timezone for accurate date/time display across the app. The Timeline feed in Map v2 gains richer map interaction: hovering a journey highlights its track with an animated border, clicking zooms to fit and selects it, and expanding a day shows visit markers even when the Visits layer is off. User data export/import is enhanced with a new v2 format using JSONL files and monthly splitting for large datasets, while remaining backward-compatible with the old format. ##### Added - Per-user timezone setting. Users can now select their timezone from Settings > General, and all dates/times across the app (including background jobs and API responses) will respect it. Defaults to the server's `TIME_ZONE` environment variable for existing users. - `motion_data` JSONB column on the `points` table for storing transportation-relevant fields separately from `raw_data`. - Background job (`DataMigrations::BackfillMotionDataJob`) to backfill `motion_data` from `raw_data` for existing points. - New Timeline feed in Map v2 Tools panel for browsing daily location history. Distances and speeds respect the user's distance unit preference (km/mi). - Clicking a track point (when "Show Points" is enabled) now displays point info (timestamp, battery, altitude, speed) in the track info panel instead of triggering a position update. Dragging a point still updates its position and triggers track recalculation. - Timeline-map interaction: hovering a journey entry in the Timeline feed now highlights the matching track on the map with the animated border and flow effect. Clicking a journey entry zooms the map to fit the track and keeps it selected. Expanding a day in the Timeline now temporarily shows visit markers for that day, even if the Visits layer is disabled. - AES-256-GCM encryption for raw data archives (format version 2). Set `ARCHIVE_ENCRYPTION_KEY` to use a custom key; otherwise derives from `SECRET_KEY_BASE`. Existing unencrypted archives (format version 1) are read transparently. - v2 export/import format with JSONL files and monthly splitting for large entities (points, visits, stats, tracks, digests). The new format streams data to avoid memory issues with large datasets, while remaining backward-compatible with v1 archives (`data.json`). - User data export now includes Tags, Taggings, Tracks (with embedded TrackSegments), Digests, and Raw Data Archives — previously missing from export/import, meaning users who exported and re-imported would lose these entities. - Tracks are exported with their `original_path` serialized as WKT and `track_segments` embedded as a nested array, preserving transportation mode detection data across export/import cycles. - Digests get a fresh `sharing_uuid` on import for security — old share links from the original user won't work for the importing user. - Raw Data Archives are exported with their attached gzip files, enabling full data restoration. - Failed imports now will have an error message shown to the user. - Pagination now looks nicer and more informative, indicating current page. [#&#8203;2279](https://github.com/Freika/dawarich/issues/2279) - Imports and exports now can be sorted by name, file size, number of points, and creation date. [#&#8203;2279](https://github.com/Freika/dawarich/issues/2279) - Lots of missing Swagger specs for the API endpoints have been added, improving API documentation and enabling better client generation. swagger.yaml is updated. ##### Changed - Transportation-relevant fields (motion, activity, action) are now stored in a dedicated `motion_data` column alongside `raw_data`, enabling efficient transportation mode detection. - All import sources now write both `raw_data` (full original payload) and `motion_data` (transportation-relevant fields). - The `STORE_GEODATA` setting now correctly controls whether geodata is written during reverse geocoding. - Dropped unused `idx_points_user_city` database index (304 MB) and replaced the full `reverse_geocoded_at` index (1,149 MB) with a smaller partial index covering only un-geocoded rows. - Selecting a track on Map v2 now always dims other tracks, regardless of whether the track has transportation mode segments. - Default map layers for new users changed from Routes + Heatmap to Tracks + Heatmap. Existing users' settings are unaffected. - Renamed the bottom-panel "Timeline" feature to "Replay" to avoid naming collision with the new Timeline feed sidebar. - Default value for `RAILS_ENV` in `docker-compose.yml` is now `production` instead of `development` ##### Fixed - Stats queries (daily distance, time of day) now correctly handle timezone conversion without double-converting from UTC. - Timezone validation in stats queries now properly resolves Rails timezone names to IANA identifiers. - Clicking on \[Map] on Stats page now correctly respects the user's preferred map version (v1 or v2) instead of always linking to Map v1. [#&#8203;2281](https://github.com/Freika/dawarich/issues/2281) ### [`v1.2.0`](https://github.com/Freika/dawarich/blob/HEAD/CHANGELOG.md#120---2026-02-15) [Compare Source](https://github.com/Freika/dawarich/compare/1.1.0...1.2.0) ##### Changed - Overall app performance in browser was improved - Docker images are now being built in parallel for both amd64 and arm64 architectures to speed up the build process. Thank you [@&#8203;rtuszik](https://github.com/rtuszik)! ##### Added - Map v2 requires WebGL support, so if user's browser doesn't support it or it's disabled, they will see a warning message with a link to the list of supported browsers. - New **Insights API** (`GET /api/v1/insights`) returning year overview with totals, activity heatmap, and streak data for the mobile app. - New **Insights Details API** (`GET /api/v1/insights/details`) returning year-over-year comparison and travel patterns for the mobile app. - New **Digests API** (`GET/POST/DELETE /api/v1/digests`) allowing the mobile app to list, view, generate, and delete yearly digests. Digest generation runs asynchronously via Sidekiq and returns `202 Accepted`. Digest detail supports conditional GET (`Last-Modified` / `304 Not Modified`). ##### Fixed - Scratch map layer is now working again on Map v2. - Colored routes on Map v2 are now working correctly. Zoom in closer to see colored segments. [#&#8203;2254](https://github.com/Freika/dawarich/issues/2254) - Live mode on Map v2 is now working again. ### [`v1.1.0`](https://github.com/Freika/dawarich/blob/HEAD/CHANGELOG.md#110---2026-02-08) [Compare Source](https://github.com/Freika/dawarich/compare/1.0.4...1.1.0) The Timeline Release In Map V2 Tools, user can now enable Timeline tool, which allows to quickly navigate through time and see how their location changed throughout the day. It can also be used to replay a trip by clicking the play button. Timeline tool always spans across 24 hours, but you can change the date by clicking on the date picker. Timeline tool is available only on Map V2. ##### Added - Photos are now being clustered on the Map v2 to improve performance and usability when viewing large numbers of photos. - City statistics thresholds are now user-configurable: "Min Minutes in City" and "Max Gap Between Points" sliders in the Map v2 Settings panel. [#&#8203;2207](https://github.com/Freika/dawarich/issues/2207) - New Timeline tool is added to Map V2. It allows user to quickly navigate through time and see how their location changed throughout the day. It can also be used to replay a trip by clicking the play button. ##### Fixed - The SSL Security Warning is now working correctly on the Immich and Photoprism integration forms. - Family members and Places layers are now being correctly remembered across page reloads on Map v2. - Immich returning 400. [#&#8203;2222](https://github.com/Freika/dawarich/issues/2222) [#&#8203;2186](https://github.com/Freika/dawarich/issues/2186) - Points info on the Map V2 now shows time in 24h format and includes seconds. [#&#8203;2172](https://github.com/Freika/dawarich/issues/2172) - Digests not being created for years earlier than 2000. [#&#8203;2158](https://github.com/Freika/dawarich/issues/2158) - Tracks on Map V2 are now respecting the date filters correctly. [#&#8203;2196](https://github.com/Freika/dawarich/issues/2196) - Undefined method `.to_sym` for nil in Sidekiq. [#&#8203;2190](https://github.com/Freika/dawarich/issues/2190) - `/api/v1/stats` now works faster. ##### Changed - Zooming animation is disabled on Map V2 loading [#&#8203;2219](https://github.com/Freika/dawarich/issues/2219) - Exporting points to GPX and GeoJSON now works better and faster for large numbers of points by processing the export in chunks to reduce memory usage. [#&#8203;2161](https://github.com/Freika/dawarich/issues/2161) ### [`v1.0.4`](https://github.com/Freika/dawarich/blob/HEAD/CHANGELOG.md#104---2026-02-01) [Compare Source](https://github.com/Freika/dawarich/compare/1.0.3...1.0.4) ##### Fixed - Wrong path helper in the navbar for Settings link. [#&#8203;2215](https://github.com/Freika/dawarich/issues/2215) [#&#8203;2213](https://github.com/Freika/dawarich/issues/2213) ### [`v1.0.3`](https://github.com/Freika/dawarich/blob/HEAD/CHANGELOG.md#103---2026-02-01) [Compare Source](https://github.com/Freika/dawarich/compare/1.0.2...1.0.3) ##### Fixed - Gemfile being not updated [#&#8203;2210](https://github.com/Freika/dawarich/issues/2210) - Excessive memory usage during visits suggestions job (thanks [@&#8203;nareddyt](https://github.com/nareddyt)!) [#&#8203;2119](https://github.com/Freika/dawarich/issues/2119) ##### Added - `SMTP_STARTTLS` environment variable to enable STARTTLS for SMTP connections. Disabled by default. ### [`v1.0.2`](https://github.com/Freika/dawarich/blob/HEAD/CHANGELOG.md#102---2026-01-31) [Compare Source](https://github.com/Freika/dawarich/compare/1.0.1...1.0.2) The Insights, Transportation Mode Detection and Supporter Verification release Quiet a few big things in this release! It starterted with the idea of adding the Insights page. I experimented with it a bit to see what kinds charts and visualizations we can already have based on the existing data. There were some, but one of the most exciting to me would be the ability to see the Activity Breakdown: now many hours I spent walking, driving and running. Spoiler: I didn't run that much last year :) Anyway, to get that, we needed to have transportation mode detection for tracks. So naturally I went ahead and implemented that as well. Now, not only we can see the activity breakdown, but also, on the Map V2, if you click on a track (Tracks layer should enabled), you will see the transportation modes for it. That's what I wanted for Dawarich for a long time, and I'm happy it's finally here! In the map settings panel, there is now Transportation Mode Detection section, where you can configure speed thresholds for each mode. By default, they are set to reasonable values, but you can tweak them as you wish. Changing the thresholds will recalculate modes for all tracks in the background, which may take a while depending on how many tracks you have. Another thing introduced in this release, is support verification. Almost 150 people have supported us financially on [Ko-fi](https://ko-fi.com/freika), [Patreon](https://www.patreon.com/freika) and [GitHub Sponsors](https://github.com/sponsors/Freika/), and if you're one of them, on the Settings page you can now enter your email and verify your support. Verified supporters will get a special (disableable) badge in the navbar as a token of our appreciation. Thank you so much for supporting Dawarich! Anyway, enjoy the release and don't forget to report any bugs you may find! ##### Added - App-level DNS cache with 5 minutes TTL to reduce DNS lookups and improve performance. [#&#8203;2183](https://github.com/Freika/dawarich/issues/2183) - New **Insights page** with comprehensive analytics and visualizations: - **Activity heatmap**: GitHub-style contribution graph showing daily activity throughout the year - **Activity streak**: Track your current streak and longest streak of consecutive active days - **Top visited locations**: See your most frequently visited places for the selected year - **Year comparison**: Compare stats (distance, countries, cities, active days) with previous year - **Activity breakdown**: Visualize your activity distribution by transportation mode - **Monthly digest**: Detailed monthly statistics with travel patterns - **Travel patterns**: Time-of-day and day-of-week activity distribution - **Movement wellness**: Health-related insights based on your movement data - **Location clusters**: Geographic clustering of your visited locations - **Transportation mode detection for tracks**: Tracks are now automatically segmented by transportation mode (walking, cycling, driving, etc.) with configurable speed thresholds in settings. Modes are recalculated when threshold settings change. - **Near real-time track generation**: Tracks are now generated within \~45 seconds of receiving new points (via OwnTracks, Overland, or the Points API) using a Redis-based debouncer. This replaces the previous 4-hour polling cycle for most cases. Daily generation job frequency reduced from every 4 hours to every 12 hours as a fallback. - **Track merging**: Consecutive tracks that belong to the same journey are automatically merged when the gap between them is within the configured time threshold. - Email preferences moved to "General" tab in user settings for better organization. ##### Fixed - Remove assets before precompilation to prevent stale assets from being served. [#&#8203;2187](https://github.com/Freika/dawarich/issues/2187) - undefined method 'to\_sym' for nil in sidekiq [#&#8203;2190](https://github.com/Freika/dawarich/issues/2190) - `Tracks::BoundaryResolverJob` now uses deterministic exponential backoff instead of random delays, and stops retrying after 5 attempts to avoid infinite rescheduling. - Hanging Sidekiq job [#&#8203;2134](https://github.com/Freika/dawarich/issues/2134) ##### Changed - Daily track generation job runs every 12 hours instead of every 4 hours, since real-time generation handles most cases. ### [`v1.0.1`](https://github.com/Freika/dawarich/blob/HEAD/CHANGELOG.md#101---2026-01-24) [Compare Source](https://github.com/Freika/dawarich/compare/1.0.0...1.0.1) ##### Added - SSL certificate verification can now be disabled for Immich and Photoprism integrations to support self-signed certificates. A prominent security warning is displayed when this option is enabled. [#&#8203;1645](https://github.com/Freika/dawarich/issues/1645) ##### Fixed - Photo timestamps from Immich are now correctly parsed as UTC, fixing the double timezone offset bug where times were displayed incorrectly. [#&#8203;1752](https://github.com/Freika/dawarich/issues/1752) - Trip photo grids now update immediately after photos are imported, instead of showing cached/stale results for up to 24 hours. [#&#8203;627](https://github.com/Freika/dawarich/issues/627) [#&#8203;988](https://github.com/Freika/dawarich/issues/988) - Immich API responses are now validated for content-type and JSON format before parsing, providing clear diagnostic error messages when the API returns unexpected responses. [#&#8203;698](https://github.com/Freika/dawarich/issues/698) [#&#8203;1013](https://github.com/Freika/dawarich/issues/1013) [#&#8203;1078](https://github.com/Freika/dawarich/issues/1078) - Response validator logs truncated response bodies (max 1000 chars) when JSON parsing fails, improving debugging capabilities. - GeoJSON formatted points now have correct timestamp parsed from `raw_data['properties']['date']` field. - Reduce number of iterations during cache cleaning to improve performance. - Version in the navbar is now correct. [#&#8203;2154](https://github.com/Freika/dawarich/issues/2154) - Dawarich can now be ran under a non-root user in Docker. [#&#8203;1159](https://github.com/Freika/dawarich/issues/1159) - Fix an error on the Trips page when trip is created but no path is yet calculated. [#&#8203;1426](https://github.com/Freika/dawarich/issues/1426) - Catch an error with invalid response during reverse-geocoding. [#&#8203;1439](https://github.com/Freika/dawarich/issues/1439) - In the Immich integration form there are now required permissions listed: `asset.read` and `asset.view`. [#&#8203;1730](https://github.com/Freika/dawarich/issues/1730) - A doc issue regarding suggesting new visits. [#&#8203;1737](https://github.com/Freika/dawarich/issues/1737) - `ALLOW_EMAIL_PASSWORD_REGISTRATION` and `OIDC_AUTO_REGISTER` env vars are now being respected correctly. [#&#8203;1972](https://github.com/Freika/dawarich/issues/1972) - Fog of War layer on Map V1 now properly re-appears when toggled off and on again without requiring a page refresh. [#&#8203;2039](https://github.com/Freika/dawarich/issues/2039) - User's `points_count` counter cache is now properly updated when creating points via OwnTracks, Overland, and generic Points API. This fixes visit suggestions not working for users using HomeAssistant or similar integrations. [#&#8203;2167](https://github.com/Freika/dawarich/issues/2167) - Removed redundant subscriptions to WS channel. - Live mode is working again on both map V1 and V2. ##### Changed - Map V2 is now the default map version for new users. Existing users will keep using Map V1 unless they change it in the settings. - Email preferences moved to dedicated "Emails" tab in user settings for better organization. ##### Removed - Tile Usage reporting feature and related prometheus metric have been removed due to low usage. [#&#8203;1876](https://github.com/Freika/dawarich/issues/1876) ### [`v1.0.0`](https://github.com/Freika/dawarich/blob/HEAD/CHANGELOG.md#100---2026-01-20) [Compare Source](https://github.com/Freika/dawarich/compare/0.37.3...1.0.0) The 1.0.0 release. Same as in 0.37.3, but with updated version number. We're aiming to provide more stable releases going forward. All the issues that are currently open in Github will be addressed in the upcoming releases. ### [`v0.37.3`](https://github.com/Freika/dawarich/blob/HEAD/CHANGELOG.md#0373---2026-01-11) [Compare Source](https://github.com/Freika/dawarich/compare/0.37.2...0.37.3) ##### Fixed - Routes are now being drawn the very same way on Map V2 as in Map V1. [#&#8203;2132](https://github.com/Freika/dawarich/issues/2132) [#&#8203;2086](https://github.com/Freika/dawarich/issues/2086) [#&#8203;2121](https://github.com/Freika/dawarich/issues/2121) - RailsPulse performance monitoring is now disabled for self-hosted instances. It fixes poor performance on Synology. [#&#8203;2139](https://github.com/Freika/dawarich/issues/2139) [#&#8203;2096](https://github.com/Freika/dawarich/issues/2096) ##### Changed - Map V2 points loading is significantly sped up. - Points size on Map V2 was reduced to prevent overlapping. [#&#8203;2122](https://github.com/Freika/dawarich/issues/2122) - Points sent from Owntracks and Overland are now being created synchronously to instantly reflect success or failure of point creation. ### [`v0.37.2`](https://github.com/Freika/dawarich/blob/HEAD/CHANGELOG.md#0372---2026-01-04) [Compare Source](https://github.com/Freika/dawarich/compare/0.37.1...0.37.2) ##### 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. [#&#8203;2104](https://github.com/Freika/dawarich/issues/2104) - Updated Trix to fix a XSS vulnerability. [#&#8203;2102](https://github.com/Freika/dawarich/issues/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. [#&#8203;2085](https://github.com/Freika/dawarich/issues/2085) ##### Added - In Map v2 settings, you can now enable map to be rendered as a globe. ### [`v0.37.1`](https://github.com/Freika/dawarich/blob/HEAD/CHANGELOG.md#0371---2025-12-30) [Compare Source](https://github.com/Freika/dawarich/compare/0.37.0...0.37.1) ##### Fixed - The db migration preventing the app from starting. - Raw data archive verifier now allows having points deleted from the db after archiving. ### [`v0.37.0`](https://github.com/Freika/dawarich/blob/HEAD/CHANGELOG.md#0370---2025-12-30) [Compare Source](https://github.com/Freika/dawarich/compare/0.36.4...0.37.0) ##### 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. [#&#8203;2022](https://github.com/Freika/dawarich/issues/2022) - Validate trip start date to be earlier than end date. [#&#8203;2057](https://github.com/Freika/dawarich/issues/2057) - Fog of war radius slider in map v2 settings is now being respected correctly. [#&#8203;2041](https://github.com/Freika/dawarich/issues/2041) - Applying changes in map v2 settings now works correctly. [#&#8203;2041](https://github.com/Freika/dawarich/issues/2041) - Invalidate stats cache on recalculation and other operations that change stats data. ### [`v0.36.4`](https://github.com/Freika/dawarich/blob/HEAD/CHANGELOG.md#0364---2025-12-26) [Compare Source](https://github.com/Freika/dawarich/compare/0.36.3...0.36.4) ##### Fixed - Fixed a bug preventing the app to start if a composite index on stats table already exists. [#&#8203;2034](https://github.com/Freika/dawarich/issues/2034) [#&#8203;2051](https://github.com/Freika/dawarich/issues/2051) [#&#8203;2046](https://github.com/Freika/dawarich/issues/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. [#&#8203;2054](https://github.com/Freika/dawarich/issues/2054) - Disable Family::Invitations::CleanupJob no invitations are in the database. [#&#8203;2043](https://github.com/Freika/dawarich/issues/2043) - User can now enable family layer in Maps v2 and center on family members by clicking their emails. [#&#8203;2036](https://github.com/Freika/dawarich/issues/2036) ### [`v0.36.3`](https://github.com/Freika/dawarich/blob/HEAD/CHANGELOG.md#0363---2025-12-14) [Compare Source](https://github.com/Freika/dawarich/compare/0.36.2...0.36.3) ##### 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. [#&#8203;2024](https://github.com/Freika/dawarich/issues/2024) - In map v2, routes are now being rendered using same logic as in map v1, route-length-wise. [#&#8203;2026](https://github.com/Freika/dawarich/issues/2026) ##### Fixed - Cities visited during a trip are now being calculated correctly. [#&#8203;547](https://github.com/Freika/dawarich/issues/547) [#&#8203;641](https://github.com/Freika/dawarich/issues/641) [#&#8203;1686](https://github.com/Freika/dawarich/issues/1686) [#&#8203;1976](https://github.com/Freika/dawarich/issues/1976) - Points on the map are now show time in user's timezone. [#&#8203;580](https://github.com/Freika/dawarich/issues/580) [#&#8203;1035](https://github.com/Freika/dawarich/issues/1035) [#&#8203;1682](https://github.com/Freika/dawarich/issues/1682) - Date range inputs now handle pre-epoch dates gracefully by clamping to valid PostgreSQL integer range. [#&#8203;685](https://github.com/Freika/dawarich/issues/685) - Redis client now also being configured so that it could connect via unix socket. [#&#8203;1970](https://github.com/Freika/dawarich/issues/1970) - Importing KML files now creates points with correct timestamps. [#&#8203;1988](https://github.com/Freika/dawarich/issues/1988) - Importing KMZ files now works correctly. - Map settings are now being respected in map v2. [#&#8203;2012](https://github.com/Freika/dawarich/issues/2012) ### [`v0.36.2`](https://github.com/Freika/dawarich/blob/HEAD/CHANGELOG.md#0362---2025-12-06) [Compare Source](https://github.com/Freika/dawarich/compare/0.36.1...0.36.2) 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. [#&#8203;1798](https://github.com/Freika/dawarich/issues/1798) - Polyline crossing international date line now are rendered correctly on v2 map. [#&#8203;1162](https://github.com/Freika/dawarich/issues/1162) - Place popup tags parsing (MapLibre GL JS compatibility) - Stats calculation should be faster now. ### [`v0.36.1`](https://github.com/Freika/dawarich/blob/HEAD/CHANGELOG.md#0361---2025-11-29) [Compare Source](https://github.com/Freika/dawarich/compare/0.36.0...0.36.1) ##### Fixed - Exporting user data now works a lot faster and consumes less memory. - Fix the restart loop. [#&#8203;1937](https://github.com/Freika/dawarich/issues/1937) [#&#8203;1975](https://github.com/Freika/dawarich/issues/1975) ### [`v0.36.0`](https://github.com/Freika/dawarich/blob/HEAD/CHANGELOG.md#0360---2025-11-24) [Compare Source](https://github.com/Freika/dawarich/compare/0.35.1...0.36.0) 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. [#&#8203;350](https://github.com/Freika/dawarich/issues/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. [#&#8203;1659](https://github.com/Freika/dawarich/issues/1659) [#&#8203;1575](https://github.com/Freika/dawarich/issues/1575) ##### Fixed - The map settings panel is now scrollable - Fixed a bug where family location sharing settings were not being updated correctly. [#&#8203;1940](https://github.com/Freika/dawarich/issues/1940) ##### Changed - Internal redis settings updated to implement support for connecting to Redis via unix socket. [#&#8203;1706](https://github.com/Freika/dawarich/issues/1706) - Implemented authentication via GitHub and Google for Dawarich Cloud. - Implemented OpenID Connect authentication for self-hosted Dawarich instances. [#&#8203;66](https://github.com/Freika/dawarich/issues/66) ### [`v0.35.1`](https://github.com/Freika/dawarich/blob/HEAD/CHANGELOG.md#0351---2025-11-09) [Compare Source](https://github.com/Freika/dawarich/compare/0.35.0...0.35.1) ##### Fixed - StrongMigration issue [#&#8203;1931](https://github.com/Freika/dawarich/issues/1931) ### [`v0.35.0`](https://github.com/Freika/dawarich/blob/HEAD/CHANGELOG.md#0350---2025-11-09) [Compare Source](https://github.com/Freika/dawarich/compare/0.34.2...0.35.0) ⚠️ 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. [#&#8203;433](https://github.com/Freika/dawarich/issues/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. [#&#8203;1918](https://github.com/Freika/dawarich/issues/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. ### [`v0.34.2`](https://github.com/Freika/dawarich/blob/HEAD/CHANGELOG.md#0342---2025-10-31) [Compare Source](https://github.com/Freika/dawarich/compare/0.34.1...0.34.2) ##### Fixed - Fixed a bug in UTM trackable concern. [#&#8203;1909](https://github.com/Freika/dawarich/issues/1909) ### [`v0.34.1`](https://github.com/Freika/dawarich/blob/HEAD/CHANGELOG.md#0341---2025-10-30) [Compare Source](https://github.com/Freika/dawarich/compare/0.34.0...0.34.1) ##### Fixed - Broken Stats page for users with no reverse geocoding enabled. [#&#8203;1877](https://github.com/Freika/dawarich/issues/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. [#&#8203;1894](https://github.com/Freika/dawarich/issues/1894) [#&#8203;1881](https://github.com/Freika/dawarich/issues/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. ### [`v0.34.0`](https://github.com/Freika/dawarich/blob/HEAD/CHANGELOG.md#0340---2025-10-10) [Compare Source](https://github.com/Freika/dawarich/compare/0.33.1...0.34.0) 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. [#&#8203;1844](https://github.com/Freika/dawarich/issues/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. [#&#8203;1832](https://github.com/Freika/dawarich/issues/1832) - All confirmation dialogs are now showing only once. ##### Changed - Minor versions of Dawarich are being built for ARM64 architecture as well again. [#&#8203;1840](https://github.com/Freika/dawarich/issues/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. ### [`v0.33.1`](https://github.com/Freika/dawarich/blob/HEAD/CHANGELOG.md#0331---2025-10-07) [Compare Source](https://github.com/Freika/dawarich/compare/0.33.0...0.33.1) ##### 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. [#&#8203;1731](https://github.com/Freika/dawarich/issues/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. [#&#8203;1835](https://github.com/Freika/dawarich/issues/1835) - Fixed a bug where visit circles were not interactive on the map page. [#&#8203;1833](https://github.com/Freika/dawarich/issues/1833) - Fixed a bug with stats sharing settings being not filled. [#&#8203;1826](https://github.com/Freika/dawarich/issues/1826) - Fixed a bug where user could not be deleted due to counter cache on points. [#&#8203;1818](https://github.com/Freika/dawarich/issues/1818) - Introduce apt-get upgrade before installing new packages in the docker image to prevent vulnerabilities. [#&#8203;1793](https://github.com/Freika/dawarich/issues/1793) - Fixed time shift when creating visits manually. [#&#8203;1679](https://github.com/Freika/dawarich/issues/1679) - Provide default map layer if user settings are not set. ### [`v0.33.0`](https://github.com/Freika/dawarich/blob/HEAD/CHANGELOG.md#0330---2025-09-29) [Compare Source](https://github.com/Freika/dawarich/compare/0.32.0...0.33.0) ##### Fixed - Fix a bug where some points from Owntracks were not being processed correctly which prevented import from being created. [#&#8203;1745](https://github.com/Freika/dawarich/issues/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. [#&#8203;1502](https://github.com/Freika/dawarich/issues/1502) - Deleting an import will now trigger stats recalculation for affected months. [#&#8203;1789](https://github.com/Freika/dawarich/issues/1789) - Importing process should now schedule visits suggestions job a lot faster. - Importing GPX files that start with `<gpx` tag will now be detected correctly. [#&#8203;1775](https://github.com/Freika/dawarich/issues/1775) - Buttons on the map now have correct contrast in both light and dark modes. ##### Changed - Onboarding modal window now features a link to the App Store and a QR code to configure the Dawarich iOS app. - A permanent option was removed from stats sharing options. Now, stats can be shared for 1, 12 or 24 hours only. - User data archive importing now uploads the file directly to the storage service instead of uploading it to the app first. - Importing progress bars are now looking nice. - Ruby version was updated to 3.4.6. ##### Added - Based on preferred theme (light or dark), the map controls will now load with the corresponding styles. - \[Dawarich Cloud] Added foundation for upcoming authentication from iOS app. - \[Dawarich Cloud] Trial users can now create up to 5 imports. After that, they will be prompted to subscribe to a paid plan. - \[Dawarich Cloud] Added Posthog analytics. Disabled by default, can be enabled with POSTHOG\_ENABLED environment variable. </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi43MS4wIiwidXBkYXRlZEluVmVyIjoiNDIuNzEuMCIsInRhcmdldEJyYW5jaCI6Im1hc3RlciIsImxhYmVscyI6W119-->
renovate-bot force-pushed renovate/freikin-dawarich-1.x from 4dab76a95e to ebda402552 2026-02-25 20:05:17 +00:00 Compare
renovate-bot force-pushed renovate/freikin-dawarich-1.x from ebda402552 to 146bc28dc7 2026-02-27 21:05:04 +00:00 Compare
renovate-bot force-pushed renovate/freikin-dawarich-1.x from 146bc28dc7 to 06662032cb 2026-03-08 21:05:06 +00:00 Compare
renovate-bot force-pushed renovate/freikin-dawarich-1.x from 06662032cb to 65ffe3e0d1 2026-03-12 22:05:33 +00:00 Compare
renovate-bot force-pushed renovate/freikin-dawarich-1.x from 65ffe3e0d1 to ab3f9171cf 2026-03-15 16:05:26 +00:00 Compare
JustScreaMy removed their assignment 2026-03-16 18:27:49 +00:00
JustScreaMy removed their assignment 2026-03-16 18:31:34 +00:00
renovate-bot force-pushed renovate/freikin-dawarich-1.x from ab3f9171cf to 9dda0ff228 2026-03-22 14:05:09 +00:00 Compare
renovate-bot force-pushed renovate/freikin-dawarich-1.x from 9dda0ff228 to 685cdfba00 2026-03-28 13:04:25 +00:00 Compare
renovate-bot force-pushed renovate/freikin-dawarich-1.x from 685cdfba00 to 4663b2fa14 2026-03-28 21:04:35 +00:00 Compare
renovate-bot force-pushed renovate/freikin-dawarich-1.x from 4663b2fa14 to 42bfe3d2fd 2026-03-29 22:04:29 +00:00 Compare
renovate-bot force-pushed renovate/freikin-dawarich-1.x from 42bfe3d2fd to 42cb25ae8f 2026-04-01 23:09:05 +00:00 Compare
This pull request can be merged automatically.
This branch is out-of-date with the base branch
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin renovate/freikin-dawarich-1.x:renovate/freikin-dawarich-1.x
git switch renovate/freikin-dawarich-1.x

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch master
git merge --no-ff renovate/freikin-dawarich-1.x
git switch renovate/freikin-dawarich-1.x
git rebase master
git switch master
git merge --ff-only renovate/freikin-dawarich-1.x
git switch renovate/freikin-dawarich-1.x
git rebase master
git switch master
git merge --no-ff renovate/freikin-dawarich-1.x
git switch master
git merge --squash renovate/freikin-dawarich-1.x
git switch master
git merge --ff-only renovate/freikin-dawarich-1.x
git switch master
git merge renovate/freikin-dawarich-1.x
git push origin master
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
KropCloud/services!44
No description provided.