Release history
geopulse releases
A self-hosted, privacy-first location timeline platform: an open-source alternative to Google Timeline with automatic trip detection, Immich integration, and rich analytics.
All releases
32 shown
- Regenerate timelines if affected by previous over‑matching issues; adjust `GEOPULSE_GEOCODING_CACHE_MAX_BBOX_AREA_KM2` for stricter matching as needed.
- Configurable `GEOPULSE_GEOCODING_CACHE_MAX_BBOX_AREA_KM2` with default 5000 km² to limit bounding‑box size
- Automatic dropping of provider entries whose bounding boxes exceed the configured maximum
Full changelog
GeoPulse v1.29.1
This is a focused patch release that hardens reverse-geocoding cache behavior and prevents broad location over-matching caused by oversized provider bounding boxes.
Highlights
- Added a bounding-box safety guard for reverse geocoding cache entries.
- Oversized provider bounding boxes are now dropped automatically.
- Added configurable maximum bbox area:
GEOPULSE_GEOCODING_CACHE_MAX_BBOX_AREA_KM2- Default:
5000km²
In some datasets, very large provider bounding boxes could cause unrelated points to be matched to the same cached geocoding location. This patch reduces that risk and improves location grouping reliability.
Configuration
You can tune the safeguard with:
GEOPULSE_GEOCODING_CACHE_MAX_BBOX_AREA_KM2=5000(default)
Set it lower for stricter matching behavior.
You might want to regenerate your timeline (Timeline Preferences -> Regenerate Timeline) if you're affected by this issue.
- City/country normalization mapping on Reverse Geocoding page for standardizing location names
- New travel achievements for trains and flights
- "Open in Google Maps" action added to Friend Live tooltip
Full changelog
GeoPulse 1.29.0
This release focuses on better location quality, richer achievements, smoother map behavior, and stronger backend
stability.
New Features
- Added city/country normalization mapping on the Reverse Geocoding page, so location names can be standardized more
reliably. You can add rules how to rename existing and new country or city based on your preference / language. - Added new travel achievements for trains and flights, giving more milestone coverage as your trip history grows.
- Added an "Open in Google Maps" action in the Friend Live tooltip for faster external navigation.
Improvements
- Improved Friend Live UX by keeping your manual map position instead of forcing re-centering in case if the user
moved mouse after selecting a friend. - Improved mobile readability on Timeline Reports with updated responsive table styles.
- Upgraded Quarkus and backend libraries to current stable versions for better platform health and maintainability.
Bug Fixes
- Fixed timeline edge cases by including short trips between stays, preventing disconnected stay-to-stay segments.
- Fixed Friend Live e2e-related regressions and supporting test stability updates.
- Added search capability for places during Trip planning
- Displays last known battery level on Friends Live tab
Full changelog
GeoPulse 1.28.2
Re-implemented how we add new places during Trip planning
Improved how we add new places we want to visit during a Trip planning. Added option to Search the place, not only pointing it on the map
Added last known battery level on Friends Live tab
See https://github.com/tess1o/geopulse/issues/459
Do not fail when Admin deletes an invited user
See https://github.com/tess1o/geopulse/issues/457
- Search option for Add Missing Timeline Data journey
- Improved UI/UX for Edit Trip dialog
- Photon enabled and fallback geocoding provider by default
Full changelog
GeoPulse 1.28.1
Added Search option on the [Add Missing Timeline Data] journey. You can search for the place from your selected Geocoding provider
When you're trying to recreate your timeline (when you don't have GPS data available) you can now search for places using Geocoding services instead of manually clicking on the map
Improved UI/UX for [Edit Trip] dialog
Made the datepicker smaller, fixed colors for datepicker in dark mode, etc
Improved UI validations on [Create Share Links] journey
When password doesn't match minimum length requirement we now show proper validation message
Made Photon enabled and fallback geocoding provider by default
Previously Nominatim was used as Primary provider and fallback was disabled. Now default settings (for everyone who did not override it) are: Nominatim - primary, Photon fallback. If you changed these settings previously - no changes to you
- Manual timeline data creation for missing GPS periods
- Settings search across Profile, Timeline, Admin Settings
- Auto-reject GPS points with negative accuracy
Full changelog
GeoPulse 1.28.0
In this release I added new features to reconstruct your timeline for time when you don't have any GPS data, improved search by allowing users to search for any settings and quickly navigate to the, add auto-reject of GPS points with negative accuracy.
Added button [Add Missing Timeline Data] to manually create Stays/Trips when you didn't have GPS data available
From Timeline page or a Trip page you can click on [Add Missing Timeline Data] button and manually add stays/trips for any period of time. The system will generate GPS points for given input with correct speed and coordinates to ensure the Timeline Generation algorithm can recreate timeline properly.
See https://github.com/tess1o/geopulse/issues/452 for more details
Added Settings search to main search input and on Profile/Timeline Preferences/Admin Settings pages.
Improved search functionality so you can search not only for Locations/City/Country but all Settings in the app (from Profile tab, Timeline Preferences and Admin Settings):
Additionally added such search buttons to corresponding setting pages.
Added rejecting GPS points with negative accuracy (enabled by default)
Auto reject GPS points with negative accuracy. See https://github.com/tess1o/geopulse/discussions/451
It's enabled by default. You can disable this feature by setting GEOPULSE_GPS_FILTER_NEGATIVE_ACCURACY_ENABLED=false
- New Version checker in main menu and Home page
- Improved k8s helm charts termination and grace period handling
- Improved highlighted trip tooltip and path coloring
Full changelog
GeoPulse 1.27.1
This is a small release to fix some bugs and add "New Version" checker in main menu and on the Home page.
- Added New Version information in main menu and Home page
- Improved k8s helm charts with respect to termination/grace period - see https://github.com/tess1o/geopulse/pull/450 and thanks to @dcelasun for contribution
- Improved highlighted trip tooltip and coloring the path
- Fixed several issues related to Vector maps
- Fixed wrong longitude when a new trip is planned (edge case)
- Selectable friend trail duration (1h, 6h, today) on Friend Live map
- Language support for Google Maps Reverse Geocoding
Full changelog
GeoPulse 1.27.0
Trip replay
In this release I added a Trip Replay for a selected trips (for CAR only for now). It works for Vector maps only. It works in both 2D and 3D modes. For 3D I can suggest to select tile styles that support terrains. For instance https://api.maptiler.com/maps/streets-v4/style.json?key=YOUR_KEY_HERE.
Added coloring (green, yellow, red) for selected trips
See https://github.com/tess1o/geopulse/issues/433 - for CAR trips it adds coloring depending on your speed and how long you moved from point X to Y during your trip. Like traffic lights.
Added option to select friend trail duration (1h, 6h, today) on Friend Live map
See https://github.com/tess1o/geopulse/issues/445
Google maps reverse geocoding upgrades
- Added language support for Google Maps Reverse Geocoding - see https://github.com/tess1o/geopulse/discussions/448
- Fixed Google Map Api key env variables - see https://github.com/tess1o/geopulse/issues/446
Fixed time picker on GPS Data page
See details here - https://github.com/tess1o/geopulse/issues/444
- Vector maps support with custom styling (raster maps remain default)
- 12/24h time format selection alongside EU/US/ISO date formats
- Device.uniqueId support for Traccar integration to separate multiple users per endpoint
Full changelog
GeoPulse 1.26.0
New Features
-
Added Vector maps
Previously GeoPulse supported only Raster maps via Leaflet. Starting from this release you can choose between Raster and Vector maps. You can change the map type from Menu -> Profile -> Display (/app/profile?tab=timelineDisplay). You can specify your preferable custom map style (for both raster and vector maps):
By default for now we keep Raster maps enabled. I will change this in the future once the Vector map implementation is more polished and fixed.
-
Added 12/24h time format support - #443
Together with the Date Format (EU/US/ISO) you can now select 12/24 hour time format (24h is default):
-
Added device.uniqueId support for the Traccar integration
Since traccar sends all users data to one endpoint we need a way how to separate different Traccar users in GeoPulse. See #442
-
Added Regenerate Coverage button
Added Regenerate Coverage button and automatic coverage regeneration after file import. See #437
Fixes
-
Fixed bar chart label sorting - see #441
The labels were sorted incorrectly when December (12 month) and January (1st month) were on the same chart.
-
Fixed geofences alerts concurrency issue - see #436
The system will not send multiple geofences events when batch gps points are received. Also allowed to disable in-app notifications and keep only external notifications.
- Trip collaboration with per-user access roles (Viewer, Editor)
- Custom avatar upload (PNG/JPEG/WEBP)
- Unplanned trip support with later conversion to scheduled trips
- home page redesign
- data gap to stay conversion option
- External MQTT over TLS with mTLS support
- multi-subject geofence rules
- geofence events redesign
- Geofencing with event tracking and notifications
- Friends Live filters
- Trip Planner Google Maps integration
- Trip Planner with planned stops and status views
- AI friend data resolution
- OwnTracks telemetry support
- Traccar and Colota GPS integrations
- 60-minute friend location trails
- default date range preferences
- Preferences menu renamed to Timeline Preferences
- Manual movement type override with preservation
- fullscreen map mode
- quick stay renaming
- GeoNames normalization for Immich photo matching
- Optional CAR movement type
- date picker first day sync with format
- Date format preference
- expanded Immich integration
- System theme
- Trip/period tags in Place Visits and analytics
- date preset dropdown improvements
- better heatmap visuals
Enhanced Location Analytics Map interface and user experience, resolved authentication error in GPSLogger integration.
- Coverage Explorer with grid overlay
- Location Analytics map tab
- dedicated GPSLogger source
- HeatMap on Rewind page
- server-side drop folder imports
- Immich v2 support
- new Display tab on Profile page
- dynamic page titles
Fixed issues on GPS Data and Period Tags pages, improved CI/CD pipeline with backend/frontend artifact extraction for manual installation, implemented comprehensive e2e tests, and added Help&Support page.
- Multi-selection of GPS points
- enhanced stop detection configuration
- AI optimization with custom implementation
- Chunked file upload for large imports
- import settings management
- documentation search
This is a HotFix to fix a bug that prevents geopulse-backend server to start (for new users with default `.env` file): ``` geopulse-backend | Failed to load config value of type class java.lang.String for: geopulse.oidc.callback-base-url ``` See issue https://github.com/tess1o/ge
- Custom AI system message override
- per-source GPS duplicate detection
- custom OIDC provider icons
- Period Tags for timeline organization
- flexible login controls
- non-root Docker support
- Gap trip inference
- OwnTracks POI to favorite location auto-creation
- Friends timeline redesign with live map
- custom map tiles on shared pages
- geocoding language preference support