Dawarich - Package Updates
-
[1.12.1]
- Update dawarich to 1.7.1
- Full Changelog
- API endpoints for mobile authentication.
- New ingest endpoint
POST /api/v1/traccar/pointsfor the Dawarich mobile client and any compatible Traccar-style tracker. Accepts a single nested-JSON location payload, upserts the point, refreshes the points counter, and triggers anomaly filtering, realtime track regeneration, and the live broadcaster exactly like the OwnTracks and Overland endpoints.
-
[1.12.2]
- Update dawarich to 1.7.2
- Full Changelog
rails_pulseperformance monitoring has been removed entirely. The gem, its initializer (config/initializers/rails_pulse.rb), the/rails_pulseroute mount, the scheduledRailsPulse::SummaryJobandRailsPulse::CleanupJobcron entries, and allrails_pulse_*tables are gone. A new migrationDropRailsPulseTablescleans up existing installations on upgrade. This resolves a class of upgrade failures where therails_pulse_*tables ended up missing/half-applied on production. (#2549)- Swagger docs for all the recent API additions and changes, improving API discoverability and client generation. The full OpenAPI spec is available at
/api-docs. - Map v2: Delete button on the point info card. Selecting a point now offers an immediate Delete action (with confirm dialog), matching the long-standing Map v1 behavior. The deleted point is removed from the points layer in place without a full reload.
- Monthly and yearly digest emails now convert distance from stored meters to the user's preferred unit (km/mi). Previously the raw meter value was shown next to the unit label (e.g.
500000 kminstead of500 km). - Map (Leaflet): route lines no longer revert to their pre-move shape when an unrelated point is deleted after dragging another point. The dragend handler was failing to update the marker array because it looked for the controller in the wrong place. (#1797)
- Track creation now caps a single track's distance at 100,000 km (with a logged warning) instead of silently truncating at the legacy 999,999 m limit. Long-haul journeys are no longer collapsed to ~1000 km. (#1693)
- Dev container: bind-mount the project root into the container so
bundle installcan locate theGemfile. Previously only sub-paths were mounted, leaving/var/app/Gemfilemissing. (#1804) - Map v2: photos without GPS metadata (
latitude/longitudenull) no longer render as markers at Null Island (0, 0) they are now correctly excluded from the photos layer. (#2464, #2465)
-
[1.12.3]
- Update dawarich to 1.7.4
- Full Changelog
- Cloud Trial users are no longer limited to 10 MB import files.
- Self-hosted instances no longer need to set
JWT_SECRET_KEY. #2570 - QR sizes are fixed. #2479
- Family owners can now remove other members directly from the family page. #2555
- Insights and statistics now agree on the number of countries visited per month. #2581
- The default password for the demo account has been changed to
safepassword. The old defaultpasswordprevented seeds from running due to the new 12-character minimum password length validation. Existing users were not affected. #2593 - Polarsteps support
locations.jsonand segment-array exports now import directly. /metricsendpoint: if you scrape Prometheus metrics, setMETRICS_USERNAMEandMETRICS_PASSWORDin your environment. With them unset,/metricsnow returns 503.- Google Phone Takeout
location-history.jsonnow imports reliably. (#2437, #2587) - Upgrades from older versions ( 1.3.1) no longer crash during
db:migrate. (#2576)
-
[1.12.4]
- Update dawarich to 1.7.5
- Full Changelog
- Manual transportation-mode correction per segment in the map view, with a one-click reset to auto-detection. Manually-corrected segments are preserved across re-classification. #2405
- Per-user transportation-mode allowlist in the map settings panel. Disabled modes are excluded from auto-detection going forward; existing tracks stay as they are until you press "Re-classify my history". #2405
- Track duration and average speed are now refreshed whenever a track's path is rebuilt (e.g. after a merge), instead of keeping their pre-merge values. To heal tracks already affected, click Map v2 Settings Recalculate tracks & stats once after upgrading.
- Visited-country statistics no longer count countries that were merely flown over. Points moving faster than 500 km/h are now excluded from the country and city aggregation. Trains and high-altitude cities (Denver, Mexico City, La Paz, Lhasa, ) continue to count as visited. Previously-saved monthly stats are not recomputed automatically re-run stats calculation to refresh historic months. #1917
- Server-rendered timestamps (Points, Places, Imports, Exports, account settings, trial banner) now display in the user's profile timezone, matching the Maps tab. Previously, the time and tooltip could fall back to the server's default zone, drifting by hours. Invalid stored timezones no longer raise. #1824
- "Start Reverse Geocoding" now actually re-runs for every point in your database previously it silently skipped any point that had already been geocoded, even though the button promised a full re-run. #2141
- Map v2 date-navigation arrows (
</>) now shift the time window by exactly one day, matching Map v1. Previously they shifted by the current window width, so a 00:0023:59 selection paged back by 23h59m instead of 24h. #2548 - Visit suggestions are now generated from live tracking (Dawarich iOS app, OwnTracks, Overland, Traccar), not just from imports. Previously, only imported data triggered visit detection. Visit suggestion still requires a configured reverse geocoder (Photon, Geoapify, Nominatim, or LocationIQ). #1749, #1966
- "Start Reverse Geocoding" and "Continue Reverse Geocoding" now enqueue Sidekiq jobs in bulk batches of 1,000 instead of one round-trip per point. For large databases (millions of points) this drops the enqueue phase from minutes to seconds. Per-point geocoder rate-limit behavior is unchanged. #2141
- Trips that cross midnight in the user's timezone now contribute distance and time to both calendar days, instead of being attributed entirely to the day they started. The timeline day summary, the calendar heat grid, and adjacent-day km totals all reflect the trip on each day it actually spans. #2544, #2546
-
[1.12.5]
- Update dawarich to 1.7.7
- Full Changelog
- Prometheus metrics backend migrated to Yabeda.
- Fixed monthly stats failing with a "Stats update failed" notification when the month's distance exceeded the int4 limit (2,147,483,647 m 2.15M km). Affected months stayed stuck on the prior value until recalculated. #1996
- 500 error on the imports page. #2683
- Redis no longer balloons (multi-GB) when browsing photos with Immich or Photoprism connected. Photo thumbnails are no longer copied into the server-side Redis cache; the browser caches them directly via
Cache-Controlinstead. #1609 - Map v2 timeline: bulk Confirm and Decline in selection mode, capped at 500 visits per request.
- Trip Recalculate button: refresh path, distance, and visited countries on demand. The page updates automatically when it finishes; repeat clicks within 60 seconds are ignored. #2478
- Google's "Timeline Edits.json" type of Takeout export is now recognized and imported directly.
- Monthly stats now bucket points by your local timezone instead of UTC fixes phantom day-1 spikes from overnight imports and undercounts near month boundaries. #2546
- Track generation no longer creates duplicate tracks multiple background jobs (daily, realtime, recalc, import) could previously produce the same track per time window, leaving 23 copies on your map. Run Map v2 Settings Recalculate tracks & stats once after upgrading to recompute from the merged points. #2677
- Transactional emails now build links with HTTPS, fixing reset links that arrived as
http://even when the site was served over HTTPS via reverse proxy. #1469
-
[1.12.6]
- Update dawarich to 1.7.8
- Full Changelog
- Self-hosters running OIDC-only sign-in: the
ALLOW_EMAIL_PASSWORD_REGISTRATIONenv var no longer doubles as a login gate. Email/password sign-in is now controlled by the newALLOW_EMAIL_PASSWORD_LOGINenv var (defaults totrue). To preserve OIDC-only sign-in after upgrade, setALLOW_EMAIL_PASSWORD_LOGIN=false. - Visit detection now uses PostGIS spatial clustering for faster, more accurate stops; the iteration-based detector is removed.
- Places are now strictly per-user. Suggestion, photo-geotagging, and reverse-geocoding all use your own place catalogue exclusively; no places are shared across users. Existing shared places have been backfilled to their most-active owner. Self-hosted single-user instances see no behaviour change.
- "Re-run detection on full history" button under Settings Visits. Confirmed visits and named places are preserved.
- Account lockout after 10 failed 2FA attempts (30-minute auto-unlock or password reset). Applies to both the mobile API (
POST /api/v1/auth/otp_challenge) and the web sign-in flow. Backup codes still work during a lockout so users with one stored can recover immediately. A notification email is sent to the account owner when a lockout is triggered. #2575 - Fix support of FIT files from Garmin Connect. #2686
- Email/password login is now shown alongside the OIDC button on self-hosted instances by default, instead of being hidden whenever OIDC is configured. Operators who want to enforce OIDC-only sign-in can set
ALLOW_EMAIL_PASSWORD_LOGIN=false. See the upgrade note above. #2495 - GPX import now streams the file rather than loading the entire XML into memory, so multi-hundred-MB GPX files (e.g. long-running activity exports) no longer OOM the Sidekiq worker. #2296
- Tracks recorded by multiple devices on the same account (phone + watch + GPS unit) no longer get merged into one zigzagging track on the map. Each device's points are kept on their own track, and Map v2 draws routes per-device. #337, #1726
- Importing a Google Records.json export with positions from more than one device no longer "teleports" between devices and inflates distance travelled; points are scoped per-device using Google's
deviceTag. #337
-
[1.12.7]
- Update dawarich to 1.7.9
- Full Changelog
- Run Settings Recalculate tracks & stats to merge pre-existing overlapping tracks. #2463
- Visit detection now creates one Place per visit (was up to 25 candidates). Use
GET /api/v1/visits/:id/possible_placesandPOST /api/v1/visits/:id/select_placefor alternatives. Theplace_visitstable will be dropped in a follow-up release. - Map v2 Hexagons layer (Pro) H3 cell heatmap, zoom-adaptive resolution. #2568
- Download a trip's points as GPX or GeoJSON from the trip page. #2400
- OIDC PKCE support via
OIDC_PKCE_ENABLED=true(off by default). #2282 - Self-hosted instances no longer 500 on Stats/Insights when
JWT_SECRET_KEYis unset;/trial/upgradenow redirects home. #2682 - Family members' positions update in real time instead of every 60 s. #2733
- Immich/Photoprism photos reappear after a transient empty response (no more 30-minute hidden window). #1071, #784
- Tracks no longer split into overlapping segments when points arrive late/out of order; same-device overlaps auto-merge on the next run. #2463
- Insights "Top Visited Locations" no longer underreports days for multi-month totals (e.g. 133 days rendered as "4 days"). #2743
-
[1.12.8]
- Update dawarich to 1.7.10
- Full Changelog
- Stops shorter than 5 minutes are no longer suggested as visits by default. Change the threshold under Map V2 ->Settings -> Visit detection if you want shorter stops included.
- Smart density fill now works correctly (it was broken in 1.7.81.7.9). You may see more visit suggestions, especially on days when your tracker recorded points unevenly.
- Map v2 family member markers show name + last-seen datetime on hover.
- Map v2 area info card exposes an Edit button that opens the area modal pre-filled rename and resize existing areas without redrawing. Backed by a new
PATCH /areas/:idroute. - Map v2 selection tool: Delete N Anomaly Points button appears when the selection contains anomaly points, so you can clean up GPS noise without touching real points.
- New Minimum visit duration setting under Settings Visit detection (160 minutes, default 5). Raise it to ignore short drive-bys; lower it to catch brief errands. Replaces the hardcoded 3-minute floor that was the same for everyone in 1.7.81.7.9.
- Stats page no longer 500s after deleting an import or recalculating a month with no points. #2682
- New tracks now honor the user's enabled transportation modes during initial detection. Previously only the Recalculate path respected disabled modes, so a user who turned off (e.g.) cycling still saw cycling assigned to freshly built tracks. #2787
- Visit detection no longer suggests stops at places you only drove past. Clusters where the device was moving faster than walking pace between real GPS points are rejected, so road centerlines on busy arterials stop showing up as "visits" to Kent Street / Leach Highway / etc. #2736 #2775
- Visit detection now respects your Visit time threshold setting when deciding where one visit ends and the next begins. The setting was previously ignored and always treated as 30 minutes.
-
[1.12.9]
- Update dawarich to 1.7.11
- Full Changelog
- Onboarding "Load demo data" now seeds a fully populated
/map/v2instantly: 30 days of Berlin + a Prague-weekend trip, ~80 visits with tags and places, and stats anchored to the current calendar month. "Remove demo data" wipes everything in one click while preserving anything you've confirmed, edited, or built on top of (visits, trips, places, tags adopted by user action stay). - Visits can now be manually assigned to one of your saved areas. When you do, the visit takes the area's name automatically unless you've already given it a custom name, or you've also picked a place (a place name wins over an area name). Available via API now; UI to follow. #2577
- Two unused indexes on the
pointstable are dropped on upgrade; on large self-hosted instances this frees several GB of disk. - Areas now validate their geometry: radius must be greater than 0, latitude must be within -9090, and longitude within -180180. Invalid values are rejected instead of silently saved.
- Bumped bundled gems (aws-sdk, devise, jwt, httparty, and others) to close 9 known CVEs. Self-hosters get the security fixes by upgrading.
- Map v2 Timeline calendar now lights up days that have raw points even before Track or Visit generation has caught up, matching the Insights Activity Overview calendar. #2579
- Reverse-geocoding flood: duplicate per-point enqueues are now coalesced for 24 h via a Redis dedup key, retries are capped at 3, and the nightly sweep bypasses (and clears) the dedup so points whose retries were exhausted or whose key still lingers are picked up on the next run.
- Map v2 visits layer now honours the selected date range. Since 1.7.10 the viewport-bounded visits fetch silently dropped the
start_at/end_atfilter on the backend, so all visits inside the viewport were rendered regardless of the date filter. #2817 POST /api/v1/visitsno longer links a new visit to a place owned by another user. Passing a foreignplace_idis ignored the visit gets a place owned by the requester at the requested coordinates, and the response no longer echoes the other user's place id or coordinates.- Map v2 settings panel: "Apply Settings" now actually saves your changes. Points rendering mode, speed-colored routes, live mode, and fog-of-war toggles all persist on click and reload. Apply/Reset buttons moved above the Transportation Mode section so they sit inside the outer form. #2680
-
[1.13.0]
- Update dawarich to 1.8.0
- Full Changelog
- "What's New" changelog notices in the navbar. Self-hosted users are asked once before any external request and the widget loads only after opt-in; Cloud users see it automatically. Toggle anytime in Settings General, or point it at your own instance with
CHIBICHANGE_WIDGET_HOSTandCHIBICHANGE_SLUG. ChibiChange will be open-sourced soon. - Sign in with Apple on the web (Dawarich Cloud only)
- Opt-in non-ML "stay-point" visit detection, behind the per-user
stay_point_detectionflag (default off). A single-pass dwell detector that fixes the old clusterer's slow-stay false-rejects and dead-battery gap splits, and stores a 0100 confidence score per suggested visit (exposed via the API). #2832 - Map v2 Timeline: every visit now has a search icon to find the real place by name a type-as-you-go geocoder (Photon) lookup biased to the visit's location, each result showing category, distance, and nearby saved Areas. Pick a result to label the visit or create a new place on the spot; choosing a far-away place asks before relocating it.
- Declining a visit is now deleting a visit. Decline (per-visit, "Delete all" for a day, the bulk bar, and the Map v2 area-selection card) is replaced by Delete, which confirms and removes the visit entirely; your location points are always kept. The "Declined" filter and Restore action are removed.
- Globe view is enabled by default for Pro and self-hosted users.
- The map's Places layer no longer floods with a marker for every suggested visit it now shows only places you created manually, attached to a confirmed visit, or tagged.
GET /api/v1/placesaccepts afilterparameter to override:all,manual,confirmed, ortagged. - Deleting a single point on the map (via its info card) now redraws the connecting route immediately instead of leaving a stale line until reload. (#2844)
- The official Traccar client app is now supported directly. Its payload nests coordinates, battery and activity one level deeper than Dawarich's own client, so its points were silently dropped; both shapes are now accepted. #2741
- Deleting an import now also removes any tracks left with no points, instead of leaving empty "ghost" tracks on the map and timeline. Connected maps drop the removed track right away. #2825
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login