Full cutover: auth, users, collection and friendships now run on Directus
via @directus/sdk, with owner/visibility rules enforced by Directus
permissions.
- middleware: Directus session (directus_auth cookie) with token refresh
- /login is Directus (email normalized to lowercase), new /register page
(first/last name, username) backed by public registration
- collection, friends and profile pages + all API endpoints ported;
ownership and addressee-only accept/decline enforced by permissions
- display names use first_name/last_name everywhere (nav, friends, profile)
- PocketBase SDK, POCKETBASE_URL and pb_schema.json removed
- README and compose updated for DIRECTUS_URL
The external PocketBase instance is referenced by the POCKETBASE_URL env
variable (compose and Dockerfile build packs both supported). The schema
export stays at pb_schema.json as a reference for provisioning.
Coolify's default healthcheck hits / expecting 200, but the app answers
302 (redirect to /login), which marked the stack exited:unhealthy and
stopped it. app also now waits for pocketbase to be healthy.
- pb_hooks/main.pb.js: bootstrap hook applying SMTP + meta settings from
env vars on every boot (mail disabled when SMTP_HOST is unset)
- docker-compose.yml: expose SMTP_* / PB_APP_URL on the pocketbase service
- pocketbase/Dockerfile: bundle pb_hooks
- README: document the new variables