Skip to content

1.18.0

Choose a tag to compare

@Freika Freika released this 25 Oct 21:46
· 68 commits to master since this release
75442a0

⚠️ Upgrade notes

  • Back up your database before upgrading. After the upgrade, background jobs turn Areas into Places and tidy up visit names, repair tracks from the last 12 months, recalculate months with flights and update your existing digests, recheck the Italy achievement, and detect visits again across your whole history. Rolling back does not undo this. Keep Sidekiq (or embedded jobs) running until they finish; on a small self-hosted server you can skip the visit detection by setting SKIP_VISITS_FLEET_REDETECT=1 and start it later from Visits → Re-run detection on full history.
dawarich-geofence.mp4
dawarich-privacy-zones.mp4

Added

  • Geofencing. Turn on "Notify on enter and leave" for a Place, and Dawarich records when you arrive and when you leave, using the points your phone or tracking app sends. Places that used to be Areas keep notifying. You'll find the events in Settings → Geofencing. #2515
  • Geofencing webhooks. Send every arrival and departure to Home Assistant, Node-RED, n8n or your own service. Each webhook can follow some places or all of them, shows its recent deliveries and can send a test event. Events that reach Dawarich more than 15 minutes late are logged but not sent. A webhook that fails five times in a row is switched off, and you get a notification. On Dawarich Cloud, webhooks need a Pro or Family plan and an https address, and send up to 60 events an hour. Self-hosted instances have no such limits. #2515
  • Privacy zones now also hide your data on your own map, trip pages, route replay and posters, not only on shared links. A track that crosses a zone is cut at its edge. The hidden area is a little larger than the radius you set and shifted off-centre, so the place itself can't be pinpointed. Exports and statistics keep your full data. #2848
  • Shared monthly stats pages respect privacy zones too. #2848
  • The Places page can show only unconfirmed places, and each place has its own page where you can merge a duplicate into it, together with its visits, tags and notes.
  • Turn off Family or Achievements in Settings → General if you don't use them.
  • Choose how dates and times look in Settings → General: the date format, a 12- or 24-hour clock, and whether weeks start on Monday or Sunday. Your choice applies in the app, in emails and on the map.
  • TREK sources can skip SSL certificate checks, so a TREK server with a self-signed or private certificate can connect. (#3902)
  • Self-hosted Photon servers without English data can be used now: choose the language under Admin → Instance settings → Photon, or set PHOTON_API_LANGUAGE. (#3898)
  • The onboarding import step lists every supported format and links to step-by-step export guides.

Changed

  • Areas are now Places with a Visit Radius (up to 50 km) and keep their notes and visits. The Create Area tool is gone: create a Place with a Visit Radius on the map or from a visit instead.
  • Exports still include Areas, so older Dawarich versions can read them, and importing an older backup turns its Areas into Places.
  • English dates now use the 24-hour clock unless you pick the 12-hour clock in Settings → General.
  • On the Lite plan, the 12-month window now moves once a day, at midnight UTC.
  • The default docker/docker-compose.yml uses Redis 8. It reads data saved by Redis 7.4, so there is nothing to migrate, and Valkey works too. #3882
  • Ruby updated to 4.0.9.

Fixed

  • Flights synced from AirTrail now count toward your distance everywhere: Insights, the stats pages, each month's daily breakdown, digests and the API. Before, a flight only showed up on its own month's card. A month's page and each year card show how much of the total was flown, and points tracked during a flight no longer count on top of it. Months with flights, and the digests you already have, are recalculated in the background after the update. Thanks @darioackermann! (#3659)
  • Map points for a single day load again in places where you have years of history, such as home. The map used to show "Could not load map tiles". (#3830)
  • Tracks no longer have gaps or straight lines where points arrived late, for example from an import or a sync with another app. The last 12 months are repaired in the background after the update; for older gaps, use Recalculate tracks & stats. (#3794)
  • The "What's New" card fits on phone screens again.
  • The trip page no longer scrolls sideways on phones, and its download menu stays on screen.
  • The map shows your current position again as a red dot, with or without live mode. The dot stays hidden while you are inside a privacy zone. (#3904)
  • A visit is suggested again when tracking pauses and resumes at the same place, for example a shortcut that pauses tracking at the gym. Past stays are fixed in the background after the update. (#3203)
  • Imports uploaded before 1.14.4 no longer show .zip at the end of their names, unless you renamed them yourself. (#3062)
  • Downloading an import returns the original file instead of a ZIP, also when its name has accented letters such as ü or characters such as :. (#3062)
  • Renaming a place updates the name shown on its visits. Visits you named yourself keep their names. (#3353)
  • A track from a second device, such as an imported watch GPX, is no longer bridged by a straight line from another track, and its distance is no longer counted twice. Tracks from the last 12 months are fixed in the background after the update. (#3424)
  • Flights are drawn along the shortest path over the globe, including routes over the North Pole. (#3261)
  • The achievement cards for Valparaíso, Colima and Chile show the mainland at full size instead of a dot. (#3731)
  • With Edit points on, clicking another point selects it, and a slight mouse movement during a click no longer moves the point. Before, Delete could remove the wrong point. (#3772)
  • Aosta Valley now counts toward Italy's achievement, which has all 20 regions. If you already completed Italy, you keep it. (#3789)
  • Background Jobs dashboard actions (Delete, Retry, Kill, Clear) no longer fail with "Forbidden" when Dawarich is opened over plain HTTP on a local network. (#3907)

For developers

  • New endpoints: POST /api/v1/points/transitions accepts enter and leave events detected on the phone, for the upcoming geofencing in the mobile app; /api/v1/webhooks and /api/v1/geofence_events manage webhooks and read the event log. Webhook requests are signed with X-Dawarich-Signature: sha256=<HMAC of the body>.
  • Breaking: a Visit's place is null when the visit has no Place or Area. Visits add display_name, custom_name (the stored name, if any) and location_label; name still holds the name to show. Sending both place_id and area_id returns 422.
  • Deprecated: /api/v1/areas and the Visit area_id field. Use /api/v1/places and place_id; /api/v1/places accepts visit_radius, geofence and filter=unconfirmed.
  • Add mask_privacy_zones=true to a read request to get results with privacy zones applied. Map tiles and fog of war are always masked.
  • /api/v1/settings reads and changes the date and time preferences and the Family and Achievements switches, and /api/v1/users/me lists both features under features. With Family off, the family endpoints answer 403 feature_disabled.
  • The MCP get_timeline and search_visits tools include each Place's visit_radius, and search_visits names visits the way the timeline does.

💙 This release is supported by Steven B., James Manolios, chenrik, aldumil, derpderpington, Chippie, dint, jhalpern, Lex Fradski, Schlufo, cyberswan.at, craftyklaus, Andre, hogenf, naraxius, Embrace, martin4861, Alex, evetters, GregF, Jon Coffee, Lukas, Robbie G, Kilian, Hans G, Chris, tabaha, Andre, Michael C, Chris, Jonah B., Dante, daallex, Tanner A., Milien M., Mathias, Travis S., Matthew F., Johnathan D., bleibdirtroy, no1etal, dixet, Bailey J., Alex D., Benjamin M., Daniel A., Florian, BeeHappy, ChemistryDachshund, OrangeWindies, Michelangelo V., Edward, Erazem Z., Denis Abt, Tony G., Lomky, Osamu Y., Linus T., Sebastian, Jan K., Nathan T., Max G., Karol B., Konstantin, Johannes H., t3hero, g3lin, Tim, Philipp M., Brand K., Pablo F. M., Jon H., fkB, Mikael, Dániel A., Hai_Tsung, ShooTex, GreenTentacle, PinkahPandah, David, Ken, Denna G., Andre, Hendl91, Jon H., MrRed, Arkadiusz Z., Jake, Bator T., Alex J. H., eps-dev, twiggu, Dragan V., Jerome G., Sheya B., Gustav B., higgs01, Frank F., F. J. Kruz, Jon D., Alexander J. H., Daniel D., Ricardo T., Christof Z., Narrator, JohnSmith21, smartbert, A.M., Matthew Z., Dror T., Jonathan K., Kyle C., Mario B., Albin H., Phillip S., Bernd, Tom, Nick O., greeting7416, Dick, Brian R., Markus, TheSlimShady, Andrew M., Mason B., Chance, Dragon, Oliver, HexitNiels, Michael G., Pablo A., Leo L., Daniel D., DSKun, Jonathan K., Erik K., Tiebolt v. d. L., Steven, Mathias, Sam B., Manuel F., K8BCO, Samuel D., duckduck, David, heydabop, Riccardo N., Tim. S., Jonas, Kenji I. Pascal M., Raymond W., Julien, Roman, Mario B., Thomas G., Gabriel, Ivan A., Aram B., Dan551 and Andreas R. on Patreon and KoFi 💙


What's Changed

New Contributors

Full Changelog: 1.17.0...1.18.0