Durabull Documentation

Installation

Install Durabull for self-hosted use with a clear first-run checklist and validation steps.

This guide gives you a practical installation path for self-hosted Durabull.

If you are unsure which mode to pick first, start with Self Hosting Setup.

  1. Create a Docker network and start Redis:
docker network create durabull
docker run -d --name durabull-redis --network durabull redis:8-alpine
  1. Run Durabull with the published image:
docker run --rm -p 3000:3000 --network durabull \
  -e DURABULL_AUTHLESS=true \
  -e DURABULL_ENV_CONNECTIONS=true \
  -e DURABULL_REDIS_URL_MAIN=redis://durabull-redis:6379 \
  -e DURABULL_REDIS_URL_MAIN_ENVIRONMENT=development \
  -e DURABULL_REDIS_URL_DEFAULT=MAIN \
  -e APP_BASE_URL=http://localhost:3000 \
  -e VITE_PUBLIC_APP_URL=http://localhost:3000 \
  ghcr.io/durabullhq/durabull:latest
  1. Open http://localhost:3000.

For a full Compose setup and persistence notes, see Docker Image and Compose.

Option B: Install from Source

  1. Install dependencies:
bun install
  1. Pick your mode in .env:
DURABULL_AUTHLESS=true
DURABULL_ENV_CONNECTIONS=true
DURABULL_REDIS_URL_MAIN=redis://localhost:6379
DURABULL_REDIS_URL_MAIN_ENVIRONMENT=development
DURABULL_REDIS_URL_DEFAULT=MAIN
APP_BASE_URL=http://localhost:5173
VITE_PUBLIC_APP_URL=http://localhost:5173
  1. Start services:
bun run dev:authless

For full local infrastructure, seeded data, and contributor workflows, see Local Development.

First-Run Validation Checklist

  • GET /api/health returns status: ok
  • GET /api/mode matches expected auth, connection, and persistence mode
  • Queues load in the dashboard for your selected connection
  • Job details, scheduled jobs, and workers pages load without API errors

Next Steps After Install

  1. Read How to Use Durabull.
  2. Configure Connection Management.
  3. Standardize naming with Queue and Scheduled Job Naming Best Practices.
  4. Adopt structured logs with Log Formatting and Highlighting.