Customer-facing website and client portal for staffora.co.uk.
bun install
bun run docker:up
bun run migrate:up
bun run dev- Website: http://localhost:5174
- API: http://localhost:3001
- API Docs: http://localhost:3001/api/docs
- Login: admin@staffora.co.uk / Admin123!
This is a standalone monorepo with two workspaces:
api/- Elysia.js backend (port 3001)web/- React Router v7 frontend (port 5174)
- PostgreSQL 16 on port 5433
- Redis 7 on port 6380
- All ports are offset from the HRIS system to avoid conflicts
- Database:
staffora_portal - Schema:
public(no RLS, no multi-tenant) - Migrations:
migrations/directory
Custom session-based authentication (not BetterAuth):
- Login sets an httpOnly cookie (
staffora_portal_session) - Sessions stored in
portal_sessionstable - Passwords hashed with bcrypt (12 rounds)
- Account lockout after 5 failed attempts (15 minute cooldown)