Self-hosted, federated location sharing app and server that prioritizes user privacy and security
end-to-end-encryption
location-sharing
privacy
self-hosted
federated
1set shell := ["bash", "-cu"]
2
3APP_DIR := "app"
4SERVER_DIR := "server"
5
6alias srv := server
7alias s := server
8alias a := app
9
10default:
11 @just --list
12
13server:
14 cd "{{SERVER_DIR}}" && cargo run
15
16app:
17 cd "{{APP_DIR}}" && WEBKIT_DISABLE_DMABUF_RENDERER=1 bun run tauri dev
18
19vite:
20 cd "{{APP_DIR}}" && bun run vite
21
22duo:
23 #!/usr/bin/env bash
24 set -euo pipefail
25
26 VITE_HOST="127.0.0.1"
27 VITE_PORT="5173"
28
29 mkdir -p /tmp/ppA /tmp/ppB
30
31 VITE_PID=""
32 TAURI_A_PID=""
33 TAURI_B_PID=""
34
35 cleanup() {
36 for pid in "$TAURI_A_PID" "$TAURI_B_PID" "$VITE_PID"; do
37 [[ -n "$pid" ]] && kill "$pid" 2>/dev/null || true
38 done
39 }
40 trap cleanup INT TERM EXIT
41
42 # Start Vite
43 (cd app && bun run vite) &
44 VITE_PID=$!
45
46 # Start Tauri instance A
47 (cd app/src-tauri && \
48 WEBKIT_DISABLE_DMABUF_RENDERER=1 \
49 XDG_DATA_HOME=/tmp/ppA \
50 cargo run) &
51 TAURI_A_PID=$!
52
53 # Start Tauri instance B
54 (cd app/src-tauri && \
55 WEBKIT_DISABLE_DMABUF_RENDERER=1 \
56 XDG_DATA_HOME=/tmp/ppB \
57 cargo run) &
58 TAURI_B_PID=$!
59
60 wait