Render and Demo Account Pipeline
Configure a Render deployment and safely refresh a dedicated demo Redis database.
Deploy on Render
Deploy the published Durabull Docker image as a Render web service, or build from the repository
using tooling/docker/Dockerfile with the repository root as the Docker build context. Follow
Render's Docker deployment guide or its
prebuilt image guide for the current service setup.
Pin a release tag or digest for repeatable deployments.
Configure these settings on the web service:
- Public origin: set
APP_BASE_URLandVITE_PUBLIC_APP_URLto your HTTPS app origin. - Authentication: keep
DURABULL_AUTHLESS=falseand setBETTER_AUTH_SECRET. - Encryption: set
DURABULL_REDIS_URL_ENCRYPTION_KEYbefore adding Redis connections. - Persistence: use
DATABASE_URLfor PostgreSQL, or persist/app/datawhen using PGlite. - Redis: supply a URL reachable from the web service, using TLS when the provider requires it.
- Health check: use
/api/health, then separately confirm login and Redis connectivity.
See Environment Variables for the full configuration and Docker Image and Compose for storage, backup, and upgrade requirements. The public repository does not provide a ready-to-deploy Render blueprint; configure your own services rather than relying on private Cloud service names.
MCP on the same service
The web service exposes MCP on the same hostname and port as the API and web UI:
https://<your-app-domain>/mcpThere is no separate MCP service or port. Set APP_BASE_URL to the public HTTPS origin so OAuth
resource metadata advertises the correct /mcp URL.
Follow the MCP operations runbook
after deployment. Run mcp:e2e only in staging or a disposable local environment: it registers
OAuth clients and writes tokens to the database.
Optional demo refresh pipeline
tooling/scripts/seed-demo-account.ts creates realistic queues, jobs, schedulers, and Redis keys
for a dedicated demo instance. It flushes the entire selected Redis database before seeding.
Use an isolated, disposable database containing no production or shared application data.
To run it manually from the repository root:
DURABULL_DEMO_ACCOUNT_REDIS_CONNECTION_STRING=redis://127.0.0.1:6379 bun run docker:seed:demoReplace the URL with the dedicated demo target. Confirm the selected host and Redis database
number before running. The example uses database 0; it must be dedicated to this demo.
You can schedule the same command in a Render cron job. The script suggests a 12-hour refresh cadence, but it does not install or configure that schedule for you.
After a successful run:
- Check the structured seed logs for completion and errors.
- Inspect
durabull:demo:seed-metadataanddurabull:demo:last-seededin Redis. - Open Durabull with the demo connection selected.
- Confirm that queues, delayed jobs, and scheduled jobs appear.
A refresh repopulates data; it does not run your workers or prove that jobs can complete.