Skip to content

Releases: dedicatedcode/reitti

v3.4.1

23 Jan 09:52
03d1360

Choose a tag to compare

Reitti 3.4.1: Enhancing the Global Experience! 🌐✨

Hello everyone! I'm Daniel, and I'm here with a quick but important update: Reitti 3.4.1! Following closely on the heels of our 3.4.0 release, this patch focuses on refining the user experience, particularly for our growing international community. It includes a key improvement for Japanese typography and, as always, acknowledges the incredible work of our translators.

Let's dive into the details!


What's Changed

Other Changes

  • Improved Japanese Typography (#706): A huge thank you to @GunseiKPaseri for this excellent improvement! They've enhanced the display of Japanese fonts throughout Reitti by addressing the lang attribute and font fallbacks. This is something I would never have seen or even known about, and it significantly improves the visual experience for our Japanese users. It's a fantastic example of community collaboration making Reitti better for everyone!

  • Translations Update from Hosted Weblate (#703): As always, I love you guys! It is such a pleasure to see all the effort you always put into the translations. It makes me incredibly proud, especially when I look at the amazing things strangers on the internet (including me!) can achieve together. Your dedication to making Reitti accessible worldwide is truly inspiring!


New Contributors

  • While not their first contribution, a special mention goes to @GunseiKPaseri for their stellar work beyond translation! After spearheading the Japanese localization, they've now also fixed the implementation of Japanese font loading in #706. Thank you for your continued dedication!

That's the summary for Reitti 3.4.1! A targeted release to ensure a polished and inclusive user experience.

Full Changelog: v3.4.0...v3.4.1


Support & Community

I appreciate your feedback and support! Here are a few ways to connect and contribute:

  • ☕ Support My Work: If you find this project useful, you can support my efforts by buying me a coffee on Ko-fi.
  • 🐛 Report Issues: Encountered a bug or have a feature suggestion? Please open an issue on GitHub Issues.
  • 🗣️ Discuss on Lemmy: Join the conversation or reach out on Lemmy.
  • 💬 Connect on Reddit: Find me and discuss related topics on Reddit.
  • #️ Join us on IRC: Chat with us live in our IRC channel #reitti on irc.dedicatedcode.com.

Happy tracking!
Daniel

v3.4.0

21 Jan 14:29
1fc2ec6

Choose a tag to compare

Reitti 3.4.0: Global Reach and Speed Enhancements! 🌍⚡

Hello everyone! I'm Daniel, and I'm super excited to announce Reitti 3.4.0! This release is all about expanding our linguistic horizons, boosting performance, and squashing a few nagging bugs to make your Reitti experience smoother than ever. We've also had some fantastic community contributions that I'm thrilled to highlight.

Let's dive into the details!


What's Changed

New Features 🎉

🇯🇵 Konnichiwa! Japanese Language Support! (#704)

We're absolutely thrilled to welcome a brand new language to the Reitti family: Japanese! A massive, heartfelt thank you goes out to @GunseiKPaseri, who took the lead and poured incredible effort into making this happen. Your dedication makes Reitti truly global, and you are, indeed, a legend!

Here's a glimpse of Reitti in Japanese:
Bildschirmfoto vom 2026-01-21 15-18-56


🚀 Performance Boost for Path Segment Calculation! (#690)

A huge shout-out to our new contributor, @Jonsen94, who significantly improved Reitti's performance! They identified and removed an unnecessary full table scan that was occurring when calculating path segments for the map. This means your maps should now load and render much more efficiently, especially for longer trips or dense data. Thank you, @Jonsen94, for this awesome contribution!


Bugfixes 🐞

  • GeoPointAnomalyFilter IndexOutOfBoundsException Resolution (#702): In a recent release, changes to how SQL queries check for start and end times inadvertently caused an IndexOutOfBoundsException in the GeoPointAnomalyFilter. This occurred during the processing pipeline when searching for geopoints for a trip, specifically leading to errors while calculating speeds because a segment could be missing after the updated SQL logic. This has now been fixed, ensuring all trip segments are correctly processed and speed calculations run smoothly.

Other Changes

  • Translations Updates from Hosted Weblate (#682): As always, I am so incredibly grateful for all the consistent and high-quality work our translators put into Reitti every single release. Your efforts are invaluable, making Reitti accessible and enjoyable for so many people worldwide. I truly love your dedication!

New Contributors

  • A very warm welcome and a huge thank you to @Jonsen94 for making their first contribution in #690! We're thrilled to have you!

That's a wrap for Reitti 3.4.0! This release brings a beautiful new language, notable performance gains, and fixes that enhance overall stability. Update now and enjoy the improvements!

Full Changelog: v3.3.0...v3.4.0


Support & Community

I appreciate your feedback and support! Here are a few ways to connect and contribute:

  • ☕ Support My Work: If you find this project useful, you can support my efforts by buying me a coffee on Ko-fi.
  • 🐛 Report Issues: Encountered a bug or have a feature suggestion? Please open an issue on GitHub Issues.
  • 🗣️ Discuss on Lemmy: Join the conversation or reach out on Lemmy.
  • 💬 Connect on Reddit: Find me and discuss related topics on Reddit.

Happy tracking!
Daniel

v3.3.0

14 Jan 11:06
ad266e4

Choose a tag to compare

Reitti 3.3.0: Level Up Your Location Tracking with MQTT, GPSLogger, and More! 🚀

Hello everyone! I'm Daniel, and I'm absolutely thrilled to present Reitti 3.3.0! Just a short while after our 3.2.1 patch, we're back with a power-packed update that brings exciting new integrations, crucial performance improvements, and a smoother user experience, especially for new users and our self-hosting community.

This release focuses on making reitti even more flexible for ingesting your valuable location data, giving you more control, and enhancing stability across the board. Let's dive into all the cool stuff!


What's Changed

New Features 🎉

📥 Location Ingestion via MQTT (#664)

This has been a highly requested feature, and it's finally here! Reitti now supports receiving location data directly via an MQTT Broker. This new integration opens up a world of possibilities, especially if you're already running a smart home setup with services like Home Assistant and OwnTracks relaying data via MQTT.

  • Currently, OwnTracks messages are fully supported.
  • This simplifies many setups: if you already have OwnTracks transmitting to an MQTT broker, integrating with reitti requires only configuration within reitti itself, no additional changes to your existing setup!
  • If you need support for other MQTT message types, please don't hesitate to create a feature request. We're eager to expand!

🗺️ Dedicated GPSLogger Ingestion Endpoint (#681)

GPSLogger now has its very own dedicated ingestion endpoint, separate from OwnTracks! This is a significant under-the-hood improvement for performance:

  • Previously, the OwnTracks endpoint (which also served GPSLogger) would query external services and the database for friend locations to display in the OwnTracks app. For GPSLogger, which often sends an entire day's worth of points in one go, this was an unnecessary and massive slowdown. The longer your day, the longer it took to process those points!
  • With its new endpoint, this overhead is gone for GPSLogger. To benefit from this performance boost, please navigate to Settings > Integrations and follow the setup guide for GPSLogger again. In short, simply replace owntracks with gpslogger in the path, or use the convenient autoconfigure button!

🛠️ Restructured Integrations Page (#668)

Adding MQTT configuration made it evident that our old integrations page layout wasn't cutting it anymore. I've given it a complete redesign!

  • It's now much clearer and easier to see exactly which integrations are available.
  • Integrations are no longer hidden behind submenus, providing a more intuitive and streamlined configuration experience.
image

🗓️ Editable Start/End Times for Memories (#674)

By popular request, the Memories feature just got a powerful overhaul! You can now freely select specific start and end times for your memories. This gives you granular control to capture and review exactly the moments you want to immortalize, rather than being restricted to full days.

image

🕵️ Photon Configuration Visibility & Test (#677)

Ever wondered if your Photon reverse geocoder was configured correctly and actively working? Wonder no more! Photon's status and configuration (even when set via environment variables) are now clearly displayed under Settings > Geocoding. Even better, there's a new test connection button so you can instantly verify its functionality!

image

🔐 Improved GPSLogger Authorization (#679)

Reitti already supports multiple secure ways to specify your API token. While OwnTracks doesn't easily allow Authorization headers, GPSLogger does! We've updated the GPSLogger setup guide and the autoconfigure button to now use the more secure X-API-TOKEN header instead of URL parameters. This is a best practice for API security.


🏡 Random Default Home Location for New Users (#683)

For newly created users, the default home location used to be $(0,0)$, somewhere in the middle of the ocean. This often made the map look a bit "broken" with nothing but water in sight. Reitti now includes a curated collection of the 50 biggest cities, each with an iconic monument or place. When a new user is created, one of these will be randomly picked as their default home location, making the initial map experience much more engaging and less confusing!


Other Changes

  • Translations Updates from Hosted Weblate (#663, #678): Seriously, what our translators are doing is absolutely amazing! New languages are being added (shoutout to Turkish and Ukrainian in 3.2.0!) and existing translations are kept up-to-date, often before I've even finished translating the new features to German. I love the dedicated work you are doing. A big thank you to all of you! 🤗

  • Cleanup Job Fix for preview_visits (#685): There's a cleanup job designed to remove preview data older than a day. In a previous release, I removed the preview_visits table but unfortunately forgot to adjust the cleanup job accordingly. This caused the job to fail silently. This oversight has now been fixed, and our cleanup process is back on track!

  • Photon Download Resilience Revisited (#658): As mentioned in 3.2.1, downloading larger Photon indexes could sometimes not be resumed by the version we previously used. This issue was fixed in Photon v1.3.0. We've now reinforced this by adjusting our docker-compose.yml files to default to v1.3.0. If you rely on Photon and faced resilient download issues, please take a moment to ensure your Photon service is updated to 1.3.0 in your docker-compose.yml!


That's the incredibly rich and diverse set of updates for Reitti 3.3.0! This release significantly enhances reitti's integration capabilities, improves performance, and polishes the user experience. Update now and explore the expanded possibilities!

Full Changelog: v3.2.1...v3.3.0


Support & Community

I appreciate your feedback and support! Here are a few ways to connect and contribute:

  • ☕ Support My Work: If you find this project useful, you can support my efforts by buying me a coffee on Ko-fi.
  • 🐛 Report Issues: Encountered a bug or have a feature suggestion? Please open an issue on GitHub Issues.
  • 🗣️ Discuss on Lemmy: Join the conversation or reach out on Lemmy.
  • 💬 Connect on Reddit: Find me and discuss related topics on Reddit.

Happy tracking!
Daniel

v3.2.1

09 Jan 11:09
77a2607

Choose a tag to compare

Reitti 3.2.1: Quick Fixes

Hello Users!

This minor release brings some crucial bugfixes and clarifies an important detail, ensuring your reitti experience remains as seamless as possible. I'm always on the lookout to squash those pesky bugs and refine the experience. Let's dive in!


What's Changed

Bugfixes 🐞

  • Statistics Translation for Unknown Places (#661): There was an issue when looking at statistics for places that haven't been geocoded? That's because of a tiny, mischievous "s" in a translation key lookup. This fix ensures that unknown places are now properly labeled in your statistics page, no matter their geocoding status.

  • Resilient Photon Download Fix (#658): For those leveraging Photon for local geocoding, you might have run into issues with interrupted data downloads failing to resume, forcing a full restart. This was due to an underlying bug in older Photon versions. We've updated our default docker-compose configurations to use Photon v1.3.0, which includes a fix for this! Now, if your download gets interrupted, it should pick up right where it left off, saving you time and bandwidth. 💪


Other Changes

  • Photon Available Regions in README (#655): To avoid any confusion, our README now includes a helpful hint regarding Photon index availability. While Photon is awesome, it doesn't offer downloadable indexes for every country globally. The README now points you directly to the Photon documentation, where you can find a comprehensive list of all available regions. This should help you configure your Photon instance with confidence!

Full Changelog: v3.2.0...v3.2.1


Support & Community

I appreciate your feedback and support! Here are a few ways to connect and contribute:

  • ☕ Support My Work: If you find this project useful, you can support my efforts by buying me a coffee on Ko-fi.
  • 🐛 Report Issues: Encountered a bug or have a feature suggestion? Please open an issue on GitHub Issues.
  • 🗣️ Discuss on Lemmy: Join the conversation or reach out on Lemmy.
  • 💬 Connect on Reddit: Find me and discuss related topics on Reddit.

Happy tracking!
Daniel

v3.2.0

08 Jan 11:02

Choose a tag to compare

Reitti 3.2.0: Turbocharging Your Location Data with New Controls and Global Reach! 🚀

Hello! Hope you're all having a fantastic start to 2026. I'm thrilled to bring you our latest release: Reitti 3.2.0! This release is packed with sought-after features, crucial bug fixes, and under-the-hood enhancements designed to make your reitti experience even smoother, more secure, and globally accessible.

Let's dive into what's new and exciting!


What's Changed

New Features 🎉

🔑 Redis Cache Key Prefix Support (#632)

For our users running advanced Redis setups, reitti now allows you to set a Redis cache key prefix via the environment variable REDIS_CACHE_PREFIX. This seemingly small addition offers significant power for larger multi-tenant or managed Redis environments, enabling you to implement cleaner ACL rules and better delineate cached data. Flexibility and control, just how you like it!


🐳 GitHub Container Registry (ghcr.io) Image Publishing (#633)

Choice is good, right? For all you Docker enthusiasts who love having options, we're excited to announce that reitti Docker images are now also published to the GitHub Container Registry (GHCR)! You now have an alternative source to pull your reitti images. To use GHCR instead of Docker Hub, simply replace image: dedicatedcode/reitti:latest with image: ghcr.io/dedicatedcode/reitti:latest in your docker-compose.yml or container configuration. You'll find all the images conveniently located here: https://github.com/dedicatedcode/reitti/pkgs/container/reitti.


🛤️ BASE_PATH Support for Subdirectory Hosting (#646)

By popular request, reitti can now be comfortably hosted behind a traditional URL path rather than requiring a dedicated subdomain! Feel like it's 1995 again and serve reitti from /reitti/ or /my-tracking-app/! Simply set the BASE_PATH environment variable to your desired value. This feature required a thorough sweep and adjustment of every front-facing code path, so if you happen to spot any corner cases I might have missed (it happens!), please don't hesitate to open an issue. Your help makes reitti better!


🧠 Improved Anomaly Detection for Location Data (#648)

Bad GPS data can wreak havoc on your location history! I've completely redesigned the AnomalyDetection mechanism to a more robust moving window approach. This significantly improves the reliability of catching those pesky GPS outliers and spurious movements. What does this mean for you? Reitti should now filter out more bad data, providing an even cleaner and more accurate representation of your movements than before this release!


🌍 Turkish and Ukrainian Language Support! (#649)

We're incredibly proud and excited to welcome two new languages to the reitti family! Thanks to our amazing community translators, reitti is now available in Turkish and Ukrainian! So, a heartfelt Merhaba Türkiye and Привіт Україно to our new users! Expanding reitti's reach across the globe is a core mission, and these additions are a significant step. 🙏


Bugfixes 🐞

  • Fixed Datepicker & Timeline in Shared Live Mode (#650): Oops! After the last major redesign of the datepicker, I missed that it remained visible for users accessing reitti via a magic link with live mode enabled. This is now fixed; privacy and restricted views are back in full effect for shared live modes.
  • SELinux Compatibility for Container Startup (#651): For those running reitti in a strict SELinux environment, a problem with Java's location inside the container could prevent startup. We've set a flag during the container build that should now allow the use of executable memory in these guarded environments, resolving the issue. Enjoy smoother SELinux integration!
  • Android Timeline Import Improvement (#652): While this isn't a direct fix for the Android timeline import failing to import, I've significantly improved the logging around this process. This enhancement will be invaluable in helping us further investigate and pinpoint the actual problem in future releases. It's a stepping stone to a complete resolution!

Other Changes

  • Translations Update from Hosted Weblate (#626): Holy Batman, our translators are doing such a fantastic job! I am so proud and thankful for all the effort you are putting into this project. Your continuous dedication makes reitti accessible to more people around the world! 🤗

Support & Community

I appreciate your feedback and support! Here are a few ways to connect and contribute:

  • ☕ Support My Work: If you find this project useful, you can support my efforts by buying me a coffee on Ko-fi.
  • 🐛 Report Issues: Encountered a bug or have a feature suggestion? Please open an issue on GitHub Issues.
  • 🗣️ Discuss on Lemmy: Join the conversation or reach out on Lemmy.
  • 💬 Connect on Reddit: Find me and discuss related topics on Reddit.

Full Changelog: v3.1.0...v3.2.0


That's Reitti 3.2.0 in a nutshell! This release strengthens reitti's core, expands its reach, and gives you more tools for precise and reliable location tracking. Update now and experience the improvements!

Happy tracking!
Daniel

v3.1.0

04 Jan 13:05
819df59

Choose a tag to compare

Reitti 3.1.0: Charting New Territories in 2026 with powerful Polygon Capabilities!

Happy New Year, users of reitti! 🎉 As we kick off 2026,I want to extend a massive thank you to each and every one of you for an absolutely incredible 2025. Your feedback, contributions, and passion makes reitti what it is, and we're so excited to bring even more awesomeness your way in the new year. Wishing you all the very best for 2026! May your routes be smooth and your data plentiful!

Now, let's dive into some seriously exciting updates with Release 3.1.0 and its powerful new features!


What's Changed

New Features 🎉

🌐 Introducing Polygon Boundaries for Places! (#581)

For too long, reitti's place recognition relied on a simple radius around a (latitude, longitude) point. While effective for many scenarios, what about those trickier spots? Think about sprawling malls, intricate airport terminals, or uniquely shaped parks. Places where a basic circle just doesn't quite capture the reality. Well, wonder no more!

image

With reitti 3.1.0, you can now define custom polygon boundaries for your places instead of a fixed radius! This is a game-changer for complex locations, giving you incredibly precise control over how reitti identifies your time spent there. We've introduced a slick new 'Edit Place' page, complete with an embedded polygon editor; it's intuitive, powerful, and ready for you to start mapping your world with unparalleled accuracy. If you zoom in into your map, you will also see them at a certain zoom level.

image

Important Note: This is an addition to reitti's capabilities, not a replacement! If your current radius-based places work perfectly for you, there's absolutely no need to change a thing. But for those ready to delve into truly custom geometries, this feature is here to elevate your reitti experience!


🤝 Owntracks Friend Data Support (#617)

Ever wished you could see your reitti friends directly in Owntracks? Your wishes have been heard! reitti 3.1.0 now elegantly integrates with Owntracks, sending friend card data back. This means if you share data with a reitti user, their location can now magically appear in your Owntracks app! It's cross-platform friendship at its finest.

Screenshot_20260103_183055_OwnTracks


Paginated Data Export (#601)

For our power users dealing with vast amounts of location data, exporting could sometimes... challenge your browser's patience. Not anymore! The export-data page now features pagination, gracefully displaying your location points in digestible chunks. Say goodbye to potential browser freezes and hello to smooth data exploration, even for those monumental time ranges!

image

Google Records (GPX Test Tool) (#597)

Our GPX Test Tool just got a major upgrade! Recognizing the diverse origins of your location data, we've enabled it to import Records.json files directly from Google. This slashes the effort required to load your data for analysis and testing. More data, less hassle!


Enhanced Data Deletion Safeguards (#610)

We take data integrity seriously! For those with Data Management enabled, deleting all your reitti data now requires an additional, explicit verification step. It's a small but mighty addition, ensuring that irreversible actions are truly intentional. Your data, your control!


🔐 Docker Secrets Support (#612)

Hello, Containerization Enthusiasts! For our self-hosting champions utilizing Docker, reitti now officially supports Docker Secrets. You can now keep your sensitive configuration safe and sound. Simply append _FILE to any environment variable key (e.g., DB_PASSWORD_FILE), and reitti will intelligently load its value from the specified secret file. Secure containers, happy reitti!


🇳🇱 Dutch Language & Localization (#615)

And last but certainly not least for new features: Hallo Nederland! We're thrilled to announce that reitti is now available in Dutch! Expanding our language support is a priority, and we're excited to welcome more users in their native tongue. Many thanks to our amazing community translators for making this happen!


Other Changes

But wait, there's more! Alongside these shiny new features, we've squashed some pesky bugs and made some crucial improvements under the hood:

  • Improved HTMX Authentication Handling (#611): Ever had your session expire and wondered why things felt a bit... off? reitti 3.1.0 now gracefully handles HTMX authentication errors. If your session expires, the next data fetch will smartly redirect you to the login screen, ensuring a smoother, more predictable user experience. No more phantom data fetches!
  • Expanded significant_places Column Lengths (#585): This one's for everyone who lives in a sprawling address like 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890, Apt 987654321, This Is An Extremely Long And Unnecessary Address Line To Exceed The Character Limit, New York, New York, NY 10001-123456789. We heard you! The significant_places table columns were a bit constrained at 255 characters. We've beefed them up considerably, so even the most verbose addresses will now fit without a hitch. Feel free to unleash your inner address poet!
  • OIDC preferred_username Fallback (#620): For our OpenID Connect users (especially those with Google as a provider), you might have noticed some hiccups if preferred_username wasn't provided. We've resolved this! reitti will now intelligently fallback to email or a combination of given_name.family_name if preferred_username is absent, ensuring smooth user identification regardless of your OIDC provider setup. Smart!
  • Minor fix for escaping User-Agent header quotes in docker-compose files (#592).
  • General stability improvements and translation updates from Hosted Weblate (#602).

💖 Support & Community

I appreciate your feedback and support! Here are a few ways to connect and contribute:

  • ☕ Support My Work: If you find this project useful, you can support my efforts by buying me a coffee on Ko-fi.
  • 🐛 Report Issues: Encountered a bug or have a feature suggestion? Please open an issue on GitHub Issues.
  • 🗣️ Discuss on Lemmy: Join the conversation or reach out on Lemmy.
  • 💬 Connect on Reddit: Find me and discuss related topics on Reddit.

As always, your feedback is invaluable. Head over to our GitHub, join the discussion, and let us know what you think!

A huge thank you again for being part of the reitti journey. Here's to an amazing 2026 filled with discovery! 🚀

Happy tracking!
dgraf-gh (your friendly reitti developer)

Full Changelog: v3.0.1...v3.1.0

v3.0.1

21 Dec 04:35
69e5d59

Choose a tag to compare

Release v3.0.1 — Hotfix

This is a minor point release addressing two critical regressions discovered shortly after the launch of version 3.0.0.

🔧 Fixes

  • Shared Instance Visit Loading (#569): Resolved an issue where shared instances failed to fetch visits correctly.
  • Tile Proxy Stability (#574): Fixed a bug where the TileProxyController would fail if no local tile cache was configured (e.g., when TILES_CACHE was set to an empty value). This is now resolved and the TileProxyController is bypassed in this constellation.

⚠️ Upgrading from v2.5.0 or earlier?

If you are bypassing v3.0.0 and upgrading directly to this version, please be aware that version 3.0.0 introduced significant breaking changes, including a new tile-cache service in your docker-compose.yml and a new ingestion pipeline architecture.

Please review the v3.0.0 Release Notes thoroughly before proceeding with the update to ensure your configuration is compatible.

Full Changelog: v3.0.0...v3.0.1

v3.0.0

19 Dec 13:47
d1369c9

Choose a tag to compare

reitti v3.0.0 - Smarter ingestion, battery-friendly tracking, faster maps 🎄

After nearly 4 weeks (our longest gap yet), v3.0.0 is ready. In the meantime, reitti crossed 1,000 stars. Currently sitting at 1,117. I am incredibly thankful for the support and feedback from this community; consider this release my Christmas gift to you. This release focuses on reliability, efficient data handling, and a smoother UI/UX.

Please review the breaking changes before upgrading.

Highlights

  • More reliable processing: A rewritten ingestion pipeline processes data in single, time-bounded batches rather than many queue messages. This reduces missed visits, makes behavior more consistent, and simplifies support/debugging around Visits and Paths.
  • Battery-friendly tracking: Reitti now interpolates GPS points between sparse samples and will also ignore overly dense points for calculations. You can use energy-saving modes (e.g., Significant Change in OwnTracks) while preserving accurate visits and trips.
  • Faster, clearer maps: Multi-year displays got a performance pass, and large numbers of photos are clustered for more responsive map interactions.
  • Practical quality-of-life improvements: Adjustable path colors per user, live log viewing and on-the-fly log level changes for admins, better mobile gestures (date picker), clearer timeline background, and more.

Breaking changes

  1. New tile-cache service (OpenStreetMap tile caching)
  • To be a good citizen with open data and speed up your maps, reitti now caches OpenStreetMap tiles by default using a small nginx proxy.
  • Does this affect you?
    • Using a custom tileserver? No action required.
    • First-time install? Already configured in the default setup.
    • Existing Docker install? Add the following service to your docker-compose.yml and make reitti depend on it.
tile-cache:
  image: nginx:alpine
  environment:
    NGINX_CACHE_SIZE: 1g
  command: |
    sh -c "
    mkdir -p /var/cache/nginx/tiles
    cat > /etc/nginx/nginx.conf << 'EOF'
    events {
      worker_connections 1024;
    }
    http {
      proxy_cache_path /var/cache/nginx/tiles levels=1:2 keys_zone=tiles:10m max_size=1g inactive=30d use_temp_path=off;
      
      server {
        listen 80;
        location / {
          proxy_pass https://tile.openstreetmap.org/;
          proxy_set_header Host tile.openstreetmap.org;
          proxy_set_header User-Agent "Reitti/1.0";
          proxy_cache tiles;
          proxy_cache_valid 200 30d;
          proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504;
        }
      }
    }
    EOF
    nginx -g 'daemon off;'"
  restart: unless-stopped
  healthcheck:
    test: ["CMD", "wget", "--quiet", "--tries=1", "--spider", "http://127.0.0.1/0/0/0.png"]
    interval: 30s
    timeout: 10s
    retries: 3

In the reitti service, add under depends_on:

tile-cache:
  condition: service_healthy
  • Opt out: Set the TILES_CACHE environment variable to an empty value to disable the cache and keep previous behavior.
  1. Changed data handling (interpolation)
  • Reitti now interpolates GPS points for all incoming data based on time and distance thresholds (previously only for Google Timeline imports).
  • This may change how Visits and Trips are computed (e.g., fewer gaps, more stable stay detection).
  • A new VisitSensitivity configuration is automatically created on the day of the update. Please review and adjust it to your needs after upgrading.

Recommendation: Make a backup before upgrading. This has been running for several days on my machines, but caution is always wise.

What’s new

Ingestion and data handling

  • Single-pipeline ingestion: Timeframe-based processing replaces multi-queue message processing for improved reliability and maintainability.
  • GPS interpolation for sparse or dense streams (feature request #489): Interpolates points when samples are close in time and distance; ignores overly frequent points for calculations. Enables accurate results with energy-saving tracking modes.

Maps and media

  • Multi-year map display optimized (#535): Significantly improved performance when visualizing long histories.
  • Photo clustering: Large numbers of photos are now clustered on the map for better performance and usability.

Customization and admin tools

  • Change path color per user (#501/#516): Customize your path color in Settings > User Management > Your Profile. Presets included; custom color supported.

    image
  • Logging section for admins (#550): Adjust log level at runtime and view live logs in the UI (no CLI required).

    image
  • Redis DB selection (#503/#504): Use the REDIS_DATABASE environment variable to point reitti at a specific Redis database index.

UI/UX improvements

  • General rendering performance improvements and cleaner look across mobile and desktop.

  • Better swipe handling for date picker (bugfix #522/#524).

  • Lighter background for the timeline container (#481/#517).

  • Geocoding actions now show spinners and have improved padding (#491/#555).

  • Fallback avatar alignment corrected (#543/#553).

    image

Tools

  • Local GPX Test Data Tool (#531/#530): Open GPX files, add/remove points, and draw paths with stops using your mouse. Runs 100% locally. Find it at docs/tools/index.html. If there’s interest, I can deploy it publicly.

    image

Internationalization

Other changes and fixes

  • Missed visits improvements and fixes (#523/#545, #551/#552).
  • Wait-and-batch processing for incoming points (#489/#511).
  • Combined additions and fixes (#513).
  • Adjust export to ignore certain points (#514).
  • Make labels translatable (#500/#515).
  • Timeline showing trips a day ahead fixed (#506/#518).
  • New screenshots for docs (#530/#521).
  • Stay detection queue stats added (#526/#527).
  • Test processing pipeline (#534).
  • Migration for new VisitSensitivity settings (#536/#537).
  • Rename SQL migration to correct naming (#536/#539).
  • Remove redundant bounds extension for latest location (#540/#541).
  • Remove redundant USER directive from Dockerfile (#523/#546).
  • Ensure consistent tests and improve reliability (#554).
  • Fixed e2e test locale string (#498).
  • Update runtime to Java 25 for performance and future-proofing (#559/#560).
  • Smaller cleanups and refinements (#561).

New contributors

Full changelog: v2.5.0...v3.0.0

— Daniel Graf (dgraf-gh) 🎄

v2.5.0

23 Nov 12:49
8689825

Choose a tag to compare

Reitti v2.5.0 Release Notes

What's Changed

This release introduces a substantial rework of the date picker component. Our primary goals for this redesign were to:

  • Smaller UI: Create a more compact and less intrusive design.
  • Day Mode Focus: Optimize the default experience for seamless daily timeline browsing, which is the most common use case.
  • Easy Mode Switching: Provide quick and intuitive transitions between day, month, and year views. Just scroll up or down in the date picker to switch between months, years or days
  • Fast Range Selection: Enable rapid selection of specific dates, months, or year ranges for efficient data filtering.

The result is a more modern, responsive, and user-friendly date selection experience throughout Reitti.
Bildschirmfoto vom 2025-11-23 13-07-40
Bildschirmfoto vom 2025-11-23 13-07-59
Bildschirmfoto vom 2025-11-23 13-08-08

New Features 🎉

  • Reworked Date Picker: The entire date picker component has been reimagined and rebuilt from the ground up (#315). This brings a snappier, more intuitive interface for navigating your timeline dates. Check out the details in #475 by @dgr-gh.
  • Airplane Transport Mode: You can now accurately categorize your flights with the new "airplane" transport mode (#480). This helps provide a more precise overview of your travel history! See the feature details in #484 by @dgr-gh.

Bugfixes 🐛

  • Improved Settings Layout: Addressed an aesthetic issue by including padding below settings sections and removing redundant margins, resulting in a cleaner and more consistent UI (#460). Fix submitted in #461 by @dgr-gh.
  • Memory Edit Panel Enhancements:
    • We've removed an old, redundant image header type that was still present in the edit memories panel, simplifying the interface (#472).
    • Crucially, this update includes significant fixes for several timezone-related issues regarding the start and end dates of memories. Your memories should now be displayed accurately, regardless of your current timezone or the timezone in which they were created. Dive into the details in #483 by @dgr-gh.
  • Path Segments Overlay Fix & Performance Boost: A tricky bug surfaced after recent raw geopoint loading improvements a couple of releases ago, causing selected trip paths to be drawn under the base path (#486). This is now fixed, ensuring your selected path is always clearly visible on top. As a bonus, we've achieved a significant performance improvement for the entire timeline by optimizing how segment points are rendered, specifically by avoiding unnecessary direct DOM manipulation. See the fix in #487 by @dgr-gh.
Bildschirmfoto vom 2025-11-23 13-13-53

Other Changes 🛠️

  • Translations Update: Our fantastic community of translators has been hard at work! This release includes the latest translation updates from Hosted Weblate, notably bringing French to 100% completion! Many thanks to everyone involved. #448 by @weblate.
  • Enhanced E2E Testing: We've further invested in and expanded our End-to-End (E2E) frontend testing framework (#218). While not directly visible to users, this ongoing effort significantly improves the overall stability, reliability, and maintainability of Reitti for future developments. #477 by @dgr-gh.
  • Date Picker End Date Fix: Resolved a specific issue where the end date for date picker selections was not always handled correctly as part of the new component. #485 by @dgr-gh.
  • URL Single Date Selection: Fixed handling of single date selections when initiated via the URL, ensuring consistent behavior (#486 - note: this is a different issue than the path segment bug with the same number). #488 by @dgr-gh.

Thanks 🙏

A massive thank you to our incredible community of translators! Your dedication, especially bringing French to 100% translation, is truly appreciated and makes Reitti accessible to more people worldwide. Thank you @skbo @sne11ius @christian-ho

And as always, many thanks to everyone who reported bugs, suggested features, and contributed to Reitti. Your feedback is invaluable!


Full Changelog: v2.4.2...v2.5.0

v2.4.2

10 Nov 10:34
a919be8

Choose a tag to compare

Reitti v2.4.2 — Fix: remove OwnTracks ping handling

This hotfix removes handling of OwnTracks “ping” messages to prevent incorrect timestamps from being recorded.

Fix

  • Drop OwnTracks ping support (#458 by @dgraf-gh)
    Ping messages were being adjusted to use the import time as their timestamp, which is incorrect. Reitti now ignores OwnTracks ping events entirely. Regular OwnTracks location and transition events are unaffected.

Full Changelog: v2.4.1...v2.4.2