Skip to content

Releases: dedicatedcode/reitti

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

v2.4.1

10 Nov 08:18
b9e98a9

Choose a tag to compare

Reitti 2.4.1: Bug Fix and Stability Release

Hi everyone,

I'm releasing a quick follow-up, version 2.4.1, to address a few bugs that were discovered after our recent feature release. This update focuses on improving stability and the user experience.

A Big Thank You to the Community!

I want to give a special shout-out to user SKBo, who took the time to report several small but important UI issues. Thanks to their detailed feedback, I was able to fix them all in a single pass.

  • Integration URLs Now Update Correctly: When you have multiple API tokens, selecting a different token on the mobile app integration page will now correctly update the setup URL.
  • Corrected Translations: The "Transportation Modes" settings page now properly displays all translated text as intended.
  • Conditional Menu Link: The "Manage Data" link in the main navigation will now only appear if the data management feature is actually enabled in your configuration.

All issues above were fixed in PR #455.

Other Bug Fixes

  • Fix for Unused API Tokens: I've fixed a bug that caused an error when viewing the list of API tokens if one of them had never been used. The page will now load correctly for all tokens, new or old. (PR #453)

This is a recommended update for all users to ensure a smoother experience. Thanks again for all the bug reports!

Full Changelog: https://github.com/dedicatedcode/reitti/compare/v2.4.0...v2.4.1

v2.4.0

09 Nov 16:02
229b47a

Choose a tag to compare

Reitti 2.4.0: One-Click Setup, UI Upgrades, and More!

Hello everyone,

I'm thrilled to release Reitti 2.4.0, which brings some fantastic new features focused on making setup and daily use much easier. My personal highlight in this release is the new one-click configuration for popular tracking apps, a feature inspired directly by community feedback!

🎉 New Features

One-Click App Configuration

A user on Lemmy mentioned how great it would be to have auto-configuration for tracking apps. I was hesitant at first, but after looking into it, I'm happy to say it's now a reality! You can now configure GPSLogger, OwnTracks, and Overland to talk to your Reitti instance with the simple press of a button from the Settings page. This should make getting started easier than ever.

Screenshot showing the new auto-configuration buttons for GPSLogger, OwnTracks, and Overland.

  • Implemented in PR #449.

Unified Menu & Magic Link Logout

I've introduced a unified main navigation menu across the app. This brings two key improvements:

  1. If you've accessed a shared page via a magic link, you'll now have a clear "Logout" option.
  2. It creates a consistent experience everywhere and significantly improves navigation on mobile devices, especially on pages like Settings.

Screenshot of the new unified navigation menu, shown on the settings page.

  • Implemented in PR #439.

Sorting Options for Memories

As you create more Memories, keeping them organized becomes more important. You can now sort your Memories list by start date, title, or creation date (ascending or descending) to quickly find what you're looking for.

A screenshot showing the new sorting dropdown on the Memories page.

  • Implemented in PR #443.

API Token Selection for App Integration

I've fixed an annoying issue for users with multiple API tokens. Previously, the app integration instructions would always use the most recently created token. Now, if you have more than one token, a dropdown menu will appear, allowing you to select the correct one to generate the setup URL.

Screenshot showing the new API token selection dropdown on the mobile app integration page.

  • Implemented in PR #444.

Collection of Elevation Data

Looking toward the future, I have a goal to eventually introduce 3D maps. As a first step, Reitti will now begin collecting altitude data as part of the raw location points whenever it's provided by your tracking app.

  • Implemented in PR #446.

🛠️ Other Changes & Improvements

  • Docs: I've added a direct link to the Overland setup guide in the main README file for better visibility. (PR #445)
  • Translations: As always, a huge thanks to the community and @weblate for keeping the translations up to date! (PR #433)

I hope you enjoy these new features that make Reitti easier to set up and use. Thanks for your continued support and feedback!

Full Changelog: https://github.com/dedicatedcode/reitti/compare/v2.3.1...v2.4.0

v2.3.1

07 Nov 17:09
4f1d0ad

Choose a tag to compare

Reitti v2.3.1 - Hotfix for date detection via Magic Links

This patch release fixes an issue where the new “current date” logic did not run when accessing Reitti via a Magic Link.

Fixes

  • Include util.js in index.html (#436 by @dgraf-gh)
    Resolves a user-reported issue where determining the current date failed when using a Magic Link.

Thanks to @sne11ius who reported this issue.

Full Changelog: v2.3.0...v2.3.1

v2.3.0

07 Nov 14:55
09c8c7e

Choose a tag to compare

Reitti v2.3.0 - Overland integration, Places search, and OwnTracks ping support

This release brings a big new integration, a smoother way to find your places, and improved OwnTracks handling.

Highlights

  • New: Ingest location data from Overland (iOS) to keep your timeline in sync.
  • New: Places search to quickly find and manage past places.
  • Improved: Support for OwnTracks ping events for richer, more complete data.

New Features 🎉

  • Overland integration (#432, fixes #429) by @dgraf-gh
    Reitti can now ingest data from Overland, an iOS app for location tracking.

    Overland integration screenshot

  • Better places management (#428, fixes #427) by @dgraf-gh
    The Places page now includes a search bar to help you quickly find past places.

    Places search screenshot

  • OwnTracks ping support (#431, enhancement #425) by @dgraf-gh
    Reitti now handles OwnTracks ping events, improving data continuity.

Other Changes

  • Translations update from Hosted Weblate (#415) by @weblate

Thanks to everyone who contributed and tested this release!

Full Changelog: v2.2.1...v2.3.0

v2.2.1

07 Nov 08:59
7fddb32

Choose a tag to compare

Reitti v2.2.1 — Minor UX improvements and timezone fix

This patch release delivers small quality-of-life improvements and a fix to ensure dates respect the local timezone.

What's Changed

  • Extend map bounds to the latest location when no segments are returned (#420 by @hashworks)
  • Respect local timezone when calculating the current date (#419 by @hashworks)
  • Show display name on timeline avatar hover (#418 by @hashworks)
  • Add title attribute to the timeline user element for better tooltips/accessibility (#424

Thanks to @hashworks for the contributions.

Full Changelog: v2.2.0...v2.2.1

v2.2.0

06 Nov 17:09
da6dcd7

Choose a tag to compare

Reitti 2.2.0: Smarter Places, Better UI, and a Big Thank You!

Hello everyone,

I'm excited to share version 2.2.0, which is packed with quality-of-life improvements that make Reitti smarter, more accurate, and more user-friendly. Many of these changes come directly from your feedback!

🎉 New Features & Major Enhancements

A Thank You to Our Contributors

As Reitti grows, so does the community helping to build it. To recognize everyone who contributes, I've added a new "Contributors" section to the About page. It pulls data directly from GitHub to ensure everyone who helps make Reitti better gets the credit they deserve. It's a small way for me to say thank you for being a part of this journey.

  • Implemented in PR #404.

More Accurate Visit Locations

This is a big one for location accuracy. After a great discussion with a user, I've changed how new "Visits" are placed on the map.

  • Before: A visit location was placed at the calculated center of a cluster of GPS points. This could sometimes result in the pin being in an inaccurate spot, like in the middle of a street or in a building you never entered.
  • Now: The visit location is snapped to the nearest actual data point from your path. This greatly improves accuracy, ensuring that your logged visits are at places you have physically been.
  • Implemented in PR #406.

Persistent Place Names

I know how frustrating it can be to spend time renaming "Unnamed Road" to "Mom's House," only to have it wiped out after a data recalculation. That's now a thing of the past! Manual changes you make to a SignificantPlace (like renaming it or changing its category) will now survive a recalculation.

  • Implemented in PR #414.

Smarter Home Detection for Memories

Reitti is now more intelligent at detecting your "home" location when generating a Memory, especially if you move or have multiple homes. It will now examine the week before and after your trip to reliably determine your starting and ending points, and it can even handle having different home locations before and after a Memory.

  • Implemented in PR #413.

Clearer Recalculation Status

Since clearing and recalculating data can take time, I've improved the UI feedback. The old advice message for recalculation would sometimes remain visible even after the process had started, causing confusion. I've introduced a proper state system.

  • Implemented in PR #410.

🛠️ Other Fixes & Improvements

  • Timezone Display: I fixed a bug where times on the API Usage and Data Export pages were not correctly displayed in your local timezone. They will now respect your user settings. (PR #403)
  • Avatar Display: The small fallback avatar (for users who haven't set a profile picture) was not rendering correctly. This has been fixed. (PR #400)

As always, I recommend updating to get the latest features and a smoother experience. Thank you for your continued support!

Full Changelog: https://github.com/dedicatedcode/reitti/compare/v2.1.0...v2.2.0