Appearance
Coolify Deployment
This page summarizes the production deployment shape for Coolify. The full operational guide also exists in the repo root as DEPLOYMENT.md.
Production topology
Deploy this repository as three services plus external Supabase:
- web service from this repo
- API service from this repo
- docs site from this repo
- managed Supabase project
Coolify service split
| Service | Source | Runtime |
|---|---|---|
| web | apps/web | static Vite build |
| api | apps/api | Node.js |
| docs | packages/docs | static VitePress build |
| database/auth/realtime | external | Supabase |
Critical build commands
API
bash
pnpm install --frozen-lockfile
pnpm --filter @arabic-itsm/shared build && pnpm --filter @arabic-itsm/api build
pnpm --filter @arabic-itsm/api startWeb
bash
pnpm install --frozen-lockfile
pnpm --filter @arabic-itsm/shared build && pnpm --filter @arabic-itsm/web buildPublish directory:
text
apps/web/distDocs
bash
pnpm install --frozen-lockfile
pnpm --filter @arabic-itsm/docs buildPublish directory:
text
packages/docs/docs/.vitepress/distCritical environment variables
API
bash
SUPABASE_URL=
SUPABASE_SERVICE_ROLE_KEY=
CLASSIFIER_URL=https://marbert.mo-baz.com
CLASSIFIER_MODEL_ID=marbert_l2_best
API_PORT=3001
API_CORS_ORIGIN=https://<your-web-domain>NODE_ENV=production should be runtime-only in Coolify, not build-time.
Web
bash
VITE_SUPABASE_URL=
VITE_SUPABASE_ANON_KEY=
VITE_API_URL=https://<your-api-domain>Important caveats
- Do not deploy local Supabase tooling from this repo as your production database strategy.
- Do not expose
SUPABASE_SERVICE_ROLE_KEYto the web app. - Configure SPA fallback to
index.htmlfor frontend deep links. - The classifier is an external integration, not part of this repo's Coolify deployment.
- If the classifier is unavailable, this helpdesk still runs and falls back to manual routing.
- Build
@arabic-itsm/sharedbefore@arabic-itsm/apifor the API service. - Build
@arabic-itsm/sharedbefore@arabic-itsm/webfor the web service. - Do not keep
NODE_ENV=productionavailable at build time for the API service in Coolify.
Verification
- API health endpoint responds
- web login loads
- docs site loads
- Arabic ticket submission works
- ticket routing is saved correctly when the classifier is reachable
- manual fallback works when the classifier is unreachable
- stats screens load