Self-hostable alternative to Google Location History (Google Maps Timeline)
Find a file
2024-03-15 23:31:47 +01:00
.github Update ruby version to 3.2.3 2024-03-15 22:24:23 +01:00
app Migrate from old template 2024-03-15 23:27:31 +01:00
bin Add import-maps and turbo with some devise views 2023-10-21 12:52:50 +02:00
config Add Dockerfile and update docker-compose.yml to use the new Dockerfile 2024-03-15 23:31:06 +01:00
db Migrate from old template 2024-03-15 23:27:31 +01:00
lib Initial Rails 7.0.2.3 template w/ rspec, tailwind, and devise user 2022-04-06 22:46:10 +04:00
log Initial Rails 7.0.2.3 template w/ rspec, tailwind, and devise user 2022-04-06 22:46:10 +04:00
public Initial Rails 7.0.2.3 template w/ rspec, tailwind, and devise user 2022-04-06 22:46:10 +04:00
spec Migrate from old template 2024-03-15 23:27:31 +01:00
storage Initial Rails 7.0.2.3 template w/ rspec, tailwind, and devise user 2022-04-06 22:46:10 +04:00
test Initial Rails 7.0.2.3 template w/ rspec, tailwind, and devise user 2022-04-06 22:46:10 +04:00
tmp Initial Rails 7.0.2.3 template w/ rspec, tailwind, and devise user 2022-04-06 22:46:10 +04:00
vendor Add import-maps and turbo with some devise views 2023-10-21 12:52:50 +02:00
.env.development Migrate from old template 2024-03-15 23:27:31 +01:00
.env.template Migrate from old template 2024-03-15 23:27:31 +01:00
.env.test Rename to Dawarich 2024-03-15 22:28:54 +01:00
.gitattributes Initial Rails 7.0.2.3 template w/ rspec, tailwind, and devise user 2022-04-06 22:46:10 +04:00
.gitignore Add basic landing page 2023-10-21 13:00:05 +02:00
.rspec Initial Rails 7.0.2.3 template w/ rspec, tailwind, and devise user 2022-04-06 22:46:10 +04:00
.rubocop.yml Add rubocop-rails 2022-10-30 18:34:17 +01:00
.ruby-version Update ruby version to 3.2.3 2024-03-15 22:24:23 +01:00
app.json Add strong_migrations gem 2023-02-03 15:42:56 +01:00
config.ru Add some frozen_string_literal 2022-10-30 18:42:06 +01:00
dev-docker-entrypoint.sh Add Dockerfile and update docker-compose.yml to use the new Dockerfile 2024-03-15 23:31:06 +01:00
docker-compose.yml Rename wardu to dawarich in docker-compose.yml 2024-03-15 23:31:47 +01:00
Dockerfile Add Dockerfile and update docker-compose.yml to use the new Dockerfile 2024-03-15 23:31:06 +01:00
Dockerfile.dev Update ruby version to 3.2.3 2024-03-15 22:24:23 +01:00
Gemfile Migrate from old template 2024-03-15 23:27:31 +01:00
Gemfile.lock Migrate from old template 2024-03-15 23:27:31 +01:00
Makefile Add Dockerfile and update docker-compose.yml to use the new Dockerfile 2024-03-15 23:31:06 +01:00
package-lock.json Rename to Dawarich 2024-03-15 22:28:54 +01:00
package.json Update gems and daisyui 2024-03-09 23:44:27 +01:00
Procfile Add strong_migrations gem 2023-02-03 15:42:56 +01:00
Procfile.dev Fix starting issues 2022-04-07 20:45:38 +04:00
Rakefile Add some frozen_string_literal 2022-10-30 18:42:06 +01:00
README.md Migrate from old template 2024-03-15 23:27:31 +01:00
rename_app.rb Add some frozen_string_literal 2022-10-30 18:42:06 +01:00
test-docker-entrypoint.sh Initial Rails 7.0.2.3 template w/ rspec, tailwind, and devise user 2022-04-06 22:46:10 +04:00
yarn.lock Update gems and daisyui 2024-03-09 23:44:27 +01:00

Dawarich

This is a Rails app that receives location updates from Owntracks and stores them in a database. It also provides a web interface to view the location history.

Features

Google Maps Timeline import

You can import your Google Maps Timeline data into Wardu.

Location history

You can view your location history on a map.

How to start the app locally

  1. Install and start Docker
  2. make build to build docker image and install all the dependencies (up to 5-10 mins)
  3. make setup to install gems, setup database and create test records
  4. make start to start the app

Press Ctrl+C to stop the app.

Dockerized with https://betterprogramming.pub/rails-6-development-with-docker-55437314a1ad

Deployment (1st time)

  1. Set variables in Homelab repo
  2. make dokku_new_app
  3. make dokku_setup_backups
  4. make dokku_add_domain
  5. Create certificates files in Homelab repo
  6. make dokku_add_ssl
  7. Set SSL/TLS mode to Full in Cloudflare
  8. git remote add dokku dokku@DOKKU_SERVER_UP:APP_NAME
  9. git push dokku master
  10. Add app.json to the repo:
  {
    "scripts": {
      "predeploy": "dokku ps:stop wardu"
    },
    "formation": {
      "web": {
        "quantity": 1
      },
      "worker": {
        "quantity": 1
      }
    }
  }

{ "cog": 271, "batt": 41, "lon": 2.29513, "acc": 5, "vel": 61, "vac": 21, "lat": 48.85833, "t": "u", "tst": 1497508651, "alt": 167, "_type": "location", "topic": "owntracks/jane/iphone", "p": 71, "tid": "JJ" }

{"bs"=>1, # battery status "p"=>102.818, # ping "batt"=>100, # battery "_type"=>"location", # type "tid"=>"RO", # Tracker ID used to display the initials of a user (iOS,Android/string/optional) required for http mode "topic"=>"owntracks/Frey/iPhone 12 Pro", "alt"=>36, "lon"=>13.504178, "vel"=>0, # velocity "t"=>"u", "BSSID"=>"b0:f2:8:45:94:33", "SSID"=>"FRITZ!Box 6660 Cable LQ", "conn"=>"w", # connection, w = wifi, m = mobile, o = offline "vac"=>3, # vertical accuracy "acc"=>5, # horizontal accuracy "tst"=>1702662679, Timestamp at which the beacon was seen (iOS/integer/epoch) "lat"=>52.445526, "m"=>1, # mode, significant = 1, move = 2 "inrids"=>["5f1d1b"], # contains a list of region IDs the device is currently in (e.g. ["6da9cf","3defa7"]). Might be empty. (iOS,Android/list of strings/optional) "inregions"=>["home"], "point"=>{"bs"=>1, "p"=>102.818, "batt"=>100, "_type"=>"location", "tid"=>"RO", "topic"=>"owntracks/Frey/iPhone 12 Pro", "alt"=>36, "lon"=>13.504178, "vel"=>0, "t"=>"u", "BSSID"=>"b0:f2:8:45:94:33", "SSID"=>"FRITZ!Box 6660 Cable LQ", "conn"=>"w", "vac"=>3, "acc"=>5, "tst"=>1702662679, "lat"=>52.445526, "m"=>1, "inrids"=>["5f1d1b"], "inregions"=>["home"]}} 18:51:18 web.1 | #<ActionController::Parameters {"bs"=>1, "p"=>102.818, "batt"=>100, "_type"=>"location", "tid"=>"RO", "topic"=>"owntracks/Frey/iPhone 12 Pro", "alt"=>36, "lon"=>13.504178, "vel"=>0, "t"=>"u", "BSSID"=>"b0:f2:8:45:94:33", "SSID"=>"FRITZ!Box 6660 Cable LQ", "conn"=>"w", "vac"=>3, "acc"=>5, "tst"=>1702662679, "lat"=>52.445526, "m"=>1, "inrids"=>["5f1d1b"], "inregions"=>["home"], "point"=>{"bs"=>1, "p"=>102.818, "batt"=>100, "_type"=>"location", "tid"=>"RO", "topic"=>"owntracks/Frey/iPhone 12 Pro", "alt"=>36, "lon"=>13.504178, "vel"=>0, "t"=>"u", "BSSID"=>"b0:f2:8:45:94:33", "SSID"=>"FRITZ!Box 6660 Cable LQ", "conn"=>"w", "vac"=>3, "acc"=>5, "tst"=>1702662679, "lat"=>52.445526, "m"=>1, "inrids"=>["5f1d1b"], "inregions"=>["home"]}} permitted: false>