Dawarich
Self-hostable alternative to Google Timeline (Google Location History)
Alternative to: google timeline, google maps timeline, google location history

1.14.1
2026-08-31Changed
- Point reads — the API responses, the map’s point payloads and the user-data export — now serve the device and importer metadata (tracker, topic, connection, battery state and friends) through the
point_sourcesreference table on rows linked to it, with the original columns still serving unlinked rows. Payloads are unchanged; this is groundwork for slimming the points table itself.
Added
- OwnTracks in HTTP mode now shows your family members on its own map: every location upload is answered with the latest position of each family member sharing with you, so they appear as friends in the app alongside the Dawarich map.
- AirTrail flights now show as their own figure on the monthly stats page and in the monthly digest. Flight distance is reported next to the distance Dawarich tracked rather than added into it, so neither number changes meaning.
Fixed
- Importing a user-data export no longer mis-stores the OwnTracks region columns (
inrids,in_regions): the export writes them in Postgres array notation, and the importer previously passed that notation through, which also linked such points to a device signature that matched nothing. - Track generation no longer reports a failure when its temporary progress session expires during finalization.
- Trip distance recalculation no longer fails when the computed distance exceeds the 4-byte integer limit, which GPS noise on a long trip can produce.
- Integration settings now show bounded connection errors instead of failing when an upstream service returns an oversized malformed response.
- Enhanced import extraction now retries transient database deadlocks instead of failing immediately.
- A malformed or truncated upload no longer returns a server error; the API now rejects it cleanly.
- OAuth sign-in now shows clear retry guidance while an account with the same email is still being deleted.
- Places you created and named yourself keep their manual attribution when reverse geocoding refreshes them, so they stay ranked ahead of auto-created address places and stay visible on the map (#3418).
- The map control cluster keeps Search, Create and Settings on phone-sized screens instead of hiding them; on short viewports it scrolls within the map area rather than running off the bottom (#3421).
- Trip note text now uses consistent left alignment on every line (#3104).
- Existing saved places now appear in Map v2 visit searches and can be assigned to visits (#3083)
- Orphaned track cleanup no longer removes a track that still owns points, and a database foreign key now backs that guarantee.
- Raw data archival now rechecks each point under a row lock before linking it, preventing concurrent tracker updates from being attached to a stale archive snapshot. An archive that ends up matching no point is discarded, archival stops instead of re-reading points it cannot link, and restores ignore snapshots no longer linked to their source archive.
- Google phone Timeline imports no longer fail when exports contain out-of-range altitude or accuracy metadata.
💙 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., Christian C., Sebastian, Jan K., Nathan T., Max G., Lars N., 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., ArnyminerZ, Gustav B., higgs01, Frank F., F. J. Kruz, Jon D., Alexander J. H., Daniel D., Gonzalo M., 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, GoogilyBoogily, Dragon, Oliver, HexitNiels, Michael G., Pablo A., Leo L., Daniel D., DSKun, Jonathan K., Erik K., Tiebolt v. d. L., Steven, Mathias, Sam B., Martin C., Manuel F., K8BCO, Samuel D., duckduck, David, heydabop, Riccardo N., Tim. S., Jonas, Kenji I. Pascal M., Raymond W., Julien and Andreas R. on Patreon and KoFi 💙
What’s Changed
- build(deps): bump the actions-minor-patch group across 1 directory with 3 updates by @dependabot[bot] in https://github.com/Freika/dawarich/pull/3234
- chore(deps): bump jwt from 2.10.3 to 3.2.0 by @dependabot[bot] in https://github.com/Freika/dawarich/pull/2894
- Fix trip note text alignment by @Freika in https://github.com/Freika/dawarich/pull/3185
- Trim memory and query overhead in point workflows by @Freika in https://github.com/Freika/dawarich/pull/3432
- Include saved places in Map v2 visit search by @Freika in https://github.com/Freika/dawarich/pull/3188
- Allow oidc_config.enabled to return true with only OIDC_CLIENT_ID and OIDC_PKCE_ENABLED configured by @centja1 in https://github.com/Freika/dawarich/pull/3371
- feat: report AirTrail flight distance separately from tracked distance by @Freika in https://github.com/Freika/dawarich/pull/3433
- fix: guard orphan track deletion with a points foreign key by @Freika in https://github.com/Freika/dawarich/pull/3434
- Prevent stale raw-data archive links by @Freika in https://github.com/Freika/dawarich/pull/3228
- Return family locations to OwnTracks in HTTP mode by @Freika in https://github.com/Freika/dawarich/pull/3435
- Retry track generation after cache pool timeouts by @Freika in https://github.com/Freika/dawarich/pull/3438
- Keep every map control reachable on narrow viewports by @Freika in https://github.com/Freika/dawarich/pull/3449
- Keep curated places on the manual source by @Freika in https://github.com/Freika/dawarich/pull/3448
- Guard Google phone Timeline numeric metadata ranges by @Freika in https://github.com/Freika/dawarich/pull/3439
- Stop reporting recovered time-anchor collisions by @Freika in https://github.com/Freika/dawarich/pull/3440
- Handle OAuth sign-in during account deletion by @Freika in https://github.com/Freika/dawarich/pull/3441
- Handle malformed multipart requests in API rate limits by @Freika in https://github.com/Freika/dawarich/pull/3443
- Retry enhanced import deadlocks by @Freika in https://github.com/Freika/dawarich/pull/3444
- Fix oversized integration flash messages by @Freika in https://github.com/Freika/dawarich/pull/3445
- Prevent trip distance overflow by @Freika in https://github.com/Freika/dawarich/pull/3447
- Handle expired track generation sessions by @Freika in https://github.com/Freika/dawarich/pull/3442
- [C5] Serve point reads through the point_sources dimension by @Freika in https://github.com/Freika/dawarich/pull/3437
- 1.14.1 by @Freika in https://github.com/Freika/dawarich/pull/3452
New Contributors
- @centja1 made their first contribution in https://github.com/Freika/dawarich/pull/3371
Full Changelog: https://github.com/Freika/dawarich/compare/1.14.0…1.14.1