github dedicatedcode/reitti v5.0.0

2 hours ago

reitti v5.0.0 – Custom Maps, Timeline Stitching, Tags, and License Evolution! 🚀

My mind’s a map. A mad sea-captain drew it
Under a flowing moon until he knew it;
Winds with brass trumpets, puffy-cheeked as jugs,
And states bright-patterned like Arabian rugs.

“Here there be tygers.” “Here we buried Jim.”
Here is the strait where eyeless fishes swim
About their buried idol, drowned so cold
He weeps away his eyes in salt and gold.

A country like the dark side of the moon,
A cider-apple country, harsh and boon,
A country savage as a chestnut-rind,
A land of hungry sorcerers.

Stephen Vincent Benét, 1931


Hey reitti community! Daniel here. I am incredibly proud and excited to present a major milestone in reitti's history: v5.0.0! 🎉 👋

This project has been a deeply personal journey for me, and v5.0.0 represents a monumental leap forward in how you can customize and enrich your location data. I’ve packed this release with highly-requested features like custom map styles, multi-device tracking under one user account, and personalized tags/notes to bring more context to your daily journeys.

🚀 Getting Started

To simplify your deployment, I’ve taken inspiration from the excellent release practices of the Immich project. Starting with this version, you will find the recommended docker-compose.yml file attached directly to the GitHub release notes. This makes it easier to grab the latest configuration and hit the ground running.

To deploy the stable v5.0.0 release using the new template:

services:
  reitti:
    image: dedicatedcode/reitti:5
  reitti-tile-cache:
    image: dedicatedcode/reitti-tile-cache:5

⚠️ BREAKING CHANGES & UPGRADE NOTICE

Because v5.0.0 is a major release with deep structural adjustments, please read the upgrade notes carefully before deploying:

  • Upgrade Instructions: Please read the step-by-step instructions available in the Reitti 5.0 Upgrade Guide.
  • Initial Database Migration: The first startup under v5.0.0 involves a major database schema migration. This process is fully automated but requires manual review after the first start to ensure everything transitioned correctly. Please be aware that this process can be slow depending on the size of your historical location dataset and server performance; do not interrupt the container while this migration runs.
  • Verify Devices and Map Styles: During migration, new default devices and default map styles are created. Please log in after the upgrade and verify that these match your expectations.

⚖️ License Transition: MIT to AGPL-3.0

Starting with version 5.0.0, reitti’s source code license is transitioning from the MIT License to the GNU Affero General Public License v3 (AGPL-3.0).

Open-source sustainability matters. As the project continues to grow, I want to permanently protect the hard work of our contributors and keep reitti open for the community. The AGPL-3.0 ensures that any modifications or improvements made to reitti must also be shared back with the community under the same open-source terms.

To keep the position of our contributors as strong as possible, no Contributor License Agreement (CLA) is required. The intellectual property remains with the individuals who wrote the code, keeping the project truly community-owned.


🚀 Main Features

1. Custom Map Styles

You are no longer locked into standard vector maps! You can now upload your own map styles, use hosted vector JSON styles, or configure custom raster template URLs.

styles

2. Multi-Device Support & The New Workbench

For the first time in reitti history, you can collect data from multiple devices under one user account using the Workbench.

  • Stitch Your Timeline: Aggregate data from secondary trackers into your personal timeline.
  • Direct Point Editing: Manually move or delete specific tracked points to clean up data.
workbench-2

3. Contextual Notes, Moods & Tags

Enrich your trips and visits with custom tags, moods, and Markdown notes to turn your timeline into a living diary.

Bildschirmfoto vom 2026-06-15 11-53-13

4. Robust Job Scheduling

Reliability is key. During the development of v5, I experimented with several approaches for the background job system: I moved from Redis queues, to JobRunr, and then to db-scheduler. Ultimately, I have landed on the "old, boring, but reliable" Quartz Scheduler. The deciding factor for this choice was the need to strictly control concurrency: Quartz allows me to clearly distinguish between jobs that can run in parallel and those that must be executed in a strict sequence, ensuring backend integrity.


🛠️ Minor Improvements

  • Map Focus on Click: Center the map on a selected user or device.
  • Dedicated Focus Mode: An active camera lock for tracking specific assets.
  • Adaptive Playback Speed: Timeline playback now dynamically adjusts based on movement.
  • Improved Algorithms: Better visit detection and smart timeline aggregation.

Bug Fixes and Stability Improvements

  • Various stability fixes: Including reduced worker connections, improved data ingestion handling, resolving UI animation stutters, and optimized GPX file upload performance.

❤️ Thank You, Contributors!

v5.0.0 is the result of immense effort, and I want to express my deepest gratitude to everyone who helped me bring this vision to life:

  • @FreshImmuc: Thank you for your incredible work on Custom Map Styles. Your vision for this feature and the heavy lifting you did on the implementation made this core part of v5.0.0 possible.
  • @christaikobo: Huge thanks for your dedication during the beta rounds! Your tremendous, detailed feedback helped me squash critical bugs and sharpen the user experience before this stable release.

🌐 A Note on Localization

I am thrilled to welcome more users to reitti through language! Our wonderful team of translators—yes, many hands make light work here—has worked hard to ensure the project is more accessible than ever. Please join me in celebrating the addition of three new languages: Portuguese, Chinese (Traditional), and Korean.

Thank you to every translator who gives their time to make reitti accessible globally.


💬 Community & Support

If you run into any issues, please report them to our GitHub Issue Tracker.

Moving forward, I am planning to phase out my usage of Reddit over the coming months. Because my time is more limited these days, I want to prioritize focusing on open platforms like Lemmy where I can foster meaningful, long-term discussions. In the future, I intend to transition my release announcements to the official website, with a dedicated blog entry serving as the central hub for all project news. You can stay ahead of the curve by subscribing to reitti's releases on GitHub. Simply add .atom to the end of our releases URL to get an RSS feed that notifies you instantly whenever a new version drops, ensuring you never miss an update even as I shift how I communicate.

On a personal note, I’m just one person working on this, and your support, patience, and enthusiasm truly make all the difference—thank you for being part of this journey with me. Everyone is encouraged to help spread the word about this release on any platform they have access to!

Happy tracking!
— Daniel

Full Changelog: v4.0.5...v5.0.0

Don't miss a new reitti release

NewReleases is sending notifications on new releases.