# 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 ```bash # 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](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](#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](https://geopulse.cc/docs/user-guide/timeline/map-matching):** Valhalla-backed route refinement makes noisy trip paths follow roads and paths while raw GPS remains authoritative. - **[Panoramax](https://geopulse.cc/docs/system-administration/configuration/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](docs/WEATHER_PROCESSING.md). **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](https://geopulse.cc/docs/api/mcp):** 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](https://geopulse.cc/docs/system-administration/maintenance/backup-restore):** Encrypted, password-protected full backups with manual restore and scheduled automatic backups. --- ## 🏠 Home Assistant Integration The [GeoPulse for Home Assistant](https://github.com/tess1o/geopulse-homeassistant) integration (installed via HACS) connects Home Assistant to GeoPulse with a single API token, in both directions: - **Home Assistant → GeoPulse:** forward `device_tracker` and `person` entities. Points are queued on disk and retried, and recorder history can be backfilled. - **GeoPulse → Home Assistant:** your current stay or trip and its place, today's distance, trips and stays, a presence tracker, friends on the map, and server health. - **Automations:** events for geofence enter/leave, stay/trip started/ended, and tracking lost/resumed. Requires GeoPulse 2.0+ and Home Assistant 2026.3+. See the [integration README](https://github.com/tess1o/geopulse-homeassistant#readme) for setup. --- ## 📸 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 type | Best for | Guide | |-------------------|----------|-------| | Docker Compose | Fastest path for local and single-server use | [Docker Compose Guide](https://geopulse.cc/docs/getting-started/deployment/docker-compose) | | Unraid | Unraid NAS and homelab servers using Docker Compose | [Unraid Guide](https://geopulse.cc/docs/getting-started/deployment/unraid) | | Proxmox VE LXC | Proxmox homelabs and VM hosts that prefer LXC containers | [Proxmox VE LXC Guide](https://geopulse.cc/docs/getting-started/deployment/proxmox-lxc) | | Kubernetes / Helm | Managed clusters and production Kubernetes environments | [Kubernetes Quick Install](https://geopulse.cc/docs/getting-started/deployment/kubernetes-helm) | | Helm values reference | Advanced Helm customization | [Helm Values Reference](https://geopulse.cc/docs/getting-started/deployment/helm-deployment) | | Manual installation | Bare metal servers or VMs without Docker/Kubernetes | [Manual Installation Guide](https://geopulse.cc/docs/getting-started/deployment/manual-installation) | | Environment configuration | Reviewing all runtime settings | [Environment Variables Reference](https://geopulse.cc/docs/getting-started/deployment/environment-variables) | ### Kubernetes / Helm Quick Install ```shell 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](https://geopulse.cc/docs/system-administration/initial-setup) for more. --- ## 📖 Docs & Next Steps * **New users:** [Quick Start Guide](https://geopulse.cc/docs/getting-started/quick-start) * **GPS setup:** [GPS Sources Overview](https://geopulse.cc/docs/user-guide/gps-sources/overview) * **Home Assistant:** [GeoPulse for Home Assistant](https://github.com/tess1o/geopulse-homeassistant) * **Deployment:** [Docker](https://geopulse.cc/docs/getting-started/deployment/docker-compose) | [Unraid](https://geopulse.cc/docs/getting-started/deployment/unraid) | [Proxmox](https://geopulse.cc/docs/getting-started/deployment/proxmox-lxc) | [Kubernetes](https://geopulse.cc/docs/getting-started/deployment/kubernetes-helm) | [Manual](https://geopulse.cc/docs/getting-started/deployment/manual-installation) | [Env Variables](https://geopulse.cc/docs/getting-started/deployment/environment-variables) * **Administration:** [Admin Panel](https://geopulse.cc/docs/system-administration/configuration/admin-panel) | [OIDC/SSO](https://geopulse.cc/docs/system-administration/configuration/oidc-sso) * **Maintenance:** [Backup & Restore](https://geopulse.cc/docs/system-administration/maintenance/backup-restore) | [Updating](https://geopulse.cc/docs/system-administration/maintenance/updating) * **Full documentation:** [Documentation Portal](https://tess1o.github.io/geopulse/) --- ## 📜 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](./LICENSE) for full terms. For commercial licensing: `kerriden1@gmail.com`