Freika/dawarich: Self-Hosted Location History for Privacy-Minded Developers
Google Timeline's shifting availability and data governance concerns have left developers searching for alternatives they actually control. Freika/dawarich answers that need directly: a self-hostable Ruby application that replicates core location history functionality without third-party dependency. With 9,722 GitHub stars and active development through July 2026, it represents a mature, community-validated approach to personal geospatial data management.
This article examines what Freika/dawarich offers technically, how to deploy it, and where it fits against existing solutions.
What is Freika/dawarich?
Freika/dawarich is an open-source web application built in Ruby, licensed under GNU Affero General Public License v3.0. It is explicitly designed as a self-hostable replacement for Google Timeline (formerly Google Location History), giving individuals and families full custody of their movement data.
The project is maintained by Freika with community contributions (328 forks indicate active forking for customization). Its last commit date of 2026-07-13 confirms ongoing maintenance—a critical signal for infrastructure software that handles persistent personal data.
Technically, Dawarich occupies a specific niche: personal geospatial infrastructure. Unlike consumer SaaS location services, it requires deliberate deployment and configuration. This trade-off—operational overhead against data sovereignty—defines its user base. The application stack appears containerized (Docker↗ Bright Coding Blog Compose is the documented deployment path), with a web interface served on port 3000 by default.
The project's relevance now stems from converging pressures: Google's [INTERNAL_LINK: data-retention-policy-changes], increasing regulatory attention to geolocation privacy, and the self-hosting movement's growth among technical practitioners. Dawarich does not attempt to be a passive consumer product; it expects an operator who understands container orchestration, reverse proxy configuration, and backup procedures.
Key Features
Location Tracking & Ingestion Dawarich accepts location data from eight documented sources: its own iOS and Android apps, a community Android client, Overland, OwnTracks, GPSLogger, PhoneTrack, and Home Assistant. This breadth matters for users already embedded in specific tracking ecosystems—they need not abandon existing tooling.
Visualization Modes The map interface supports four distinct render layers: heatmap, points, connecting lines, and fog of war. The fog-of-war mode gamifies exploration by masking unvisited regions—a feature absent from mainstream alternatives.
Trip Construction & Analysis Users define temporal boundaries for trips, generating route visualizations with distance calculations and duration metrics. Notes can be attached. When Immich or Photoprism credentials are provided, trip views automatically surface geotagged photographs.
Family Sharing Location sharing operates on per-member consent. Each participant independently enables or disables sharing, with aggregated positions rendered on a shared map view.
Statistical Aggregation Yearly and monthly breakdowns cover countries visited, cities visited, total distance traveled, and time spent. A dedicated "Days in Country" view addresses practical use cases like tax residency documentation.
Automated Visit Detection (Beta) Dawarich suggests visited locations based on dwell patterns, requiring user confirmation or rejection. This reduces manual logging without removing human judgment.
Area Definition User-drawn polygons trigger visit suggestions when entered, enabling custom POI tracking beyond generic geocoding.
Data Portability Import sources include Google Maps Timeline, OwnTracks, Strava, Immich, GPX, GeoJSON, and EXIF-extracted photo geodata. Exports write to GeoJSON or GPX.
Use Cases
Privacy-First Personal Archiving Developers with existing home server infrastructure (NAS, Raspberry Pi clusters, VPS instances) can consolidate location history alongside other self-hosted services. The AGPL v3.0 license ensures source availability for audit.
Family Coordination Without Platform Lock-in Parents tracking teenage children or adult children monitoring elderly parents gain location awareness without routing sensitive data through Apple, Google, or proprietary services. The consent-based sharing model respects individual agency.
Travel Documentation & Tax Compliance The "Days in Country" feature directly supports substantial presence tests and other tax residency determinations. Combined with trip notes and photo integration, Dawarich becomes evidentiary infrastructure.
Quantified Self Analysis The insights engine surfaces patterns ("most visited place," "30 days in Paris in 2024") that feed into personal analytics workflows. Unlike generic fitness tracking, Dawarich centers geographic narrative.
Migration From Discontinued Services Google's Timeline service changes have left users with export archives and no continuation path. Dawarich's Google Takeout import preserves historical investment while establishing independent future operation.
Installation & Setup
The documented local deployment uses Docker Compose. Reproduce these commands exactly:
# 1. Clone the repository
git clone https://github.com/Freika/dawarich.git
cd dawarich
# 2. Start the application stack
docker compose -f docker/docker-compose.yml up
# 3. Access the web interface at http://localhost:3000
To stop: press Ctrl+C in the terminal running the compose process.
Configuration Options
- Copy
.env.exampleto.envand modify values for production deployment - Default credentials:
demo@dawarich.app/safepassword— change immediately in account settings
Production Hardening (Documented) The project maintains guides for:
- Reverse proxy setup (TLS termination, domain routing)
- Synology NAS deployment
- Backup and restore procedures
Critical Operational Note: The README explicitly warns against automatic updates. Release notes must be reviewed before upgrading, and backups are mandatory. This reflects the project's active development status—frequent updates may introduce breaking changes.
Real Code Examples
The README contains limited inline code. The following are the actual documented commands, reproduced with explanatory context.
Basic Local Startup
# Clone and launch — the complete quick-start path
docker compose -f docker/docker-compose.yml up
This single command builds and starts the full application stack. The -f flag specifies the compose file location within the docker/ subdirectory, suggesting a repository structure that separates container configuration from application source. Port 3000 exposure is handled within the compose definition, not requiring manual -p flags.
Environment Customization
# Create local configuration from template
cp .env.example .env
# Edit .env with production-appropriate values
The .env.example file is not reproduced in the README, but its existence indicates twelve-factor app configuration principles. For production deployments, this would typically include database connection strings, secret keys, and external service credentials (Immich, Photoprism).
Explicit Note: The README does not contain additional code examples beyond these Docker Compose commands. Developers should consult the environment variables documentation for configuration specifics. This limited inline documentation reflects the project's orientation toward operational guides on its dedicated documentation site rather than embedded README tutorials.
Advanced Usage & Best Practices
Backup Discipline The README's disclaimer section is unusually emphatic: backup before updates, never delete original import data, and read release notes. Treat Dawarich as infrastructure with data loss risk, not a stateless application. Implement automated backups of the Docker volumes and database.
Tracking Source Selection OwnTracks and Overland offer MQTT-based, battery-efficient options for mobile. Home Assistant integration suits users already running home automation infrastructure. Evaluate based on existing stack rather than defaulting to the native apps.
Reverse Proxy Configuration The documented reverse proxy guide is essential for production. Dawarich on localhost:3000 is not suitable for internet exposure without TLS termination and likely authentication hardening.
Resource Planning Ruby applications with geospatial data processing (map tile rendering, heatmap generation, statistical aggregation over large point datasets) can be memory-intensive. Monitor container resource usage as historical data accumulates.
Update Strategy Given the explicit warning against automatic updates, implement a staged deployment: test releases on a non-production instance, validate data integrity, then migrate production. The project's velocity (active through mid-2026) suggests frequent releases.
Comparison with Alternatives
| Dimension | Freika/dawarich | Google Timeline | OwnTracks (Standalone) |
|---|---|---|---|
| Hosting | Self-hosted | Google-managed | Self-hosted (recorder) |
| Data Control | Full custody | Platform terms | Full custody |
| Visualization | Map, heatmap, fog, trips | Map, timeline | Basic map (recorder UI) |
| Family Sharing | Consent-based, built-in | Google Family | Requires manual setup |
| Photo Integration | Immich, Photoprism | Google Photos | None |
| License | AGPL v3.0 | Proprietary | Apache 2.0 (recorder) |
| Mobile Apps | Native iOS/Android + community | Google Maps | iOS/Android |
Trade-offs: Dawarich requires operational investment Google Timeline does not. Against standalone OwnTracks, it offers richer visualization and trip features at the cost of complexity. OwnTracks remains superior for minimal, MQTT-focused tracking without web interface requirements.
FAQ
What license covers Freika/dawarich? GNU Affero General Public License v3.0. Network use constitutes distribution, requiring source availability for users.
Can I run Dawarich without Docker? The README documents only Docker Compose deployment. Native Ruby installation would require manual dependency resolution.
How does family sharing handle privacy? Each member independently toggles sharing. No global admin override is documented.
Is there a managed option? Dawarich Cloud exists as a hosted alternative, though this article focuses on the self-hosted project.
What database does Dawarich use?
Not explicitly stated in the README; inspect docker-compose.yml or environment documentation.
How do I import Google Takeout data? Follow the dedicated tutorial. Preserve originals post-import.
Is the project stable for production? The README describes it as "under active development" with "frequent updates, bugs, and breaking changes." Production use requires operational maturity.
Conclusion
Freika/dawarich serves a specific operator: the developer or technical household willing to exchange SaaS convenience for data sovereignty. Its 9,722 stars and sustained development validate the approach, while its explicit stability warnings demand honest self-assessment.
The tool excels where Google Timeline falls short—multi-source ingestion, family sharing with consent granularity, photo integration, and export portability. It requires commitment: container management, backup discipline, and careful update practices.
For privacy-motivated individuals already running home infrastructure, Dawarich represents a credible, feature-complete alternative. For those seeking zero-configuration deployment, the managed cloud offering or consumer services remain more appropriate.
Explore the repository, review the documentation site, and evaluate against your operational capacity: https://github.com/Freika/dawarich