After one month of development I want to present a short update on the progress of Reitti. We will start with a short introduction for the ones which do not know about it.

What is Reitti?

Reitti is a personal location tracking application designed to help users rediscover their movement patterns and revisit meaningful places from their past. The project focuses on transforming raw location data into accessible personal memories. As someone with aphantasia (inability to visualize memories), the Immich integration has been particularly valuable for me. Being able to see photos from specific locations and dates helps tremendously in reconstructing and remembering past experiences.

New Features

  • custom tiles server support added
  • added "Shared Instance" integration. This allows you to display the timeline data of other users. Even on other instances of Reitti. Perfect to connect with your friends and family. This feature supersedes the "Connected Accounts" feature and replaces it.
  • we have added OIDC Support to the login. You can now connect Reitti to your Provider and benefit from having to log in only once.
  • there is now a Live-Update Mode. This refreshes the map as soon as new data arrives
  • in companion to the Live-Update Mode, we also added full-screen functionality to have Reitti displayed in all its glory.
  • every user can now select his home location in the settings. This is used when displaying a day without any data.

Upcoming Features

Here are some ideas I will tackle next.

  • Replay Mode - Watch your day unfold step by step with animated playback of your movements
  • Long Distance Trip Enhancement - Improved UI specifically designed for viewing cross-country travels and extended journeys
  • Multi-Day Selection - Select and analyze patterns across multiple days simultaneously
  • Enhanced Statistics - Expanded stats section with more meaningful insights and fun discoveries about your movement patterns

Support & Community

Get Help:

IRC: irc.dedicatedcode.com

GitHub Issues: Open a new ticket for bugs or feature requests

Support the Project: https://ko-fi.com/danielgraf

Project Repository: https://github.com/dedicatedcode/reitti

Documentation: https://www.dedicatedcode.com/projects/reitti/overview/

I'd love to hear what you think.

Final words

I want to thank two new contributors since the last release for their effort on expanding and improving Reitti for everybody. Thanks a lot Elyviere and Terrance! πŸ™

all 8 comments

sorted by: hot top controversial new old
[–] 12 points 1 year ago (1 child)

Great write up and thanks for explaining why you created it and also about the immich integration.

If it wasn’t for the immich integration I’d probably pass but I’m definitely gonna check it out now.

  • source
  • hideshow 1 child comment
  • [–] 5 points 1 year ago (1 child)
  • [–] 2 points 1 year ago (1 child)

    I am 100% checking this out!

  • source
  • hideshow 1 child comment
  • [–] 1 point 1 year ago (1 child)

    I love the integrations with immich and owntracks, as well as having an OIDC login. What kind of resources does this need for a server?

  • source
  • hideshow 1 child comment
  • [–] [S] 3 points 1 year ago

    Hi @themadcodger@kbin.earth, thanks for opening the discussion on https://github.com/dedicatedcode/reitti/discussions/176.

    As I mentioned there: It depends on your usage. Reitti on its own could probably run with 512MB of RAM. This would probably also work while ingesting data from one of the integrations. I doubt that imports of data, spanning more than one day, will work. We already stream the uploaded data but in the end, it has to go temporally into RAM. Either in Reitti itself or in Redis or in the DB.

    For anyone interested. These are the numbers on my host for the stack idling and waiting for data.

    ONTAINER ID   NAME                CPU %     MEM USAGE / LIMIT     MEM %     NET I/O           BLOCK I/O         PIDS
    222a0ed74fe7   reitti-reitti-1     0.10%     392MiB / 30.77GiB     1.24%     221MB / 103MB     2.11MB / 35.4MB   87
    76c9317352bc   reitti-postgis-1    0.00%     83.38MiB / 30.77GiB   0.26%     67.7MB / 144MB    66.4MB / 145MB    16
    06747b08882d   reitti-rabbitmq-1   0.46%     154.8MiB / 30.77GiB   0.49%     84.7MB / 91.3MB   46MB / 86.4MB     57
    5012afdf4688   reitti-photon-1     0.42%     492.6MiB / 30.77GiB   1.56%     124kB / 5.51kB    616MB / 256MB     121
    ddbc854a3940   reitti-redis-1      0.50%     4.875MiB / 30.77GiB   0.02%     52.2MB / 232MB    2.34MB / 164kB    6
    
    
  • source
  • parent
  • 34 comments in c/selfhosted@lemmy.world view that post
    [–] 1 point 1 year ago (1 child)
  • [–] 1 point 1 year ago (3 children)

    So I'm currently using Dawarich but I'm intrigued by this alternative. However, I found no way to export my data from Reitti, so I feel like it'd hold my data hostage until the feature would be added.

    Alternatively, maybe there's a way to report location to both at once? I'd rather not run two different apps to report my location to both at the same time, however. I guess it would be possible to make a small app that I run on my server that submits the location to both at the same time, but that would be some work.

  • source
  • hideshow 3 child comments
  • [–] [S] 1 point 1 year ago (2 children)

    Hello @chellomere@lemmy.world , totally understandable point. I stated on another thread that I probably won't add an export function since we discard some points of the raw data before Reitti processes it. So even if I add an export function, it will be less than the original data.

    Some solutions to your problem could be:

    • post your points into dawarich and update Reitti by hand using the GPX import. That is actually the way I did it in the beginning of development. GPX logger also saves the GPX files on your phone if you use that.
    • another user pointed me to the owntracks recorder. Your data would be stored there and Reitti can be attached to the recorder. If there is a integration in dawarich, this could solve your problem for updating two apps.

    I also considered writing a proxy like you mentioned which could delegate to two endpoints but then decided at one point it would not be worth the hassle. I stopped using dawarich but I am also biased πŸ˜…

  • source
  • parent
  • hideshow 2 child comments
  • [–] 1 point 1 year ago (1 child)

    I might initially go with the option to manually import into Reitti, just to see what it can do.

    Regarding the second option, how do you attach Reitti to owntracks recorder?

  • source
  • parent
  • hideshow 1 child comment
  • [–] 1 point 1 year ago (2 children)

    I tried installing it but the log is showing this error:

    `eitti-1 | 2025-07-22T02:46:51.575Z ERROR 1


    [ main] o.s.b.web.embedded.tomcat.TomcatStarter : Error starting Tomcat context. Exception: org.springframework.beans.factory.UnsatisfiedDependencyException. Message: Error creating bean with name 'tokenAuthenticationFilter' defined in URL [jar:nested:/app/app.jar/!BOOT-INF/classes/!/com/dedicatedcode/reitti/config/TokenAuthenticationFilter.class]: Unsatisfied dependency expressed through constructor parameter 0: Error creating bean with name 'apiTokenService' defined in URL [jar:nested:/app/app.jar/!BOOT-INF/classes/!/com/dedicatedcode/reitti/service/ApiTokenService.class]: Unsatisfied dependency expressed through constructor parameter 0: Error creating bean with name 'apiTokenJdbcService' defined in URL [jar:nested:/app/app.jar/!BOOT-INF/classes/!/com/dedicatedcode/reitti/repository/ApiTokenJdbcService.class]: Unsatisfied dependency expressed through constructor parameter 0: Error creating bean with name 'flywayInitializer' defined in class path resource [org/springframework/boot/autoconfigure/flyway/FlywayAutoConfiguration$FlywayConfiguration.class]: Unable to obtain connection from database: FATAL: password authentication failed for user "reitti" reitti-1 | -------------------------------------------------------------------------------------------------- reitti-1 | SQL State : 28P01 reitti-1 | Error Code : 0 reitti-1 | Message : FATAL: password authentication failed for user "reitti"`

    I did initially try changing the passwords in the docker-compose.yml but, after seeing this, deleted the directory and tried to start fresh. I have no idea where I'm going wrong and any help would be greatly appreciated.

  • source
  • hideshow 2 child comments
  • [–] [S] 1 point 1 year ago (1 child)

    To change the password and the user of the db you have to change it in the postgis service but also need to let reitti know that it is not the standard anymore. You need to set the environment for reitti according to the Readme

    If you want to start from scratch you probably need to delete the volumes from docker. See here

    Normally the volumes are called reitti_postgis and so on.

    Let me know if you need further assitance, i am currently on mobile but can provide more info later

  • source
  • parent
  • hideshow 1 child comment
  • [–] 2 points 1 year ago*

    Ok, So I was able to get the docker container up and running just using the defaults. I don't like using default passwords, but it's a little over my head as to where I need to change the data (maybe it would be helpful to note this as a comment in the docker-compose file).

    My next issue is setting up OwnTracks; it says "Set path to...". I don't see "path" in the OwnTracks app on iOS. I tried adding it to the URL, but OwnTracks complains that it's an unsupported URL. Where/how do I add the token to iOS OwnTracks?

    Thanks!

    Edit: Putting in the whole URL field worked; I was copy/pasting a space into the URL that I didn't see. After fixing that and checking the app I don't see any additional errors being thrown.

  • source
  • parent
  • [–] 20 points 1 year ago (1 child)

    I just spun an instance up using the docker compose file. I did disable the exposed ports for all the services except reitti itself. Is there a specific reason you keep them exposed?

  • source
  • hideshow 1 child comment
  • [–] [S] 19 points 1 year ago

    You are right, I missed that they are still open for the other services. I have mine running behind traeffik and did removed all port definitions.

    I will change the compose file to only expose Reitti.

    Thanks for the feedbackπŸ™

  • source
  • parent
  • [–] 19 points 1 year ago (6 children)

    Anyone with experience, how does this compare to Dawarich?

  • source
  • hideshow 6 child comments
  • [–] 3 points 1 year ago (4 children)
  • [–] 8 points 1 year ago

    Something that might be helpful in posts like this: Please tell us what this app does! Why would I want it? Instead we get a list of things that changed in an app that I'm not familiar with.

  • source
  • [–] 4 points 1 year ago

    Stood this up two weeks ago and been working great!

  • source
  • [–] 2 points 1 year ago (2 children)

    Could anyone explain how this works? Where do I get location data from? iPhone?

  • source
  • hideshow 2 child comments
  • [–] [S] 4 points 1 year ago (1 child)

    Reitti displays data coming either from an import. You could upload GPX, GeoJson files or export the data from google maps and import that. If you want more up to date data, you could install an app on your phone which pushes your latest locations into Reitti. GPSLogger or Owntracks are at the moment supported for that

  • source
  • parent
  • hideshow 1 child comment
  • [+] -9 points 1 year ago (10 children)

    This looks….abusable. I mean, the immich thing is nice but what’s stopping me from breaking into an iCloud account, dumping the photos into this and letting it tell me the best way to stalk someone?

    Also, Java in 2025 is an odd thing to see. What problem did using Java solve?

  • source
  • hideshow 10 child comments
  • [–] 1 point 1 year ago (5 children)

    It’s a spring framework project. It is a solid choice if Java is your language and you need a predefined web server to build on.

    Also, what is odd with Java?

  • source
  • parent
  • hideshow 5 child comments
  • [–] 1 point 1 year ago (4 children)

    Well it’s heavier and slower than native code and due in part to being an oracle technology people kind of avoid it anymore. It’s kind of a legacy language at this point.

  • source
  • parent
  • hideshow 4 child comments
  • [–] 1 point 1 year ago (3 children)

    That's the first time I ever hear someone call Java a legacy language.

  • source
  • parent
  • hideshow 3 child comments
  • [–] 1 point 1 year ago (2 children)

    It solves a problem we don’t really have anymore.

  • source
  • parent
  • hideshow 2 child comments
  • [–] 3 points 1 year ago (1 child)

    I can't say I agree or disagree because I don't have any data to prove your right nor wrong. I can say that I understand some shit people give Java but your argument was a first for me. I was intrigued.

  • source
  • parent
  • hideshow 1 child comment
  • [–] 2 points 1 year ago

    Oh please understand I read your comment as intrigue and not hostility. I welcome the conversation, including any rebuttals that could prove me wrong.

    I like it here on Lemmy. People complain about the tankies but overall it’s actually been very tame and friendly compared to Reddit and conversations like this are just a joy for me.

  • source
  • parent
  • [–] 7 points 1 year ago* (last edited 1 year ago) (2 children)

    If you're breaking into iCloud accounts, what's stopping you from mapping the exif data yourself?

  • source
  • parent
  • hideshow 2 child comments