Worker container and Dokploy settings ==================================== Build context ------------- - **Build path: `/` (repo root)** — NOT `worker/`! - **Dockerfile path: `worker/Dockerfile`** **IMPORTANT**: Dokploy must build from the repo root (`/`) so the Dockerfile can access `package.json`, `lib/`, and other files. If build path is set to `worker/`, the build will fail with "package.json: not found". Two-stage build (recommended) ----------------------------- - This repository includes a two-stage Dockerfile that compiles TypeScript in a builder stage and produces a smaller runtime image. - The builder stage runs `npx tsc -p tsconfig.json --outDir dist` and the runtime stage will run the compiled `dist/worker/index.js` if present. If compilation is not performed, the container falls back to running `npx tsx ./worker/index.ts`. Recommended Dokploy settings ---------------------------- - Provider: `Gitea` - Repository: `ahmido/tenantpilot` (or your repo) - Branch: `development` - **Build path: `/`** (repo root) - **Dockerfile path: `worker/Dockerfile`** - Watch paths: `worker/**`, `lib/**`, `package.json`, `package-lock.json` Notes ----- - The Dockerfile attempts to run compiled JS first; if no compiled output is present the runtime falls back to `tsx`. - If Dokploy requires a separate webhook per app, use the worker webhook URL provided in this repo's docs/workflow. Notes on environment -------------------- - Ensure Dokploy provides `REDIS_URL` in the environment for the worker container. - Provide Azure AD secrets in Dokploy environment vars: `AZURE_AD_TENANT_ID`, `AZURE_AD_CLIENT_ID`, `AZURE_AD_CLIENT_SECRET`. Worker container and Dokploy settings ==================================== Build context ------------- - Build path: `worker/` (Dokploy should use this path so the worker Dockerfile is found) - Dockerfile: `worker/Dockerfile` Recommended Dokploy settings ---------------------------- - Provider: `Gitea` - Repository: `ahmido/tenantpilot` (or your repo) - Branch: `development` - Build path: `worker/` - Watch paths: `worker/**`, `lib/**`, `package.json`, `package-lock.json` Notes ----- - The `Dockerfile` runs `npm ci` and then `npm run worker:start`, which uses `tsx` to execute `worker/index.ts` directly. - If you prefer a smaller production image, consider adding a build step to compile TypeScript to JS and run the compiled output with `node`. - If Dokploy requires a separate webhook per app, use the worker webhook URL provided in this repo's docs/workflow.