Standalone
View SourceA standalone Docker image is available for situations where you want an Oban dashboard without mounting Oban.Web within your application. This is useful for:
- Running the dashboard separately from your main application
- Monitoring jobs created by Oban for Python applications
Interaction with Oban
The standalone dashboard operates in a monitoring-only capacity:
- It connects to an existing database with Oban tables already present
- It does not run migrations or create tables
- It does not process jobs (
plugins: false,queues: false) - Queue scaling operations affect the connected application's queues
When deploying to a production environment you should add authentication and potentially set read only mode.
Quick Start
Pull and run the image with your database connection:
docker run -d \
-e DATABASE_URL="postgres://user:pass@host:5432/myapp_prod" \
-p 4000:4000 \
ghcr.io/oban-bg/oban-dash
Then visit http://localhost:4000/oban.
When connecting to a database on your host machine, use host.docker.internal instead of
localhost:
docker run -d \
- -e DATABASE_URL="postgres://user:pass@host:5432/myapp_prod" \
+ -e DATABASE_URL="postgres://user:pass@host.docker.internal:5432/myapp_dev" \
-p 4000:4000 \
ghcr.io/oban-bg/oban-dashThe image is built for both amd64 and arm64 architectures. If you need to specify a platform
explicitly, use the --platform flag:
+docker run --platform linux/arm64 -d \
-e DATABASE_URL="postgres://user:pass@host.docker.internal:5432/myapp_dev" \
-p 4000:4000 \
ghcr.io/oban-bg/oban-dashConfiguration
All configuration is done through environment variables:
| Variable | Required | Default | Description |
|---|---|---|---|
DATABASE_URL | Yes | — | PostgreSQL connection URL |
POOL_SIZE | No | 5 | Database connection pool size |
PORT | No | 4000 | HTTP port |
OBAN_PREFIX | No | public | Oban table schema prefix |
OBAN_READ_ONLY | No | false | Disable job actions when true |
BASIC_AUTH_USER | No | — | Basic auth username |
BASIC_AUTH_PASS | No | — | Basic auth password |
LOG_LEVEL | No | info | Log level |
Authentication & Authorization
A simple authentication mechanism is built in and enabled with environment variables. Enable HTTP
Basic Authentication by setting both BASIC_AUTH_USER and BASIC_AUTH_PASS:
docker run -d \
-e DATABASE_URL="postgres://user:pass@host.docker.internal:5432/myapp" \
+ -e BASIC_AUTH_USER="admin" \
+ -e BASIC_AUTH_PASS="secret" \
-p 4000:4000 \
ghcr.io/oban-bg/oban-dashIt's also possible to disable job actions such as cancel, retry, delete, etc. by enabling read-only mode:
docker run -d \
-e DATABASE_URL="postgres://user:pass@host.docker.internal:5432/myapp" \
+ -e OBAN_READ_ONLY="true" \
-p 4000:4000 \
ghcr.io/oban-bg/oban-dashOban Pro
To use Oban Pro features like the Smart Engine, you'll need to build the image with your
license key. The published ghcr.io/oban-bg/oban-dash image only includes the open source
components.
Build with your Oban Pro license:
git clone https://github.com/oban-bg/oban_web.git
cd oban_web/standalone
docker build \
--build-arg OBAN_LICENSE_KEY="your_license_key" \
-t oban-dash-pro .
Then run your custom image:
docker run -d \
-e DATABASE_URL="postgres://user:pass@host.docker.internal:5432/myapp" \
-p 4000:4000 \
oban-dash-pro
DNS Resolution
The Docker image ships with a built-in inetrc file that configures the BEAM VM to use the system's native DNS resolver. This ensures compatibility with platforms that use custom internal DNS, such as Fly.io and Kubernetes with CoreDNS.
No additional configuration is required. To provide your own inetrc file, mount it and override ERL_INETRC:
docker run -d \
-e DATABASE_URL="postgres://user:pass@host.docker.internal:5432/myapp" \
+ -e ERL_INETRC="/app/custom_inetrc" \
+ -v ./my_inetrc:/app/custom_inetrc \
-p 4000:4000 \
ghcr.io/oban-bg/oban-dashHealth Checks
The container exposes a health check endpoint at /health that returns {"status":"ok"}.
Docker's built-in HEALTHCHECK is configured to monitor this endpoint automatically, making the
image suitable for orchestration systems like Kubernetes or Amazon ECS.