A self-hosted family tree application. Build, visualize, and share your family tree with support for GEDCOM import/export, multiple relationship types, and collaboration.
- Visual tree editor — drag-and-drop canvas with auto-layout (vertical, horizontal, free-form)
- Relationship types — biological, adopted, step-parent/child, half-sibling, spouse/partner
- GEDCOM support — import and export GEDCOM 5.5.1 files with preview
- Export — PNG, PDF, GEDCOM export
- Collaboration — invite members with owner/editor/viewer roles
- Auth — email/password, Google OAuth, GitHub OAuth
- Responsive — works on desktop and mobile
git clone https://github.com/rodneyosodo/belong.git
cd belongcp example.env .envEdit .env with your configuration. See Configuration for details.
At minimum, generate a new BETTER_AUTH_SECRET:
openssl rand -base64 32bun run docker:upOr with docker compose directly:
docker compose -f docker-compose.yml --env-file .env up -d| Service | URL |
|---|---|
| Web UI | http://localhost:5091 |
| Backend API | http://localhost:5090 |
cd apps/backend
docker compose -f compose-dev.yaml up -dbun installCreate apps/web/.env:
BELONG_BACKEND_URL=http://localhost:5090
Create apps/backend/.env (use example.env as reference):
BETTER_AUTH_SECRET=<your-secret>
BETTER_AUTH_URL=http://localhost:5090
BELONG_DB_USER=belong
BELONG_DB_PASS=belong
BELONG_DB_NAME=belong
BELONG_DB_URI=postgresql://belong:belong@localhost:5432/belong
BELONG_FRONTEND_URL=http://localhost:5091
BELONG_BACKEND_URL=http://localhost:5090
cd apps/backend
bun run src/bin/migrate.tsbun run devThis starts both the frontend (port 5091) and backend (port 5090) with hot reload.
# Build latest
bun run docker:build
# Build versioned release
bun run docker:build:releasebun run docker:down- Go to Google Cloud Console
- Create OAuth 2.0 credentials
- Add redirect URI:
<BELONG_BACKEND_URL>/api/auth/callback/google
- Go to GitHub Developer Settings
- Create a new OAuth App
- Set callback URL:
<BELONG_BACKEND_URL>/api/auth/callback/github