Skip to documentation
ScrumPulseDocumentation
v2.0 docsSign in
Developers

Deployment and self-hosting

Run production preflight and deploy the API and dashboard with Docker, Railway, Fly.io, or a verified platform path.

Last updated August 7, 2026

ScrumPulse deploys as two services: the FastAPI API from the repository root and the Next.js dashboard from dashboard/web.

Production preflight#

Run the repository validator before deployment:

python scripts/check_production_readiness.py --strict

It checks PostgreSQL, public HTTPS URLs, Clerk, encryption, insecure flags, and Stripe completeness.

Docker Compose#

The production Compose file expects an external PostgreSQL database:

docker compose -f docker-compose.prod.yml up --build -d

After startup, verify the API before the dashboard:

curl --fail https://<api-host>/api/readiness
curl --fail https://<dashboard-host>/

Railway#

The repository includes railway.json for the API, dashboard/web/railway.json for the web service, environment examples under deploy/railway/, and helper scripts under scripts/.

Create separate API and web services plus PostgreSQL. Set NEXT_PUBLIC_API_URL before the web build because public variables are inlined.

Fly.io#

Use fly.api.toml for the API and dashboard/web/fly.toml for the dashboard. Store deployment values with Fly secrets and deploy the API first.

Current hosted endpoints#

Repository history and a live smoke check on August 7, 2026 identified:

  • Dashboard: https://scrumpulse-dashboard.vercel.app
  • API: https://scrumpulse-api.vercel.app

The API readiness response was healthy but reported environment: development. The repeatable Git-based Vercel configuration is not fully represented in the clean repository branch, so this deployment remains Needs verification before it is described as production-ready.

Scheduler#

Do not rely on a serverless API process as the durable scheduler. Configure GitHub Actions or another external scheduler and verify a terminal run result.

Post-deployment checks#

  1. API health and readiness.
  2. Dashboard home, pricing, docs, sign-in, and sign-up routes.
  3. Clerk sign-in and organization selection.
  4. Setup wizard with a non-production board.
  5. Dry-run trigger and action log.
  6. Approval and confirmation gates.
  7. Stripe test checkout and signed webhook, if billing is enabled.
  8. Scheduler execution and audit ingestion.
  9. Security headers and CORS from the dashboard origin.