OpenBeacon is an open-source, privacy-focused family location app. Self-hosting is supported allowing running the backend on your own hardware; the architecture assumes sensitive data is encrypted so the people running servers are not in a position to read your family’s locations or activity.
This repo is a Bun monorepo: a React Native (Expo) app under apps/mobile, an API server under apps/backend, and shared packages (api, database, encryption, schemas, and others) at the root.
- Bun (see
packageManagerin the rootpackage.jsonfor the version this repo expects) - Java 17 — needed for Android builds
- PostgreSQL and Redis — the backend expects them; URLs are set in
.env
Copy the example env and fill in values for your machine:
cp .env.example .envInstall dependencies:
bun installApply database migrations (from the repo root):
cd ./packages/database
bun run db:migratebun run dev --filter=@openbeacon/backendThe API listens on the port in OPENBEACON_API_PORT (default 3000).
From apps/mobile copy the example env and fill in values for your machine:
cd ./apps/mobile
cp .env.example .envcd ./apps/mobile
bun run androidFor iOS on macOS, from the same directory:
bun run iosSee LICENSE.md.