tess1o/geopulse

A self-hosted, privacy-first location timeline platform: an open-source alternative to Google Timeline with automatic trip detection, Immich integration, and rich analytics.

Java

1,438

956 commits

updated Oct 14, 2026

See the code

README

GeoPulse

GeoPulse Logo

The self-hosted, source-available Google Timeline alternative.

License Installation options Self-Hosted Privacy First Supported Locales

GeoPulse transforms raw GPS data from OwnTracks, Overland, Dawarich, GPSLogger, Home Assistant, Traccar, Colota and other sources into a searchable timeline of stays, trips, and movement patterns. It runs fully on your own infrastructure and integrates with Immich, Memos, and Weather so photos, notes, and conditions appear directly on your map history.

GeoPulse Timeline with route map and stay and trip cards

Comprehensive timeline visualization with automatic trip classification.


Quick installation

# Create directory and download config
mkdir geopulse && cd geopulse
curl -L -o .env https://raw.githubusercontent.com/tess1o/GeoPulse/main/.env.example
curl -L -o docker-compose.yml https://raw.githubusercontent.com/tess1o/GeoPulse/main/docker-compose.yml

# Start
docker compose up -d

Access: http://localhost:5555
Note: For production, review your .env for security-related settings first.

Need MQTT support for OwnTracks, Kubernetes, Unraid, Proxmox or bare-metal installation? See the deployment options.


Why GeoPulse

  • Self-hosted, no telemetry: Your location data remains on your own infrastructure.
  • Open ecosystem: Works with popular GPS apps (OwnTracks, Overland, GPSLogger, Home Assistant, Colota, Traccar) and tools like Immich, Memos, and Weather.
  • Full data ownership: Import historical data and export your data in standard formats anytime.
  • Lightweight runtime: Typically under 100MB RAM and under 1% CPU in regular usage.
  • Accessible & Localized: Currently available in English and Ukrainian, ensuring an inclusive experience across different regions.

Features

Timeline & Analysis

  • Smart Detection: Automatically converts GPS points into stays, trips, and data gaps.
  • Custom Logic: Fully configurable detection sensitivity and travel mode classification.
  • Deep Insights: Analytics for distance, visit frequency, and movement patterns over time.
  • Map Matching: Valhalla-backed route refinement makes noisy trip paths follow roads and paths while raw GPS remains authoritative.
  • Panoramax: Optional public street-level imagery coverage and photo viewing on Timeline maps.
  • Immich Integration: Photos from your library appear directly on your map timeline.
  • Memos Integration: Timestamped notes from Memos can appear alongside your timeline.
  • Weather Integration: Current weather enrichment is enabled by default for trips, stays, map layers, and journey insights; historical backfill is admin opt-in. See Weather processing architecture.

Sources & Syncing

  • Real-time Tracking: Supports OwnTracks (HTTP/MQTT), Overland, GPSLogger, Home Assistant, Traccar, Dawarich or Colota.
  • Universal Import: Bulk import from Google Timeline, GPX, GeoJSON, OwnTracks exports, and CSV.

AI Chat & MCP

  • AI Chat: Bring your own OpenAI-compatible key for AI-assisted insights.
  • MCP Server: Read-only, API-token-authenticated tools for AI clients to query their timeline and permitted friend data.

Sharing & Privacy

  • Friends System: Per-user visibility controls for live location and history.
  • Guest Access: Shareable links with optional password protection and instant revocation.
  • Multi-user Ready: Built-in invitations, roles, and admin audit logs.
  • Enterprise Auth: OIDC/SSO support alongside standard username/password login.

Platform & Performance

  • Lightweight: Typically under 100MB RAM and 1% CPU usage.
  • Self-Sovereign: No telemetry, no analytics beacons, and no third-party tracking.
  • Data Freedom: Full data export and per-account deletion support.
  • Backup & Restore: Encrypted, password-protected full backups with manual restore and scheduled automatic backups.

📸 Feature Tour

Timeline with a selected car trip being replayed on the map

Timeline & route replay
Stays, trips, and data gaps with travel modes, weather, and step-by-step trip replay.

Location Analytics map with visited places

Location Analytics
Explore every visit by map, city, and country.

Dashboard with distance activity charts

Dashboard
Selected period, 7-day, and 30-day overviews with charts, top places, and route stats.

Rewind monthly summary

Rewind
Monthly and yearly summaries of distance, trips, highlights, and heatmaps.

Journey Insights with travel statistics

Journey Insights
Countries, cities, time patterns, weather, milestones, and badges.

City details page for Boston

City details
Visit overview, top places, and every visit in a city.

Trip Workspace with planned stops on the map

Trip Plans
Plan stops with travel modes and routed legs, then compare the plan with what you actually visited.

Location Sources page with setup instructions

Location Sources
Connect OwnTracks, Overland, GPSLogger, Home Assistant, Traccar, Dawarich, or Colota.

GPS Data page with raw location points

GPS Data
Inspect, filter, and export raw location points.

Data export with formats and data types

Export & Import
Full backups and GPX, GeoJSON, OwnTracks, or CSV exports with a date range.

Personal Settings page

Personal Settings
Language, time zone, units, map appearance, and connected apps.

Administration overview with instance health

Administration
Instance health, usage, users, backups, and audit logs.

System Settings with authentication options

System Settings
Authentication, geocoding, weather, map matching, and more without restarts.

GeoPulse Timeline on a phone

Mobile
The web app works on phones and installs as a PWA.

Deployment Options

Choose the installation path that matches your environment:

Installation typeBest forGuide
Docker ComposeFastest path for local and single-server useDocker Compose Guide
UnraidUnraid NAS and homelab servers using Docker ComposeUnraid Guide
Proxmox VE LXCProxmox homelabs and VM hosts that prefer LXC containersProxmox VE LXC Guide
Kubernetes / HelmManaged clusters and production Kubernetes environmentsKubernetes Quick Install
Helm values referenceAdvanced Helm customizationHelm Values Reference
Manual installationBare metal servers or VMs without Docker/KubernetesManual Installation Guide
Environment configurationReviewing all runtime settingsEnvironment Variables Reference

Kubernetes / Helm Quick Install

helm repo add geopulse https://tess1o.github.io/geopulse/charts
helm repo update
helm install my-geopulse geopulse/geopulse

Or install the signed OCI chart from GHCR: helm install my-geopulse oci://ghcr.io/tess1o/charts/geopulse

Post-deployment steps:

  1. Create the first account to become admin automatically, or set GEOPULSE_ADMIN_EMAIL for an explicit admin email.
  2. Finish setup in the Admin Panel.
  3. See Initial Setup Guide for more.

📖 Docs & Next Steps


📜 License & Commercial Use

GeoPulse is licensed under the Business Source License 1.1 (BSL 1.1).

  • Free for personal, educational, and non-commercial use.
  • Commercial use requires a separate commercial license.

See LICENSE for full terms.
For commercial licensing: kerriden1@gmail.com

gps-tracker
gps-tracking
java
owntracks
postgis
postgis-database
postgres
privacy
quarkus
quarkus-native
self-hosted
timeline
vue3

tess1o/geopulse

A self-hosted, privacy-first location timeline platform: an open-source alternative to Google Timeline with automatic trip detection, Immich integration, and rich analytics.

Java

1,438

956 commits

updated Oct 14, 2026

See the code

README

GeoPulse

GeoPulse Logo

The self-hosted, source-available Google Timeline alternative.

License Installation options Self-Hosted Privacy First Supported Locales

GeoPulse transforms raw GPS data from OwnTracks, Overland, Dawarich, GPSLogger, Home Assistant, Traccar, Colota and other sources into a searchable timeline of stays, trips, and movement patterns. It runs fully on your own infrastructure and integrates with Immich, Memos, and Weather so photos, notes, and conditions appear directly on your map history.

GeoPulse Timeline with route map and stay and trip cards

Comprehensive timeline visualization with automatic trip classification.


Quick installation

# Create directory and download config
mkdir geopulse && cd geopulse
curl -L -o .env https://raw.githubusercontent.com/tess1o/GeoPulse/main/.env.example
curl -L -o docker-compose.yml https://raw.githubusercontent.com/tess1o/GeoPulse/main/docker-compose.yml

# Start
docker compose up -d

Access: http://localhost:5555
Note: For production, review your .env for security-related settings first.

Need MQTT support for OwnTracks, Kubernetes, Unraid, Proxmox or bare-metal installation? See the deployment options.


Why GeoPulse

  • Self-hosted, no telemetry: Your location data remains on your own infrastructure.
  • Open ecosystem: Works with popular GPS apps (OwnTracks, Overland, GPSLogger, Home Assistant, Colota, Traccar) and tools like Immich, Memos, and Weather.
  • Full data ownership: Import historical data and export your data in standard formats anytime.
  • Lightweight runtime: Typically under 100MB RAM and under 1% CPU in regular usage.
  • Accessible & Localized: Currently available in English and Ukrainian, ensuring an inclusive experience across different regions.

Features

Timeline & Analysis

  • Smart Detection: Automatically converts GPS points into stays, trips, and data gaps.
  • Custom Logic: Fully configurable detection sensitivity and travel mode classification.
  • Deep Insights: Analytics for distance, visit frequency, and movement patterns over time.
  • Map Matching: Valhalla-backed route refinement makes noisy trip paths follow roads and paths while raw GPS remains authoritative.
  • Panoramax: Optional public street-level imagery coverage and photo viewing on Timeline maps.
  • Immich Integration: Photos from your library appear directly on your map timeline.
  • Memos Integration: Timestamped notes from Memos can appear alongside your timeline.
  • Weather Integration: Current weather enrichment is enabled by default for trips, stays, map layers, and journey insights; historical backfill is admin opt-in. See Weather processing architecture.

Sources & Syncing

  • Real-time Tracking: Supports OwnTracks (HTTP/MQTT), Overland, GPSLogger, Home Assistant, Traccar, Dawarich or Colota.
  • Universal Import: Bulk import from Google Timeline, GPX, GeoJSON, OwnTracks exports, and CSV.

AI Chat & MCP

  • AI Chat: Bring your own OpenAI-compatible key for AI-assisted insights.
  • MCP Server: Read-only, API-token-authenticated tools for AI clients to query their timeline and permitted friend data.

Sharing & Privacy

  • Friends System: Per-user visibility controls for live location and history.
  • Guest Access: Shareable links with optional password protection and instant revocation.
  • Multi-user Ready: Built-in invitations, roles, and admin audit logs.
  • Enterprise Auth: OIDC/SSO support alongside standard username/password login.

Platform & Performance

  • Lightweight: Typically under 100MB RAM and 1% CPU usage.
  • Self-Sovereign: No telemetry, no analytics beacons, and no third-party tracking.
  • Data Freedom: Full data export and per-account deletion support.
  • Backup & Restore: Encrypted, password-protected full backups with manual restore and scheduled automatic backups.

📸 Feature Tour

Timeline with a selected car trip being replayed on the map

Timeline & route replay
Stays, trips, and data gaps with travel modes, weather, and step-by-step trip replay.

Location Analytics map with visited places

Location Analytics
Explore every visit by map, city, and country.

Dashboard with distance activity charts

Dashboard
Selected period, 7-day, and 30-day overviews with charts, top places, and route stats.

Rewind monthly summary

Rewind
Monthly and yearly summaries of distance, trips, highlights, and heatmaps.

Journey Insights with travel statistics

Journey Insights
Countries, cities, time patterns, weather, milestones, and badges.

City details page for Boston

City details
Visit overview, top places, and every visit in a city.

Trip Workspace with planned stops on the map

Trip Plans
Plan stops with travel modes and routed legs, then compare the plan with what you actually visited.

Location Sources page with setup instructions

Location Sources
Connect OwnTracks, Overland, GPSLogger, Home Assistant, Traccar, Dawarich, or Colota.

GPS Data page with raw location points

GPS Data
Inspect, filter, and export raw location points.

Data export with formats and data types

Export & Import
Full backups and GPX, GeoJSON, OwnTracks, or CSV exports with a date range.

Personal Settings page

Personal Settings
Language, time zone, units, map appearance, and connected apps.

Administration overview with instance health

Administration
Instance health, usage, users, backups, and audit logs.

System Settings with authentication options

System Settings
Authentication, geocoding, weather, map matching, and more without restarts.

GeoPulse Timeline on a phone

Mobile
The web app works on phones and installs as a PWA.

Deployment Options

Choose the installation path that matches your environment:

Installation typeBest forGuide
Docker ComposeFastest path for local and single-server useDocker Compose Guide
UnraidUnraid NAS and homelab servers using Docker ComposeUnraid Guide
Proxmox VE LXCProxmox homelabs and VM hosts that prefer LXC containersProxmox VE LXC Guide
Kubernetes / HelmManaged clusters and production Kubernetes environmentsKubernetes Quick Install
Helm values referenceAdvanced Helm customizationHelm Values Reference
Manual installationBare metal servers or VMs without Docker/KubernetesManual Installation Guide
Environment configurationReviewing all runtime settingsEnvironment Variables Reference

Kubernetes / Helm Quick Install

helm repo add geopulse https://tess1o.github.io/geopulse/charts
helm repo update
helm install my-geopulse geopulse/geopulse

Or install the signed OCI chart from GHCR: helm install my-geopulse oci://ghcr.io/tess1o/charts/geopulse

Post-deployment steps:

  1. Create the first account to become admin automatically, or set GEOPULSE_ADMIN_EMAIL for an explicit admin email.
  2. Finish setup in the Admin Panel.
  3. See Initial Setup Guide for more.

📖 Docs & Next Steps


📜 License & Commercial Use

GeoPulse is licensed under the Business Source License 1.1 (BSL 1.1).

  • Free for personal, educational, and non-commercial use.
  • Commercial use requires a separate commercial license.

See LICENSE for full terms.
For commercial licensing: kerriden1@gmail.com

gps-tracker
gps-tracking
java
owntracks
postgis
postgis-database
postgres
privacy
quarkus
quarkus-native
self-hosted
timeline
vue3

Significant stargazers

Leonard

409 followers · starred Jul 2026

Gabriel Ostrolucký

122 followers · starred Oct 2025

Kasper Kondzielski

93 followers · starred Nov 2025

Filippo Giunchedi

133 followers · starred Jul 2026