rq-dashboard-fast is a FastAPI-based dashboard to monitor your Redis-Queue (RQ) Jobs, Queues, and Workers
Project description
RQ Dashboard FastAPI 🛠
RQ Dashboard FastAPI is a general purpose, lightweight FastAPI-based web frontend to monitor your RQ queues, jobs, and workers in real-time.
Goal of this package is to ease integration into FastAPI-Applications and provide a Docker Image for convenience.
Featured in Related Projects Redis Queue Docs
Features
- Real-time monitoring — live view of queues, jobs, and workers with adaptive auto-refresh
- Queue card view — donut charts showing job state breakdown at a glance, toggle between card and table view
- Job management — inspect, requeue, and delete jobs; view tracebacks with syntax highlighting; export to CSV/JSON
- Scheduled & recurring jobs — first-class support for one-off future jobs (
enqueue_at/enqueue_in) and recurring cron jobs via RQ's nativeCronScheduler - Worker monitoring — live worker status, queue assignments, and job throughput
- Token-based authentication with access scopes — issue per-token credentials that restrict visibility to specific queues, hide workers or schedulers, enforce read-only mode, and set a custom dashboard title. Ideal for sharing a scoped view with team members or clients without exposing your full infrastructure
- Dark mode — OS-aware with manual toggle, persisted across sessions
- Mountable or standalone — embed as a FastAPI sub-application on any existing app, or run directly from the terminal
- Docker-ready — official images for linux/amd64 and linux/arm64
Example Usage
from fastapi import FastAPI
from rq_dashboard_fast import RedisQueueDashboard
import uvicorn
app = FastAPI()
dashboard = RedisQueueDashboard("redis://redis:6379/", "/rq")
app.mount("/rq", dashboard)
if __name__ == "__main__":
uvicorn.run(app, host="0.0.0.0", port=8000)
Access the Dashboard at
http://127.0.0.1:8000/rq
Installing from PyPi
PyPi: rq-dashboard-fast
$ pip install rq-dashboard-fast
Running Standalone
After installing, you can run the dashboard directly from the terminal:
$ rq-dashboard-fast
This starts the dashboard at http://localhost:8000/rq using Redis at redis://localhost:6379.
Available options:
$ rq-dashboard-fast --help
$ rq-dashboard-fast --redis-url redis://my-redis:6379 --port 9000
$ rq-dashboard-fast --host 127.0.0.1 --prefix /dashboard
| Flag | Default | Environment Variable |
|---|---|---|
--redis-url |
redis://localhost:6379 |
REDIS_URL |
--host |
0.0.0.0 |
FASTAPI_HOST |
--port |
8000 |
FASTAPI_PORT |
--prefix |
/rq |
— |
--auth-config |
— | RQ_DASH_AUTH_CONFIG |
Authentication
The dashboard supports opt-in token-based authentication with per-queue access control. Generate a token, create a YAML config file with hashed tokens and queue scopes, and pass it via --auth-config or RQ_DASH_AUTH_CONFIG. When no config is provided, the dashboard runs with open access as before.
rq-dashboard-fast generate-token # generate a token + hash pair
rq-dashboard-fast --auth-config auth.yaml # start with auth enabled
See the full documentation in docs/authentication.md.
Scheduled & Recurring Jobs
The dashboard displays both one-off future-scheduled jobs (via queue.enqueue_at() / queue.enqueue_in()) and recurring cron jobs (via CronScheduler). Each appears in a different part of the UI.
See docs/scheduling.md for a full explanation.
Running in Docker
- You can run the RQ Dashboard FastAPI as a Docker container with custom Redis URL:
docker run -e REDIS_URL=<your_redis_url> hannes221/rq-dashboard-fast
Access the Dashboard at
http://127.0.0.1:8000/rq
To change change the port, you can specify the following flag:
docker run -e REDIS_URL=<your_redis_url> -e FASTAPI_PORT=<your_fastapi_port> hannes221/rq-dashboard-fast
Replace <your_fastapi_port> with your desired FastAPI and host port.
- You can use Docker Compose by creating a docker-compose.yml file:
services:
dashboard:
image: hannes221/rq-dashboard-fast
ports:
- '8000:8000'
environment:
- REDIS_URL=<your_redis_url>
Then run:
docker compose up
Access the Dashboard at
http://127.0.0.1:8000/rq
To change the part update the compose file:
services:
dashboard:
image: hannes221/rq-dashboard-fast
ports:
- '<your_fastapi_port>:<your_fastapi_port>'
environment:
- REDIS_URL=<your_redis_url>
- FASTAPI_PORT=<your_fastapi_port>
Replace <your_fastapi_port> with your desired FastAPI and host port.
Docker Hub: hannes221/rq-dashboard-fast
Github Repository
Github: rq-dashboard-fast
$ pip install rq-dashboard-fast
Development
Frontend CSS (UnoCSS)
The dashboard uses UnoCSS with utility classes applied directly in Jinja2 templates. The generated CSS file (rq_dashboard_fast/static/css/uno.css) is committed to the repo, so no Node.js is needed to run the dashboard — only to modify styles.
npm install # Install UnoCSS CLI (first time only)
npm run dev:css # Watch mode — rebuilds on template changes
npm run build:css # One-off build
UnoCSS scans all rq_dashboard_fast/templates/**/*.html files and outputs to rq_dashboard_fast/static/css/uno.css. Configuration lives in uno.config.ts and includes:
- Shortcuts — reusable class groups for buttons (
btn-delete,btn-requeue, etc.), table cells (th-cell,td-cell), and status badges (badge-failed,badge-started, etc.) - Safelist — badge classes that are constructed dynamically in JS (
'badge-' + state) and wouldn't be detected by static scanning - Dark mode — class-based (
darkMode: 'class'), toggled on<html>via a button in the header
After modifying templates or uno.config.ts, run npm run build:css and commit the updated uno.css.
Additional CSS
rq_dashboard_fast/static/css/custom.css contains styles that can't be expressed as utilities: notification toasts (dynamically created by JS) and Pygments dark mode overrides.
Contributing
If you want to contribute, reach out or create a PR directly.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file rq_dashboard_fast-0.9.2.tar.gz.
File metadata
- Download URL: rq_dashboard_fast-0.9.2.tar.gz
- Upload date:
- Size: 261.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
262ffd2a87d991fe677ecb653dc303058aadd8bc8eb7016ab426b0fc5a580e43
|
|
| MD5 |
d64c741696100c309305de8f5dd6d675
|
|
| BLAKE2b-256 |
7e909d008dbe649c4228d68dd80d0d94b28777bb244420f34bd177e3dc49da6a
|
Provenance
The following attestation bundles were made for rq_dashboard_fast-0.9.2.tar.gz:
Publisher:
docker-pypi-publish.yml on Hannes221/rq-dashboard-fast
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rq_dashboard_fast-0.9.2.tar.gz -
Subject digest:
262ffd2a87d991fe677ecb653dc303058aadd8bc8eb7016ab426b0fc5a580e43 - Sigstore transparency entry: 1244331247
- Sigstore integration time:
-
Permalink:
Hannes221/rq-dashboard-fast@d538da0e3ec0f5bafe822adbcd148b271572eaf1 -
Branch / Tag:
refs/tags/v0.9.2 - Owner: https://github.com/Hannes221
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
docker-pypi-publish.yml@d538da0e3ec0f5bafe822adbcd148b271572eaf1 -
Trigger Event:
release
-
Statement type:
File details
Details for the file rq_dashboard_fast-0.9.2-py3-none-any.whl.
File metadata
- Download URL: rq_dashboard_fast-0.9.2-py3-none-any.whl
- Upload date:
- Size: 270.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2cc2872f751a9c7010a7b60ceb9e0f4cf96e2aa79c16799675c6499baa11101c
|
|
| MD5 |
2d86b909d2649295404604070e10c8c7
|
|
| BLAKE2b-256 |
8f84e6a7cae7c945b48ac7c5c8cabc931b5a0b115fb5a920aabeae59985e8679
|
Provenance
The following attestation bundles were made for rq_dashboard_fast-0.9.2-py3-none-any.whl:
Publisher:
docker-pypi-publish.yml on Hannes221/rq-dashboard-fast
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rq_dashboard_fast-0.9.2-py3-none-any.whl -
Subject digest:
2cc2872f751a9c7010a7b60ceb9e0f4cf96e2aa79c16799675c6499baa11101c - Sigstore transparency entry: 1244331251
- Sigstore integration time:
-
Permalink:
Hannes221/rq-dashboard-fast@d538da0e3ec0f5bafe822adbcd148b271572eaf1 -
Branch / Tag:
refs/tags/v0.9.2 - Owner: https://github.com/Hannes221
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
docker-pypi-publish.yml@d538da0e3ec0f5bafe822adbcd148b271572eaf1 -
Trigger Event:
release
-
Statement type: