Monorepo for the Fragment Prime site (apps/site) and API (packages/platform) with Bun, Qwik, and Tauri for native packaging.
cp .env.example .env # review and adjust values
bun installbun run dev # local dev stack + caddy + API/web
bun run preview # preview mode (uses production Caddy host mapping)
bun run build # build site + API
bun run test # API tests
bun run lint # lint workspace
bun run typecheck # generated fragment manifest + TS typecheckbun run setup:tauri:android # sets ANDROID_HOME/JAVA_HOME/path and creates a local gradle.bat shim
bun run dev:tauri:android # starts Android dev flowIf the setup script reports missing Android SDK paths, set ANDROID_HOME (or ANDROID_SDK_ROOT) and rerun the script.
Fragments and several platform artifacts are now generated at build/runtime, not committed:
apps/site/public/fragments/**apps/site/src/fragment/fragment-css.generated.tsapps/tauri/src-tauri/gen/**infra/caddy/Caddyfile
These files are generated by:
bun run build:fragment-cssscripts/dev.ts/scripts/preview.tsbun run tauri:mobile:initscripts/compose-utils.ts(ensureCaddyConfig)
If you need to inspect generated Caddy config, run:
bun run scripts/dev.ts # or bun run preview.tsDefaults are centralized in scripts/runtime-config.ts and mirrored by .env.example:
- Hosts:
prometheus.dev,prometheus.prod - Ports:
4000API,5433Postgres,6379Valkey,4444webtransport,4173device web - Compose project:
prometheus - Feature/service toggles from
PROMETHEUS_*/VITE_*
Optional services are controlled with:
PROMETHEUS_ENABLE_REALTIME_SERVICES=1, orPROMETHEUS_COMPOSE_PROFILE=realtime
When disabled, yjs-signaling and webtransport are not started by default.
/.github/workflows/ci.yml keeps PR-safe checks lightweight:
bun run lintbun run typecheckbun run testbun run build
Native-heavy workflows remain manual/secret-gated (native-desktop-release.yml, native-mobile-release.yml, native-pr-smoke.yml).
- Use
bun runscripts at repository root unless specified otherwise. - Android/SDK paths are not hardcoded; use environment variables or local defaults from
.env.