No description
Find a file
Marius Lindvall 9335f232d1 Make admin responsible for password security
Removing informative dialog from the app and adding the relevant commentary to the server-side config file instead. Fixes #8.
2019-09-03 15:42:48 +02:00
android Make admin responsible for password security 2019-09-03 15:42:48 +02:00
backend Make admin responsible for password security 2019-09-03 15:42:48 +02:00
docker Add Dockerfile 2019-08-29 15:18:13 +02:00
fastlane/metadata/android/en-US Update app to v1.0.1 2019-08-30 17:21:21 +02:00
.gitattributes Initial commit 2019-08-23 09:39:20 +02:00
CODE_OF_CONDUCT.md Add README and Code of Conduct 2019-08-23 23:08:03 +02:00
Dockerfile Add Dockerfile 2019-08-29 15:18:13 +02:00
LICENSE Initial commit 2019-08-23 09:39:20 +02:00
README.md Fix file extension 2019-08-29 16:09:35 +02:00

Hauk

Hauk

Get it on F-Droid

Hauk is a fully open source, self-hosted location sharing service. Install the backend code on a PHP-compatible web server, install the companion app on your phone, and you're good to go!

Installation instructions

  1. On your server, install Memcached, PHP and a web server.
  2. Copy everything in the "backend" folder in this repository to somewhere in your web root.
  3. Modify config.php to your liking.
  4. Start Memcached and the web server.
  5. Install the companion Android app on your phone.

Via Docker Compose

docker-compose.yml

version: '3.4'

services:
  hauk:
    image: bilde2910/hauk
    container_name: hauk
    volumes:
      - ./config/hauk:/etc/hauk

Copy the config.php file to the ./config/hauk directory and customize it. Leave the memcached connection details as-is; memcached is included in the Docker image.

The Docker container exposes port 80. For security reasons, you should use a reverse proxy in front of Hauk that can handle TLS termination, and only expose Hauk via HTTPS. If you expose Hauk directly on port 80, or via a reverse proxy on port 80, anyone between the clients and server can intercept and read your location data.

Here's an example config for an nginx instance running in another container. You may want to customize this, especially the TLS settings and ciphers if you want compatibility with older devices.

server {
    listen 443 ssl;

    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305';
    ssl_session_cache shared:SSL:10m;
    ssl_stapling on;
    ssl_stapling_verify on;

    ssl_ecdh_curve 'secp521r1:secp384r1';
    ssl_prefer_server_ciphers on;
    ssl_session_timeout 10m;
    ssl_session_tickets off;

    ssl_certificate /etc/letsencrypt/live/hauk.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/hauk.example.com/privkey.pem;

    add_header Referrer-Policy same-origin always;
    add_header X-Frame-Options DENY always;
    add_header X-Content-Type-Options nosniff always;
    add_header X-XSS-Protection "1; mode=block" always;
    add_header X-Robots-Tag "noindex, nofollow" always;

    server_name hauk.example.com;

    location / {
        proxy_pass http://hauk:80;
    }
}

Demo server

If you'd like to see what Hauk can do, download the app and insert connection details for the demo server:

Server: https://apps.varden.info/demo/hauk/ Password: demo

Location shares on the demo server is limited to 2 minutes and is only meant for demonstration purposes. Set up your own server to use Hauk to its full extent.