Dawarich - Package Updates
-
[1.14.2]
- Update dawarich to 1.9.2
- Full Changelog
- A Flights toggle on the Map v2 trip view shows your AirTrail flights alongside the route and photo overlays, and hides the day-route segments that fall inside a flight so the two don't overlap. The button only appears when an AirTrail URL is configured.
- Photoprism photo imports with an end date no longer fail with an HTTP 400: the
beforefilter is now sent as a full ISO8601 timestamp instead of a bare date (#1608). - Re-running visit detection no longer raises
ActiveModel::MissingAttributeErrorwhen a cluster contains points already attached to a confirmed visit.
-
[1.15.0]
- Update dawarich to 1.10.0
- Full Changelog
- Poster Studio: design a printable poster of your travels in a full-screen studio opened from Map v2, with live preview, theme and layout presets, text controls, and PNG/PDF export. Posters can be saved to a server-rendered gallery or in the future releases ordered as a print via Stripe. Self-hosters: the Docker image grows by ~100 MB for the server-side renderer, and gallery rendering is unavailable on 32-bit ARM (armv7) hosts.
- New API endpoints
GET/POST/DELETE /api/v1/demo_datato check, load and remove demo data, enabling demo-data onboarding in the mobile app. - New API endpoints
GET/PATCH /api/v1/settings/mobilefor syncing mobile app settings between devices (most recent write wins). The existing settings API now also acceptsmaps.distance_unitand merges themapshash instead of replacing it, so partial updates no longer wipe other map settings. - The default self-hosted stack now idles about 20% lighter (app container 452 325 MB, whole stack 843 690 MB):
docker-compose.ymldefaults to one Puma worker (WEB_CONCURRENCY=1) and 3 background job threads (BACKGROUND_PROCESSING_CONCURRENCY=3) raise either env var for busier instances and jemalloc now returns freed memory to the OS promptly. Installations that already set these variables are unaffected (#3119). - Family location history now actually shows up on Map v2: the history endpoint read coordinates from the legacy
latitude/longitudecolumns, which are empty on instances that only store the PostGISlonlatvalue, so nothing was drawn. Coordinates are now derived fromlonlat(#2977)
-
[1.15.1]
- Update dawarich to 1.10.1
- Full Changelog
- Google Photos Takeout metadata sidecars can now add geotagged photos as sparse timeline points; sidecars without usable coordinates are skipped.
- The Poster Studio can now be opened directly from a trip's page, pre-loaded with the trip's route, date range, and name.
- Dawarich can now be installed to the phone home screen as a web app (PWA): all pages link the web app manifest and Apple touch icon, and the installed app opens straight into Map v2.
- The legacy
latitude/longitudecolumns onpointsare dropped the PostGISlonlatcolumn has been the single source of truth since 0.25.0. The migration copies any remaining legacy-only coordinates intolonlatbefore dropping, so upgrades from older versions are safe. - File imports no longer store a copy of each source record in the point's
raw_datathe uploaded file stays attached to the import as the source of truth. API responses returnraw_data: {}for newly imported points, and FIT/TCX health fields (heart rate, cadence, power, temperature) as well as Google phone takeout HOME/WORK place labels are no longer stored. - OwnTracks
_type: waypointsync messages are no longer stored as location points, so syncing your saved OwnTracks places no longer creates phantom distance/track spikes (#3137) - Map v2 date pickers now keep the time component when a range with a specific time is loaded from the URL, instead of resetting to the start/end of the day (#3106)
- Outgoing email now works with local unauthenticated SMTP relays: set
SMTP_AUTHENTICATION=none(alsooff/false/disabled) to disable SMTP AUTH instead of hitting "SMTP-AUTH requested but missing user name" (#3147, #2690, #1469, #1463) - Point uploads (REST API, OwnTracks, Overland, Traccar) now write batches in a consistent order so concurrent uploads no longer deadlock each other, and both uploads and anomaly filtering recover automatically from any remaining transient database deadlocks instead of failing the upload or background job.
- Statistics pages no longer fail to load when older monthly data contains malformed country or city entries. Recalculating stats for an affected month repairs the stored data.
-
[1.15.2]
- Update dawarich to 1.10.2
- Full Changelog
- Poster Studio has a track width control: a 50300% slider beside track opacity that scales the route line on the saved poster.
- The Map v2 custom basemap field now accepts raster XYZ tiles (
.png/.jpg/.jpeg/.webp) and full MapLibre style URLs ending in.json, in addition to Protomaps-schema vector tiles. Previously a raster URL rendered as a blank grey map and a style URL was rejected. (#3146) - Saving a zoomed-out Poster Studio view to the gallery no longer rejects routes that are visibly inside the poster frame (#3204). The area check now uses the same Mercator framing as the renderer and wraps across the antimeridian, so high-latitude and Pacific-centred posters are judged against the frame you actually see. Poster Studio also warns when a view is too wide for the largest poster area instead of silently zooming the saved poster in.
- Instances with heavy write traffic no longer crash-loop on the 1.10.1 upgrade. Dropping the legacy
points.latitude/points.longitudecolumns needs an exclusive lock that busy instances could not win in one attempt, which aborted the migration and restarted the container in a loop. The drop is now retried, and if it still cannot get the lock it is handed to a background job so startup completes. If that job cannot get the lock either, the columns stay and the log prints the statement to run by hand they are unused, so nothing breaks in the meantime (#3176) - Google Semantic History and phone Timeline imports now tag points with a per-import tracker id instead of one shared constant, so tracks from different devices are no longer braided together. A one-time backfill rewrites existing points and regenerates affected tracks per user.
- Place names you set yourself are no longer overwritten by nightly reverse geocoding. Renaming a place, creating one by hand, or picking one on the timeline locks its name; renaming it back to "Suggested place" hands it back to auto-naming. Map v2 and the place drawer show when a name is locked. A one-time backfill locks names that were customised before this release (#3086, #3175)
- Points at exactly (0,0) a common GPS glitch are no longer accepted from any ingestion path (API, OwnTracks, Overland, Traccar, file imports) and no longer produce suggested visits at "Null Island". Existing (0,0) points are flagged as anomalies by a one-time cleanup that also removes visits placed at (0,0), tolerates legacy points without timestamps, and recalculates affected stats and tracks.
- Point uploads from all ingestion paths (REST API, OwnTracks, Overland, Traccar) now retry transient statement and lock-wait timeouts, not just deadlocks, instead of failing the upload.
- The DNS caching layer no longer crashes with a misleading
NoMethodErrorwhen the SMTP server is not configured in the background worker, so email delivery surfaces the real configuration error instead. (#3038)
-
[1.15.3]
- Update dawarich to 1.10.3
- Full Changelog
- The Map v2 "Edit points" toggle is now remembered between sessions instead of resetting to off on every page load; it still defaults to off, so points stay protected from accidental drags until you opt in. On the Lite plan it stays session-only, since editing points requires Pro. (#3085)
- The Docker image no longer ships ImageMagick nothing in the app used it, so the image gets smaller. (#3139)
- Turning "Edit points" off on Map v2 now reliably disables point dragging. Changing the map style while editing was on left a stale drag handler attached, so points stayed draggable no matter what the toggle said.
- The Family entry in the navigation bar is now clickable across its entire button area instead of only the label text. (#3100)
- The Dawarich app and Sidekiq containers now restart automatically after a graceful (exit 0) shutdown instead of staying down, so a stray SIGHUP no longer takes an instance offline until manual intervention (#3099).
- Import rows on the Imports page now update their status live as an import processes, instead of staying on "Processing" until the page is manually reloaded. (#3174)
- Public live-share links now update in real time for signed-in visitors, instead of only refreshing the location on a full page reload. (#3111)
- Clicking "Continue reverse geocoding" again now re-processes points that were left ungeocoded by a previous run, instead of skipping them for up to a day. (#3071)
- Public share links now expire at the start of the selected date in the owner's timezone instead of remaining active through that day (#3112).
- The share link form now spells out that a link stays active only through the day before the selected expiry date.
-
[1.16.0]
- Update dawarich to 1.11.0
- Full Changelog
- The onboarding dialog now leads with Start tracking instead of importing, so a new account can get a phone sending points right away. Importing from Google Timeline and the other sources is still one click away in the same dialog.
- Google Takeout (phone takeout, Semantic Location History) and Polarsteps imports can now also extract visits, named places, tracks and the source app's transportation-mode classification, alongside raw GPS points. Places named by Google Takeout (Home, Work, ) keep their original names. New imports extract automatically; for older ones use Extract additional data in the Imports list. Untick Trust the source app's classification to have Dawarich re-detect modes using your settings. Visits found by Dawarich's own detection are kept alongside the imported ones. Remove extracted data undoes an extraction and leaves your GPS points untouched.
- GPS noise filtering no longer uses the "Accuracy Threshold" setting, and the slider is gone. A reported accuracy radius is a confidence estimate, not proof a position is wrong: Google Timeline routinely reports 1-4km for points sitting exactly on the road, and dropping those replaced real route geometry with straight lines. Only radii too large to be a position at all are discarded; wrong positions are caught by the speed checks instead. Any saved value now does nothing, and
gps_accuracy_thresholdis ignored by the settings API rather than rejected. - Self-hosted mode is now recognised from common
SELF_HOSTEDvalues (quoted"true",TRUE, whitespace-padded,1,yes,on), not only the exact stringtrue, so a non-canonical value no longer flips an instance into cloud mode and blocks LAN integration URLs (such as Immich) as SSRF. (#2522) - Outgoing email no longer fails against slower SMTP servers: connection open/read timeouts now match net-smtp's own 30s and 60s instead of a 5-second cap that failed digest reports with
Net::OpenTimeout. Tune withSMTP_OPEN_TIMEOUT/SMTP_READ_TIMEOUT(#3096) - FIT files that carry developer data fields (such as those from Wahoo devices) now import their location records instead of failing to parse. (#2945)
- Google Timeline imports now keep path points in order when several share the same minute-resolution timestamp: tied points are spaced one second apart, while genuine repeats at the same coordinate still collapse into one. Caveat: the synthetic spacing shifts the deduplication key, so delete the affected date range before re-importing the same file. (#3115)
- Imports that finish with zero saved points now notify you instead of completing silently. GPX and KML files are called out when they lack per-point timestamps. (#3062)
- "Cancel my account" now works on self-hosted instances. It never sent a password, so the request failed silently with a 401; deletion now asks for confirmation in a dialog and reports failures. Accounts registered through OIDC, which never had a password, can confirm with their email address, on the web and via the API. (#3107)
- The Map v2 custom basemap field now accepts MapLibre style URLs whose path has no
.jsonsuffix, such ashttps://tiles.openfreemap.org/styles/liberty. A tile URL missing a{z}/{x}/{y}placeholder, or ending in a tile file extension, is still rejected. (#3256)
-
[1.17.0]
- Update dawarich to 1.12.0
- Full Changelog
- Dawarich can now be used in German, Spanish or French: pick a language under Settings General. The choice is saved to your account and applies to emails and notifications too; API responses stay in English.
- Map v1 (Leaflet) has been removed:
/mapnow opens the MapLibre map and/map/v1redirects to/map/v2. The Settings Maps page went with it, and all maps now require WebGL. - Machine-detected visits are regenerable: re-detection replaces them wholesale, while anything you confirmed, renamed, re-placed, deleted or noted and anything imported survives untouched. Existing visits keep their old detection until re-detected: press the re-detect button in Settings Visits. Self-hosted instances re-detect all accounts automatically after migrating (set
SKIP_VISITS_FLEET_REDETECT=1before migrating to opt out); Dawarich Cloud is re-detected in a staged rollout. - The transportation threshold sliders and expert mode are gone. Existing tracks keep their old classification until re-detected: press "Re-classify my history" in Map settings Transportation Mode Detection. Self-hosted admins can redo every account with
TransportationModes::FleetReclassifyJob.perform_lateronce the segment backfill has finished. - Trip pages no longer fail with a 500 when Immich or Photoprism is unreachable the trip loads without photos. (#3308)
OIDC_ISSUERwritten with a#fragment no longer fails sign-in with "Issuer mismatch". (#3289)/metricsno longer reports duplicate series when the web and Sidekiq exporters merge; shared series carry aprocesslabel. (#3304)- The coordinates shown when you click a point on the map now match the points list. (#3264)
- Photo search now covers the whole of the end date. (#3263)
- The "someone joined your family" email no longer fails to send.
-
[1.17.1]
- Update dawarich to 1.12.1
- Full Changelog
- Fix to recently added migrations that could fail on some self-hosted instances with a large number of visits. The migration now runs in smaller batches and is resumable if interrupted.
-
[1.17.2]
- Update dawarich to 1.12.2
- Full Changelog
- Dawarich Cloud can now credit sign-ups to affiliate partners. Self-hosted instances are unaffected both the tracking script and the attribution call stay off unless the Cloud-only
PARTNERO_PROGRAM_IDandPARTNERO_API_KEYare set. - Consolidated
pointstable indexes: a new(user_id, timestamp, lonlat)unique index replaces three redundant indexes, roughly halving the write cost of every point. The index is built by the boot-time migration; on instances with millions of points this can take several minutes, during which the container waits before serving requests. Thepointstable itself stays fully usable while the index builds. - Automatic daily track generation no longer rebuilds a user's entire history when their tracks are missing and their history exceeds 100k points. On Dawarich Cloud such histories are backfilled automatically at a throttled rate; self-hosted instances still rebuild directly, as fast as their own hardware allows.
- The map no longer stays blank after an upgrade when the
dawarich_publicDocker volume still holds precompiled assets from an older version. The asset manifest now ships inside the app image instead of the public volume, the boot-time asset sync stages from inside the app directory (a tmpfs-mounted/tmpcan no longer skip it), and the container logs a warning if the sync still cannot run. (#3346) - User data exports no longer fail when a legacy place has no spatial coordinates. (#3344)
- The Tracks layer toggle on the map now reflects your saved setting after a page reload; previously it always showed as off even though the setting was saved and tracks were loaded. (#736)
- The map no longer leaps to a just-left place or a phantom spot off your route: iOS visit reports delivered after departure and coarse cell-tower fixes without motion data are now filtered out as anomalies. Existing histories are re-evaluated automatically after the upgrade, and tracks and stats are rebuilt along the way.
- The Family page no longer fails to load, and the family map no longer places a member at the wrong spot dated 1970, when someone's history contains legacy points missing a timestamp or coordinates. Such points are also left out of shared location history, and a member whose points are all incomplete is omitted from the map rather than shown somewhere wrong. (#3254)
- Google Timeline phone exports no longer lose altitude, accuracy and speed on points taken from the
rawSignalssection those fields were read from the wrong nesting level and came back empty. Points already imported keep their empty values, and importing the same file again skips them; delete the old import first, then import the file again. (#3337) - Daily and monthly distance no longer counts a jump across a tracking gap longer than your "minutes between routes" setting when the two points come from different imports, from live tracking, or from a photo integration (Immich, PhotoPrism, Google Photos). Points inside one imported file still count as continuous history regardless of gaps, so sparse sources such as Google Timeline keep their full distance. Existing months keep their old numbers run Map v2 Settings Recalculate tracks & stats once after upgrading to apply the fix to past months. (#2689)
-
[1.18.0]
- Update dawarich to 1.13.0
- Full Changelog
- The map has a new opt-in "Tiled rendering" beta in map settings: the points layer is drawn from vector tiles built by the database, so the browser only downloads what the current view needs. Dense areas arrive as aggregated markers carrying a point count the heatmap weighs them accordingly and long date ranges over large histories pan and zoom smoothly instead of stalling on one huge download. On a test account with 1 million points, opening the full three-year history classically pulls the whole range up front 992 requests and roughly 590 MB of JSON, which crashed the browser tab a third of the way in; tiled rendering drew the same city view from 12 requests and 146 KB in a fraction of a second, and re-opening the map shortly after costs no requests at all. Individual points keep their popups, though a merged marker has no single point to open zoom in to separate it. Dragging points to edit them is unavailable while tiled mode is on, and turning on Routes, Fog of War or Scratch map temporarily switches back to classic loading (the settings panel says which layer is blocking). Tiles are cached privately in the browser and refresh automatically when your location history changes, so the live trail can lag up to five minutes behind. (#2691)
- Removed three superseded
pointsindexes (the old dedup index and two composites) now that the consolidated(user_id, timestamp, lonlat)index from 1.12.2 serves their queries. The migration cleans up any invalid leftover index first, rebuilds the consolidated index automatically when an interrupted build left it invalid, and refuses to run only when it is missing entirely. Frees several gigabytes on large instances and further reduces the write cost of every point. - The nightly cache preheat now runs as one background job per user instead of a single job looping over every user. Its duration is bounded by the slowest individual user rather than by the sum of all of them, so one account with a large history no longer delays the preheat for everyone else. On Dawarich Cloud it now only preheats active and trial accounts; self-hosted instances continue to preheat every user.
- Four scheduled jobs (app version check, cache preheat, family location request expiry, points counter correction) were queued onto
defaultinstead of the queues their job classes declare, so they competed with higher-priority work the cache preheat in particular could hold up imports, track generation and stats for minutes at a time. They now run onapp_version_checking,cache,familiesandlow_priorityrespectively.
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