Skip to main content

rq-dashboard-fast is a FastAPI-based dashboard to monitor your Redis-Queue (RQ) Jobs, Queues, and Workers

Project description

RQ Dashboard FastAPI 🛠

Redis FastAPI Python

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.

rq-dashboard-fast

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 native CronScheduler
  • 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

  1. 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.

  1. 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rq_dashboard_fast-0.9.2.tar.gz (261.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

rq_dashboard_fast-0.9.2-py3-none-any.whl (270.7 kB view details)

Uploaded Python 3

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

Hashes for rq_dashboard_fast-0.9.2.tar.gz
Algorithm Hash digest
SHA256 262ffd2a87d991fe677ecb653dc303058aadd8bc8eb7016ab426b0fc5a580e43
MD5 d64c741696100c309305de8f5dd6d675
BLAKE2b-256 7e909d008dbe649c4228d68dd80d0d94b28777bb244420f34bd177e3dc49da6a

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rq_dashboard_fast-0.9.2-py3-none-any.whl.

File metadata

File hashes

Hashes for rq_dashboard_fast-0.9.2-py3-none-any.whl
Algorithm Hash digest
SHA256 2cc2872f751a9c7010a7b60ceb9e0f4cf96e2aa79c16799675c6499baa11101c
MD5 2d86b909d2649295404604070e10c8c7
BLAKE2b-256 8f84e6a7cae7c945b48ac7c5c8cabc931b5a0b115fb5a920aabeae59985e8679

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page