Favicon of GeoPulse

GeoPulse

Connect GPS tracking apps to a self-hosted platform. Create interactive timelines, analyze journeys, and get AI-powered insights into your travel history.

GeoPulse is a self-hosted platform designed to transform your raw GPS data into a coherent, analyzable story of your movements. It organizes location information from various sources into detailed timelines, interactive maps, and insightful analytics, giving you full control over your data on your own server.

It offers broad integration support, working with popular tracking apps like OwnTracks, Overland, and HomeAssistant. You can also manually import your history from Google Timeline, GPX, or GeoJSON files. The system automatically categorizes your data into stays and trips, presenting it on an interactive map that can even display your photos from Immich.

Key features include:

  • Detailed Analytics: A dashboard provides statistics on travel distance and visits, breaks down journeys by country and city, and analyzes movement patterns.
  • AI Chat Assistant: Ask natural language questions about your travel history and receive intelligent insights using any OpenAI-compatible API.
  • Secure Sharing: Connect with friends for real-time location sharing with granular privacy controls, or create public, password-protected links.
  • Full Customization: Manage favorite places, use different reverse geocoding services, customize map tiles, and export your data anytime.

Directory Structure

geopulse
db-data
geopulse-data
.env
docker-compose.yml

docker-compose.yml

services:
  geopulse:
    image: tess1o/geopulse:latest
    container_name: geopulse
    restart: unless-stopped
    ports:
      - "8080:8080"
    environment:
      - DB_HOST=db
      - DB_PORT=5432
      - DB_USER=geopulse
      - DB_PASSWORD=${DB_PASSWORD}
      - DB_NAME=geopulse
      - SECRET_KEY=${SECRET_KEY}
    volumes:
      - ./geopulse-data:/app/data
    depends_on:
      - db

  db:
    image: postgres:15-alpine
    container_name: geopulse_db
    restart: unless-stopped
    environment:
      - POSTGRES_USER=geopulse
      - POSTGRES_PASSWORD=${DB_PASSWORD}
      - POSTGRES_DB=geopulse
    volumes:
      - ./db-data:/var/lib/postgresql/data

.env

DB_PASSWORD=your_secure_database_password
SECRET_KEY=your_super_secret_key_here
Categories:

Share:

Ad
Favicon

 

  
 

Similar to GeoPulse

Favicon

 

  
  
Favicon

 

  
  
Favicon