Repository navigation
1.18.0
⚠️ 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=1and 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.ymluses 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
.zipat 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/transitionsaccepts enter and leave events detected on the phone, for the upcoming geofencing in the mobile app;/api/v1/webhooksand/api/v1/geofence_eventsmanage webhooks and read the event log. Webhook requests are signed withX-Dawarich-Signature: sha256=<HMAC of the body>. - Breaking: a Visit's
placeisnullwhen the visit has no Place or Area. Visits adddisplay_name,custom_name(the stored name, if any) andlocation_label;namestill holds the name to show. Sending bothplace_idandarea_idreturns 422. - Deprecated:
/api/v1/areasand the Visitarea_idfield. Use/api/v1/placesandplace_id;/api/v1/placesacceptsvisit_radius,geofenceandfilter=unconfirmed. - Add
mask_privacy_zones=trueto a read request to get results with privacy zones applied. Map tiles and fog of war are always masked. /api/v1/settingsreads and changes the date and time preferences and the Family and Achievements switches, and/api/v1/users/melists both features underfeatures. With Family off, the family endpoints answer 403feature_disabled.- The MCP
get_timelineandsearch_visitstools include each Place'svisit_radius, andsearch_visitsnames 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
- fix(stats): treat flight distance data equally by @darioackermann in #3742
- Privacy zones in Map v2 (server-side, all layers) by @Freika in #2848
- 1.18.0 by @Freika in #3909
New Contributors
- @darioackermann made their first contribution in #3742
Full Changelog: 1.17.0...1.18.0