1.2 KiB
1.2 KiB
FamChore v2 — Rules
Auth
- Every collection query includes
famId = @request.auth.famIdfilter - Super admin bypasses famId filter (access via PB admin API)
deviceTokenstored as SHA-256 hash; never log raw tokens
Config
- Use
.envat root for runtime config values (ports, secrets)..env.examplecommitted as template. config.tsat root for dev/build-time shared config (e.g.PROXY_PORT), reads from env with fallback defaults.- Never commit
.envfiles (already in.gitignore).
Ports
- Frontend:
2080 - Proxy:
3456 - Container external:
3001(port3000is reserved) - Must not use port
3000for anything.
Docker
- Prod:
docker/Dockerfile(multi-stage + nginx) - Dev:
docker/Dockerfile.dev(PocketBase) - Nginx routes:
/api/*→ Hono (:3456),/*→ SvelteKit (:2080)
Monorepo
- SvelteKit in
frontend/, Hono inproxy/ pnpm dev/pnpm buildat root runs both in parallel- Decisions tracked in
MEMORY.md
Environment Variables
FRONTEND_PORT— frontend server portPROXY_PORT— Hono proxy portPB_URL,PB_ADMIN_EMAIL,PB_ADMIN_PASSWORD— PocketBase adminSTRIPE_SECRET_KEY— StripeDONATION_MODAL_INTERVAL— donation modal frequency