Hey everyone!

I’m excited to introduce Reitti, a location tracking and analysis application designed to help you gain insights about your movement patterns and significant places—all while keeping your data private on your own server.

Core Capabilities:

  • Visit Tracking: Automatically recognizes and categorizes the places where you spend time, using customizable detection algorithms
  • Trip Analysis: Analyzes your movements between locations to understand how you travel whether by walking, cycling, or driving
  • Interactive Timeline: Visualizes all your past activities on an interactive timeline with map and list views that show visit duration, transport method, and distance traveled

Photo Integration:

  • Connect your self-hosted Immich photo server to seamlessly display photos taken at specific locations right within Reitti’s timeline. The interactive photo viewer lets you browse galleries for each place.

Data Import Options:

  • Multiple Formats Supported: Reitti can import existing location data from GPX, GeoJSON, and Google Takeout (JSON) backups
  • Real-time Updates: Automatically receive location info via mobile apps like OwnTracks, GPSLogger or our REST API

Customization:

  • Multi-geocoding Services: Configurable options to convert coordinates to human-readable addresses using providers like Nominatim
  • User Profiles: Customize individual display names, password management, and API token security under your own control

Self-hosting:

  • Reitti is designed to be deployed on your own infrastructure using Docker containers. We provide configuration templates to set up linked services like PostgreSQL, RabbitMQ and Redis that keep all your location data private.

Reitti is still early in development but has already developed extensive capabilities. I’d love to hear your feedback and answer any questions to tailor Reitti to meet the community’s needs.

Hope this sparks some interest!

Daniel

  • SomeDudeFromSpace@lemmy.ml
    link
    fedilink
    English
    arrow-up
    0
    ·
    1 month ago

    Great project! Any recommendations for an iOS app for this? I’ve been using OwnTracks, but it works very unreliably. As far as I understand, it’s an OS problem since Apple allows for very limited background processing for the sake of saving battery, so there’s not much any logging apps can do, but I was just curious if someone found a way around it.

    • danielgraf@discuss.tchncs.deOP
      link
      fedilink
      English
      arrow-up
      0
      ·
      1 month ago

      Not really, I stopped using IOS a year ago because of exactly this reason. Had a lot of problems syncing files because of the power saving. I understand why IOS is doing it and for a normal user I think it is the way to go. But anything beyond that, it only hinders the experience you get out of apps. Maybe someone here as any experience with an app which works reliably.

  • Lost_My_Mind@lemmy.world
    link
    fedilink
    English
    arrow-up
    0
    ·
    1 month ago

    Man. I have no use for this. I know where I go. I go to work. And then the gym. Almost every day. Because I work a lot.

    It’s like my boss always says…“BACK TO WORK, DICKHEAD!”

  • Sibbo@sopuli.xyz
    link
    fedilink
    English
    arrow-up
    0
    ·
    1 month ago

    This looks amazing, and I will try it out once it has reasonable NixOS support.

    I especially like the immich integration.

    Does it increase battery consumption of the phone a lot?

    • danielgraf@discuss.tchncs.deOP
      link
      fedilink
      English
      arrow-up
      0
      ·
      1 month ago

      Reitti on its own does not run on your phone. It relies on external apps to track your GPS location like GPSLogger or Owntracks. They will increase the battery consumption but I think it is bearable. I personally have setup GPSLogger to fetch every 30 seconds a GPS location and then sends it every hour to reitti. With that i do not see that more power usage. Currently starting to test how the power drain is with a 15 seconds interval.

    • beerclue@lemmy.world
      link
      fedilink
      English
      arrow-up
      0
      ·
      1 month ago

      May I ask what you mean by NixOS support? There’s a docker compose you could use in their repo…

      • Sibbo@sopuli.xyz
        link
        fedilink
        English
        arrow-up
        0
        ·
        edit-2
        1 month ago

        But then I’d have to combine that with existing services myself. NixOS ensures that there is only one postgres running for example, such that not every service starts its own postgres instance.

        For immich, for example the following is enough for a most basic configuration:

        services.immich.enable = true;
        services.immich.port = 2283;
        
  • Otter@lemmy.ca
    link
    fedilink
    English
    arrow-up
    0
    ·
    1 month ago

    Cool!

    I love the UI for this one, it’s unique compared to the others

    • danielgraf@discuss.tchncs.deOP
      link
      fedilink
      English
      arrow-up
      0
      ·
      1 month ago

      Thanks otter, I tried to have a historical look. Like going to the past an revive your memories. Hope it worked out. I am actually pretty happy with it.

  • MrQuallzin@lemmy.world
    link
    fedilink
    English
    arrow-up
    0
    ·
    1 month ago

    This is really awesome! I was just about to start looking for something like this, so great timing. Going to get this up on my Unraid server tomorrow and play around with it

  • Zwuzelmaus@feddit.org
    link
    fedilink
    English
    arrow-up
    0
    ·
    1 month ago

    I still have a phone containing Google, and cannot change this situation (maybe with my next phone). Usually, I switch off location services very often and I avoid such tracking apps because all my data goes to Google then.

    Would it be advisable to use this at all before I get rid of Google?

    • danielgraf@discuss.tchncs.deOP
      link
      fedilink
      English
      arrow-up
      0
      ·
      1 month ago

      Hello @[email protected], i usually use GPSLogger for Android to track my location during the day and this periodically sends the data to reitti whenever i am back at home. I have no idea if you switch off location services what happens on the GPSLogger side of the chain. If it still be able to access GPS I see no problem, if not than this sadly will break the usecase for reitti.

      It relies on a consistent GPS tracking data to be able to do its thing

  • Ada@piefed.blahaj.zone
    link
    fedilink
    English
    arrow-up
    0
    ·
    26 days ago

    I’ve got a question about how reitti calculates significant places/visits.

    I was thinking of adjust gps logger so that it doesn’t log points if they’re within 10m of the last point it logged. That will clear up the data when I’m at home or work, so that there is less of a random squiggle of location data. It will record me arriving at home, and leaving home, but not much in between.

    Will that impact how reitti calculates locations though? Is it looking at the number of points, or is it simply a matter of duration within a particular vicinity?

  • dan@upvote.au
    link
    fedilink
    English
    arrow-up
    0
    ·
    1 month ago

    I’d love to see an integration with PhotoStructure in addition to Immich.

    • danielgraf@discuss.tchncs.deOP
      link
      fedilink
      English
      arrow-up
      0
      ·
      1 month ago

      Never heard of PhotoStructure but if they provide an API where i can search assets for a day and it also returns the exif data especially latitutde and longitude it should be pretty straight forward to implement. Feel free to add a feature request when you got time and I will have a look at it :)

  • Ada@piefed.blahaj.zone
    link
    fedilink
    English
    arrow-up
    0
    ·
    27 days ago

    Having all of this data stored in a location I can control has been really good.

    But yesterday, it was pointed out to me that the API reitti provides means I have access to over a decades worth of location history that I can use to geotag my photo collection! That is a game changer. I’ve been trying to find a way to pull that information from google location history for a long time, and it turns out, you’ve created it!

    This is really valuable to me, so I want you to know just how much I appreciate the effort you’ve put in to making it. Thank you

    • danielgraf@discuss.tchncs.deOP
      link
      fedilink
      English
      arrow-up
      0
      ·
      1 month ago

      Thanks :) As a German I really like the name Dawarich. First it sound really nice for me but also that “Da war ich” means “There have i been” in german makes, at least for me, an awesome project name.

      Take this with a grain of salt because I have no idea what the plans are for Dawarich or have ever been and this is solely based on my external view. For me the main differences are:

      • visits and trips are our main data, everything else is just the way to calculate them. For Dawarich it looks to me, that it is the other way around. It displays all the location data in good way with the heatmap and so on but visits or places seems so tacked on. This should not be an offense against it. I actually still have an instance running and it was the main pushing point to finally start working on Reitti.
      • the sleek UI but this depends on your taste

      In the end, they are not that far off. Maybe a matter of taste.

      • pipariturbiini@sopuli.xyz
        link
        fedilink
        English
        arrow-up
        0
        ·
        30 days ago

        Maybe slightly off-topic, but how did you end up with the name “reitti”? You say you’re German - do you have some sort of tie to the Finnish language?

        • danielgraf@discuss.tchncs.deOP
          link
          fedilink
          English
          arrow-up
          0
          ·
          30 days ago

          Oh, i had the idea in mind what i want to create and than it was a matter of a couple of Google queries but in the end one of the LLM suggested a list of different names in foreign languages and reitti somehow sticked 😊

      • emrsmsrli@lemmy.world
        link
        fedilink
        English
        arrow-up
        0
        ·
        1 month ago

        Thanks for the reply! I will give it a go :)

        The word dawarich does not produce a polite sound in my main language, meant no offense to the project :)

  • Zagorath@aussie.zone
    link
    fedilink
    English
    arrow-up
    0
    ·
    1 month ago

    I love that it supports multiple formats for important location as well as multiple geocoders. But that makes me wonder, would it be feasible to support multiple image libraries? There’s a bunch of different FOSS photo libraries out there. I think Nextcloud is the main other one I’ve heard about ‘in the wild’, as it were. Or is there too much bespoke Immich code in there for that to be a simple plug-and-play option?

    • danielgraf@discuss.tchncs.deOP
      link
      fedilink
      English
      arrow-up
      0
      ·
      1 month ago

      no, that would not be a problem as soon as the other image library has an api reitti could query. It just happens that I am settled with immich and had no other needs at the moment.

      If you need a specific one, drop a feature request and I will have a look.

      • Zagorath@aussie.zone
        link
        fedilink
        English
        arrow-up
        0
        ·
        1 month ago

        I don’t actually have any personally. I’m still with Google Photos for now and hadn’t decided what to switch to, with Immich, Nextcloud, and the non-open Synology Photos being the top of my list. Legitimately, what a tool like this supports could be a factor I use to help decide.

        How complicated is the code interfacing with Immich? Is it a piece someone not familiar with your overall code base could relatively easily pick up and make a pull request for?

        • danielgraf@discuss.tchncs.deOP
          link
          fedilink
          English
          arrow-up
          0
          ·
          1 month ago

          I do not think it is that complicated. The front-end sends a request to the back-end with the current selected day. This triggers a search in Immich returning all photos taken on that specific day. This is returned to the front-end and this than does the heavy lifting like filtering them to the current map bounds, displaying them on the map at a specific location. We proxy all request from the front-end through our server because of CORS issues and I did tried to avoid having to configure Immich besides creating a token for the API.

          One would need to either create a specific IntegrationService like ImmichIntegrationService and then figure out a way how the user can configure that. The easiest would be that we just then call all available ones even if I do not see the use case of having multiple Photo-Servers. But it would make the code in Reitti cleaner and would not hurt if we do not configure 20 simultaneous servers :D

  • shrink9313@lemmy.world
    link
    fedilink
    English
    arrow-up
    0
    ·
    27 days ago

    Dear OP,

    I just spent some time setting up Reitti and I am very pleased with the results. Many thanks for all the work and great documentation.

    I do have a few questions:

    1. You mention that it can take hours to days for Photon to setup. How do I know its done?
    2. The default external reverse geocoding is not doing anything for me, but there seems little to no info in the logs for me to try any remedy. Related to my previous comment, how would I know that photon is working correct?
    3. Is it possible to enjoy the map view in color in stead of the black and white?

    Thanks for your time.

    • danielgraf@discuss.tchncs.deOP
      link
      fedilink
      English
      arrow-up
      0
      ·
      27 days ago

      Cool, thanks for the feedback.

      For: 1: There should be something about downloading in the Photon logs. You can check with docker compose logs photon. I do not remember how long it took to download the index for Germany, but it was noticeable. It depends a lot on how you are connected to the internet and then how long it takes to extract the index.

      2: You should also see that in the log of Photon. If the default does not work reliably, you can create an account on Geoapify; it is free, and you get 3000 reverse geocode requests per day. I personally have Photon for DE and then the default service and additional Geoapify.

      3: Yeah, I was also thinking about that. In the end, a per-user setting and then the overlay should be disabled, but it could take a while until I can get to it.

  • warmaster@lemmy.world
    link
    fedilink
    English
    arrow-up
    0
    ·
    1 month ago

    This looks amazing, congratulations and thank you for making it FOSS. I was wondering if you are considering integrating with Home Assistant.

    • danielgraf@discuss.tchncs.deOP
      link
      fedilink
      English
      arrow-up
      0
      ·
      1 month ago

      Thanks :)

      No, did not occur to me. What would the integration look like? Connecting it to the message bus to receive location updates? Honestly it is a couple years ago I played with HA.

      • warmaster@lemmy.world
        link
        fedilink
        English
        arrow-up
        0
        ·
        30 days ago

        I have the HA app on my phone, it reports my location back to my HA server.

        I would like if Reitti could retrieve my location from my HA server, instead of asking me to upload it again to Reitti. Uploading my location in short intervals drains the battery very fast, it’s something I want to avoid if I can.

        Additiinally, I don’t want to expose anything to the internet. So I pay for the Home Assistant cloud subscription that does it for me in a more secure manner than what I could implement with the little free time I have. Reitti could retrieve my location more securely if it did so without exiting my LAN.

        • danielgraf@discuss.tchncs.deOP
          link
          fedilink
          English
          arrow-up
          0
          ·
          edit-2
          29 days ago

          I had a similar setup with Home Assistant in the past so I understand your usecase. For Reitti to detect visits somewhat reliable it needs at least one datapoint of location data a minute. We build location clusters with minimum 5 points in 5 minutes. If HA tracks that often it should work. HA probably tracks more than that.

          I could add an integration that Reitti fetches the data from Home Assistant. Do you mind in creating a feature request?

      • pyr0ball@lemmy.dbzer0.com
        link
        fedilink
        English
        arrow-up
        0
        ·
        1 month ago

        Home automation using geofencing, and my partner likes to get a notification when I’m heading home from the office

      • rumba@lemmy.zip
        link
        fedilink
        English
        arrow-up
        0
        ·
        1 month ago

        Location sensor would be a good minimum bar.

        A custom card for your app that is just basically a iframe into your app with auth would also be pretty decent. Your version of a map looks really nice.

        Maybe surfacing metrics of distance traveled or number of geolocations.

        I’ll have to install the app and play around with it to make other recommendations but those are the first things that come to mind.

  • Kernal64@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    0
    ·
    1 month ago

    This looks really cool! I just have one question. Is it possible to just install this like normal software on a Linux machine or does it require Docker?

    • danielgraf@discuss.tchncs.deOP
      link
      fedilink
      English
      arrow-up
      0
      ·
      1 month ago

      Thank you.

      At the moment i do not have any plans of providing a way of running it without docker. Mainly because of time to support that.

      Since it is a Spring-Boot-Application it would be possible to create a jar file which you can execute or deploy as a service with systemd. But then you have to make sure all prerequisites are also running. That is the one thing I like about docker and especially docker compose.

      But short answer: Yes, it is possible but you are on your own at the moment. I would help and maybe we can add a section to the readme how to do it.