• 3 posts
  • 3 comments
Joined 3 years ago
Cake day: June 19th, 2023

Hi there, my dear people of Selfhosted!

Evgenii here, the developer of Dawarich, a free, open-source, self-hostable alternative to Google Timeline.

Eight releases since my last update, and we’re now at 1.15.3. Some fun map things, some integrations with other self-hosted apps, and a lot of work on the rough edges you brought up in the comments. Thank you for those, by the way :)


AI Disclosure (as per https://lemmy.world/post/49320548):

Implementation - Generated

Testing - Generated

Design - Generated


Our links:

Github: https://github.com/Freika/dawarich

Website: https://dawarich.app/

iOS app: https://apps.apple.com/us/app/dawarich/id6739544999

Android app: https://play.google.com/store/apps/details?id=app.dawarich.Dawarich


Your location history now comes with exploration achievements

Every country gets a collectible card, and 183 countries have a grid of their first-level regions. Spend enough time in a region and it becomes part of your collection. The threshold follows your minimum-time-in-city setting, so simply passing through wouldn’t count as exploring it.

Existing history is checked in the background, and earned regions stay earned. You can share a card through a link with a preview of its geography and progress.

This shipped experimentally in 1.15.2 and is available without a feature flag in 1.15.3. A little geography game built from the places you’ve actually been. I think this is a pretty lovely use for location history :)

I have some plans for the achievements system, so this is just the beginning. For example, I’d love to add the US national parks, Camino de Santiago, lighthouses visits and probably some other spacial achievements that can fit nicely. Let me know if you have have ideas for the feature!

Update to points editing on the map

In the last post, I said you’d have to turn tiled rendering off to drag points around. That restriction is gone.

You can drag a point directly on the vector-tile map, and its track and segments are recalculated. There’s undo and redo for the last five moves (which I love a lot), and edits sync to other open sessions. On touch screens, a long press starts the drag.

The main map now uses vector tiles by default, so there’s no beta toggle to remember. We’ve also fixed date-range clipping: selecting Today should show the relevant part of a track, even if the track itself spans a longer period.

Some of those GPS spikes got attention

Several people mentioned weird jumps and tracks zigzagging between devices.

A stray location uploaded on its own is now checked again when the next point arrives, which catches anomalies the original upload couldn’t reveal. Family maps also filter anomaly points.

Trips recorded by several devices at once now use the busiest device during overlapping recording periods. Devices used one after another still stay in the trip. For an existing trip with a messy route or wrong distance, press Recalculate on its page.

These are specific fixes; tracking and transportation-mode detection still have edge cases. Reports with the tracker, server version and an example remain very helpful.

More of your self-hosted apps can talk to Dawarich

  • TREK: import planned trips, put the itinerary over your recorded route, and bring over day notes. Imported notes keep syncing until you edit them in Dawarich.
  • TeslaMateApi: sync completed drives into your location history, manually or daily.
  • OsmAnd and other GPX waypoint exports: import favourites as places, with categories becoming tags. Re-imports don’t duplicate them, and bookmarks don’t affect your distance statistics.

You can also share a trip privately with family members. It appears in their trip list with a read-only map, respecting sharing settings and privacy zones.

Experimental MCP support

Dawarich has a read-only MCP endpoint now. A compatible assistant can read a timeline of up to seven days, find your latest recorded location, and search your visits by place, city, country or area name. It’s available to every self-hosted user. The MCP tools cannot edit or delete data. If your client uses a cloud AI provider, the location data it requests goes to that provider, so your choice of client matters. I know some Dawarich users integrate with their Hermes assistant, so that may come in handy :)

Setup and privacy details: https://dawarich.app/docs/features/mcp/

A few smaller things you’ll probably notice

Video Studio has a Fog of War mode and exact start/end time selection. Poster and video generation now load the route correctly when using tiled rendering.

Immich and PhotoPrism photo handling got fixes around timestamps, missing photos and archived images. City statistics now handle infrequent location reports better, and Simplified Chinese brings the interface to seven languages.

Geocoding configuration now lives under Settings → Instance, with a connection test and no redeploy needed. Environment variables still take precedence. There’s also a Send test email button under General settings.

An upgrade note worth reading

Version 1.14.5 fixed a registration bypass affecting self-hosted versions 1.7.1–1.14.4: the mobile registration endpoint could create an account even when registration was disabled. If you’re running an affected version, upgrade to a patched release. For an internet-facing instance, also check Settings → Users for unexpected accounts. Security advisory.


Mobile apps update

We also updated mobile apps, and those are no small changes, thanks to my partner, Konstantin.

First of all, let me take a step back and provide you some broader context. It may be something new to our Android users, but on iOS we do have an optional subscription for self-hosters (all mentioned features are available for free with no extra payment to our cloud users), who want to support development. After subscribing user could easily import their GPX tracks from Apple Health (see screenshot below). I’m stressing the word “optional”, because no data is being paywalled, the tracks from Apple Health can be extracted for free in other way, just less convenient, and imported to Dawarich without any limits.

Now, we added two more features to this subscription on iOS: rich widgets and importing geodata from Apple Photos to Dawarich. Mind you, there is a simpler daily widget that is available without this subscription. Again, see the screenshot below:

Now, to Android. For the first time, it received the same subscription, except there is currently no way to easily import GPX tracks from Google Health Connect to Dawarich, so the subscription only provides two features: widgets and importing geodata from your photos. We wanted to add the third feature to Android as well, but this time Google did not allow us to release the app with it built in, referencing to the required permissions not being crucual for the app functionality. I hope we can add it eventually to Android as well. Important: core functionality of our mobile apps is and will remain free, nothing that is already free will ever be hidden behind a paywall. We’re seeing it as a way for our users to support development and get something nice and optional in return. I hope you can trust me on this, and if not — I’m happy to answer any of your questions.


Now, about the new features in mobile apps!

Family is here!

Finally, you can see and manage your family location sharing settings. Family members are now visible on the map as well as their location history (given they have it enabled, privacy-first, you know). Proper family management will be added later, but I think it’s a great first step.

Settings sync

Your Dawarich instance now will serve as a sync point so you could have same tracking settings on your new device as on the old one. Neat.

Widgets

As mentioned and shown above, Daily widget available to all Dawarich app users free or charge, and if you would like to have the Insights one, you can support the development with a coin :) If you’d rather not, I won’t judge you.

Importing geodata from photos on your device

Basically, what the subheader says. Again, if you’d rather not pay, we got you covered: there is a free private (nothing leaves your device) tool to extract geodata from your photos: https://dawarich.app/tools/photo-geotagging/

Visits sync

At last, after few months, we’re releasing visits sync for iOS. You see, the iOS itself detects places you visited and Dawarich for iOS had them for ages, but there was no way to send them to your Dawarich server, until the recent update. Now visits are being synced and I already had a very positive feedback on the quality of iOS visit detection. The Android OS unfortunately doesn’t have such thing, but we’ll probably figure something out for our app ourselves. Oh, and the Android app doesn’t munch on your phone battery like a monster anymore.


And as always, our links one more time to save you a scroll:

Github: https://github.com/Freika/dawarich

Website: https://dawarich.app/

iOS app: https://apps.apple.com/us/app/dawarich/id6739544999

Android app: https://play.google.com/store/apps/details?id=app.dawarich.Dawarich

Donate: https://www.patreon.com/freika / https://github.com/sponsors/Freika/

P.S. I hope you like stickers, coz we have stickers now! Leave your address in the form: https://tally.so/r/1A1DBg

The idea is to leave them during our travels and then compose a map with stickers positions on it, so please do send me photos of places you applied a sticker with coordinates :) The address is hi@dawarich.app

P.P.S. Kudos to you for scrolling all way down here! I’m experimenting with something extra radical and it could make all our self-hosters dreams come true: smaller CPU and RAM impact, less containers, better performance and what not… join our Discord and check offtop channel if I got you hooked :) https://discord.gg/pHsBjpt5J8 See ya!

Hi there my dear people of r/selfhosted! Fresh bunch of Dawarich news is due, make yourself comfortable :) To whom it may concern, Dawarich — is your (is and always will be) a free open source self-hostable alternative to Google Timeline.

AI Disclosure (as per https://lemmy.world/post/49320548):

Implementation - Generated

Testing - Generated

Design - Generated


Our links:

Github: https://github.com/Freika/dawarich

Website: https://dawarich.app/

iOS app: https://apps.apple.com/us/app/dawarich/id6739544999

Android app: https://play.google.com/store/apps/details?id=app.dawarich.Dawarich


Nine releases, what a month! And not a puny ones, this time we managed to speedrocket Dawarich performance in browser. If you have hundreds of thousands (or even millions!) of points and you’d love to see them all on the map, previously that would be not an easy task for Dawarich. It would crash your browser, as many times as you try loading the data. But no more! Our very own community member, the man behind the Docker image we’re using to run Photon, Robin (https://github.com/rtuszik) suggested a fresh approach to loading points: just render them as map tiles! Together we brought this idea to life and now my own dataset consisting of 957,350 geo points gets loaded in less than 1 second! That’s kinda insane to me, to be honest. And yeah, instead of ~590MB of JSON transferred to your browser, it took uhhh 150KB? Just don’t forget to enable the toggle in the map settings.


If you want to drag your points, do disable it though, seamless points editing will be added bit later. Oh, and tracks are being now served in the same manner, too. And routes, and fog of war layers. It’s all a lot faster now! Dawarich now speaks 6 languages! German, Spanish, French, Polish and Catalan were added to the default English. Simplified Chinese is on the way, and feel free to suggest your own locales :) You can change it in Settings -> General


Visit detection was rebuilt from scratch and it’s finally useful. God knows I procrastinated this feature long enough, but now it’s in a very good shape. Suggests real places I visited, and community members are also confirming it’s not just me — for them it also yielded very relevant results. By the way, you’ll no longer see the annoying “99+” counter of the visits on your timeline button. We all hated the feeling of an unfinished job but let’s be real ain’t nobody got time to click all the suggested visits. Now they are just there, without the irritating counter, sitting patiently, waiting for you to delete them or… just let them be. They are precise enough now, after all, so why not, right?

Deleting a visit also leaves an invisible tombstone now, so the visit won’t be resuggested again. And the Timeline panel got much cleaner. I’m still not entirely satisfied with its state, so some changes are due, I want smoother UX.

By the way, one of former Dawarich user mentioned something like we’re making the Timeline “less and less useful with each release”, so here I’d like to use the opportunity and ask you guys, do you share same feeling? What’s good about Timeline, what’s not so good? I’d love it to be as useful and convenient as possible, so your feedback is very important. Thank you!

Transportation modes, also rebuilt. This one is a lot trickier and even Google itself fails to properly attribute the way a human being moved (suggesting driving over train ride for example), but it’s still got significantly more reliable. I have some cool work ahead of me to make it even better, but that’s a secret.


Videos are finally here! God I love videos. The Video Studio first was released as a free tool on our website (https://dawarich.app/tools/route-video-maker/), and then I added it to Dawarich itself, which makes it easier to use your own routes to create a video.

Check it out!

And here’s an actual video produced by Dawarich Video Studio: https://youtube.com/shorts/mEUe4RktKSg

Also, the “Share” button on the map page now also has a way for you to create and share a poster or a video. Your memories were never more material!

Rendering is being done in your browser, and it allowed me to not cram another backend service into the Dawarich stack, neat.


Map v1 (Leaflet) is gone. I’m surprised nobody really complained about it. I’ll take it as a sign that Maplibre version is a lot better!


Geocoding settings are now available in Settings->Integrations, with selection of providers supported by Dawarich and appropriate settings available for them. The ENV vars are still there and take precedence over what’s configured in the UI, so no breaking changes.


Imports got smarter:

  • Google Takeout & Polarsteps now extract visits, named places, tracks and the source app’s tication — not just raw GPS points. Google’s own place names (Home, Work…) are kept. Older imports: “Extract additional data” in the Imports list. “Remove extracted data” undoes it without touching your points.
  • FIT files with developer data fields (Wahoo devices) now import instead of failing to parse
  • Traccar KML exports now import LineString points instead of finishing with zero.
  • Google Timeline: fixed altitude/accuracy/speed being silently dropped from rawSignals, and estamps no longer scramble path order.
  • Imports finishing with zero saved points now tell you instead of completing silently.
  • Tracks no longer stitch two different devices together (Records.json contains every device

Tracks calculation got a lot smarter: fewer skims along the route, better anomaly points detection, better distinction between different devices tracking simultaneously, hence stats distance calculation now has better precision.


Preparation work is being done for the Family feature coming to our mobile apps. We’re currently testing it internally and are hoping to release it there soon. Also, OwnTracks’ HTTP mode now can show your family members in the app: every upload is answered witveryone sharing with you.


Database optimisation works are also in progress: most of the August releases are containing some changes to how Dawarich writes and serves your data, it may lead to bigger space consumption. In the end, when the process is done (hopefully before end of September), I’ll provide an instruction on how to shrink your databases with no data loss. If you’d like to do it now — do the full vacuum to the points table. For the rest of you — please wait for the next post or keep an eye on our changelogs, it will be there.

⚠️ If you’re upgrading from 1.10.x, do these once

  • Restart the app after migrations have run — until then, deleting a visit looks like it worked without saving.
  • Settings -> Visits -> re-detect (self-hosted does this fleet-wide automatically; SKIP_VISITS_FLEET_REDETECT=1 to opt out).
  • Map settings -> Transportation Mode Detection → “Re-classify my history.”
  • Map v2 -> Settings -> “Recalculate tracks & stats” to apply the gap-distance fix to past months.
  • Expect background backfills to run for a while on big histories. Progress is under Background jobs settings.

Mobile app UI was updated! It now includes better navigation between days, you can select date range to show your data, and you can also replay your day on the map. We added new layers: points and heatmap, more to follow.

If you’re hosting Dawarich behind cloudflared or similar gateway, you can now benefit from custom HTTP headers to connect your mobile app to your Dawarich instance.

We added Smart Tracking mode for Android and Continuous Tracking mode for iOS. Enable precise tracking mode to see the toggle. Both modes use motion-aware updates to toggle tracking on and off to save your battery life.


Well, I guess, that’s it for today?

And as always, our links one more time to save you a scroll:

Github: https://github.com/Freika/dawarich

Website: https://dawarich.app/

iOS app: https://apps.apple.com/us/app/dawarich/id6739544999

Android app: https://play.google.com/store/apps/details?id=app.dawarich.Dawarich

Donate: https://www.patreon.com/freika / https://github.com/sponsors/Freika/


P.S. 1st of October I’ll be speaking at Berlin’s Geomob event ( https://thegeomob.com/ ) come and say hi!

See y’all soon!

Hello there my good people of self-hosted Lemmy! Dawarich got some new stuff since my last post, so here I (Evgenii) am, ready to tell all about it! Make yourself comfortable and prepare for awesome stuff :)

By the way, Dawarich — is your free (now and forever) open source self-hostable alternative to Google Timeline. And hey — we just reached 10k stars on Github! Yay! Here’s a small bonus for you! https://youtu.be/-7o2WJPXMVw

AI Disclosure (as per https://lemmy.world/post/49320548):

Implementation - Generated

Testing - Generated

Design - Generated


Our links:

Github: https://github.com/Freika/dawarich

Website: https://dawarich.app/

iOS app: https://apps.apple.com/us/app/dawarich/id6739544999

Android app: https://play.google.com/store/apps/details?id=app.dawarich.Dawarich


First of all, tons of bugs were fixed. Right now I’m steadily keeping number of open issues on Github at around a hundred, and, hopefully, I’ll be able to significantly reduce it in the upcoming months. It’s time for Dawarich to get some more stability.

So, let’s start with the big things!

Since 1.9.1, the following changes were introduced:

  • Poster Studio: you can now generate posters, wallpapers or images for your social media, featuring your location history on the map, in a beautifully styled way. Check out screenshot below.

We went to a roadtrip this summer just so I could show you this nice poster!

  • You can also order a printed poster via our print-on-demand integration, thus supporting Dawarich development. Print quality is superb: I personally ordered two posters to test it, pictures are also can be found below. Important: it’s built with privacy in mind, so nothing gets sent to our print-on-demand provider unless you explicitly click a button. Prices are 44,99€ for 30x40cm, 54,99€ for 50x70cm and 74,99€ for 70x100cm poster, printed on 200 gsm premium matte paper. Delivery and VAT included, for now — EU only.

Or you can download a file and print it yourself!

  • As a side-effect of the Poster Studio introduction, you can now apply same styles to your main map and customize the colors or provide custom schema for vector maps. It’s pretty fancy, check it out! It works on trip replays, too :)

  • Dawarich can be installed as PWA! Pretty neat for read-only purposes on mobile, and I have some ideas on how to make it look nicer on mobile screens in the future.

  • Replay upgrades — Polaroid photo pile, live photo-layer toggling, recenter & follow camera

  • Google Takeout & Polarsteps imports now extract visits, named places, tracks, and transport modes, not just points (1.11.0); retroactive via “Extract additional data” on the Import page TCX/FIT/Google-takeout activity types now feed transportation-mode detection

  • File imports stopped storing raw_data copies; streaming batches for large GeoJSON/Timeline files. Less space on disk taken, less memory during import consumed. Existing points are re-checked after upgrade, with tracks/stats/digests rebuilt on the lowest-priority queue. If you’re updating and noticing resources consumption surge, just let it work through the background jobs.

  • Self-hosted stack ~20% lighter: 452 → 325 MB app container, 843 → 690 MB total. I also have some more ideas on how to make it even slimmer later

  • GET /api/v1/points endpoint now works up to 5 times faster than before

  • ImageMagick removed from the image, making the docker image smaller

  • Oh, and mobile app update was released, for now just for Android, iOS is following in a few days: you can now enable/disable points, routes, heatmap and visits layers, easily navigate between days and replay your daily movements. The iOS version will also include an (for now, optional) experimental tracking mode, that shown pretty good results, but it needs the famous blue arrow to be on all the time. The choice is yours. Oh, and Dawarich for mobile now eats a lot less of your phone battery. Thanks for all the detailed reports.

God I love the sparklines!

These are the most notable changes, but under the hood, there is a lot more. If you’re interested, check our our Releases page ( https://github.com/Freika/dawarich/releases ), it’s all there.

And now, that we’re done with what’s already there, let’s talk a bit about the future.

Dawarich started as a tool to show location history on the map, but it became so much more since then (all thanks to you, by the way). In the nearest future, subjects of our primary focus are:

  • Better mobile experience: UI, more feature parity with the web, better onboarding and family features
  • Reworked Search UI
  • Simpler and more concise UI overall across the app (I heard Timeline is not that easy to work with)
  • Geofence (tell me about your use-cases!)
  • Less bugs
  • Two new locales (German & French, web first, mobile will follow)
  • Better performance and architecture improvements
  • I also want to play around MCP so your LLMs of choice could easily talk to Dawarich, improve visits detection and transportation mode detection, but the last two will take some work.

So yeah. As usual, lots of work behind us, even more is ahead of us. I want to say thank once again to all of you who are using Dawarich on daily basis, reporting bugs, suggesting features, opening PRs with fixes and new features supports us financially or just spread the word about the work we do. Without you guys there would be no Dawarich, so — thank y’all.

We also highly appreciate your donations, every single one makes a difference, whether it’s a 1 time 1 euro donation or a recurring one on Patreon paid in full for the next year. Every single one of them brings us one step closer to a point where Konstantin (who is in charge of our mobile apps) and I will be able to spend more time polishing Dawarich.

If you happened to be (or know someone who is) a Youtube blogger, a podcaster or just have a blog, we’ll be happy to talk to you in case you’d like to create something featuring Dawarich (or Dawarich Atlas for that matter, I’ll be giving a talk on it on October’s Berlin Geomob). So ping me!

As always, our links to save you a scroll:

Github: https://github.com/Freika/dawarich

Website: https://dawarich.app/

iOS app: https://apps.apple.com/us/app/dawarich/id6739544999

Android app: https://play.google.com/store/apps/details?id=app.dawarich.Dawarich

Donate: https://www.patreon.com/freika / https://github.com/sponsors/Freika/

Thanks and see y’all in a ~month!

P.S. Cooking something legendary