{"id":24353723,"url":"https://github.com/hannes221/rq-dashboard-fast","last_synced_at":"2026-04-02T21:49:26.077Z","repository":{"id":220725006,"uuid":"743490923","full_name":"Hannes221/rq-dashboard-fast","owner":"Hannes221","description":"Redis Queue Dashboard based on FastAPI","archived":false,"fork":false,"pushed_at":"2025-01-19T17:25:34.000Z","size":313,"stargazers_count":97,"open_issues_count":6,"forks_count":11,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-04T00:07:16.559Z","etag":null,"topics":["dashboard","docker","docker-image","fastapi","python","redis","redis-queue","redis-queue-monitor","rq","rq-dashboard"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Hannes221.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-01-15T10:56:12.000Z","updated_at":"2025-03-28T22:52:42.000Z","dependencies_parsed_at":"2024-03-26T10:48:13.325Z","dependency_job_id":"af381a4c-67d7-4410-9309-354f16dc6cd6","html_url":"https://github.com/Hannes221/rq-dashboard-fast","commit_stats":null,"previous_names":["hannes221/rq-dashboard-fast"],"tags_count":25,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Hannes221%2Frq-dashboard-fast","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Hannes221%2Frq-dashboard-fast/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Hannes221%2Frq-dashboard-fast/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Hannes221%2Frq-dashboard-fast/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Hannes221","download_url":"https://codeload.github.com/Hannes221/rq-dashboard-fast/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248625478,"owners_count":21135512,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dashboard","docker","docker-image","fastapi","python","redis","redis-queue","redis-queue-monitor","rq","rq-dashboard"],"created_at":"2025-01-18T16:21:14.019Z","updated_at":"2026-04-02T21:49:26.071Z","avatar_url":"https://github.com/Hannes221.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# RQ Dashboard FastAPI \u003cspan\u003e\u0026#x1F6E0;\u003c/span\u003e\n\n![Redis](https://img.shields.io/badge/redis-%23DD0031.svg?style=for-the-badge\u0026logo=redis\u0026logoColor=white)\n![FastAPI](https://img.shields.io/badge/FastAPI-005571?style=for-the-badge\u0026logo=fastapi)\n![Python](https://img.shields.io/badge/python-3670A0?style=for-the-badge\u0026logo=python\u0026logoColor=ffdd54)\n\u003cbr /\u003e\n\u003cbr /\u003e\n`RQ Dashboard FastAPI` is a general purpose, lightweight FastAPI-based web frontend to monitor your RQ queues, jobs, and workers in real-time.\nGoal of this package is to ease integration into FastAPI-Applications and provide a Docker Image for convenience.\n\n\u003cimg width=\"1645\" height=\"422\" alt=\"rq-dashboard-fast\" src=\"https://github.com/user-attachments/assets/27f51d83-47d2-4fe2-b491-8b01e8370544\" /\u003e\n\n\u003cbr /\u003e\n\nFeatured in Related Projects [Redis Queue Docs](https://github.com/rq/rq)\n\n## Features\n\n- **Real-time monitoring** — live view of queues, jobs, and workers with adaptive auto-refresh\n- **Queue card view** — donut charts showing job state breakdown at a glance, toggle between card and table view\n- **Job management** — inspect, requeue, and delete jobs; view tracebacks with syntax highlighting; export to CSV/JSON\n- **Scheduled \u0026 recurring jobs** — first-class support for one-off future jobs (`enqueue_at`/`enqueue_in`) and recurring cron jobs via RQ's native `CronScheduler`\n- **Worker monitoring** — live worker status, queue assignments, and job throughput\n- **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\n- **Dark mode** — OS-aware with manual toggle, persisted across sessions\n- **Mountable or standalone** — embed as a FastAPI sub-application on any existing app, or run directly from the terminal\n- **Docker-ready** — official images for linux/amd64 and linux/arm64\n\n## Example Usage\n\n```python\nfrom fastapi import FastAPI\nfrom rq_dashboard_fast import RedisQueueDashboard\nimport uvicorn\n\napp = FastAPI()\ndashboard = RedisQueueDashboard(\"redis://redis:6379/\", \"/rq\")\n\napp.mount(\"/rq\", dashboard)\n\nif __name__ == \"__main__\":\n    uvicorn.run(app, host=\"0.0.0.0\", port=8000)\n```\n\nAccess the Dashboard at\n\n```\nhttp://127.0.0.1:8000/rq\n```\n\n## Installing from PyPi\n\nPyPi: [rq-dashboard-fast](https://pypi.org/project/rq-dashboard-fast/)\n\n```\n$ pip install rq-dashboard-fast\n```\n\n## Running Standalone\n\nAfter installing, you can run the dashboard directly from the terminal:\n\n```\n$ rq-dashboard-fast\n```\n\nThis starts the dashboard at `http://localhost:8000/rq` using Redis at `redis://localhost:6379`.\n\nAvailable options:\n\n```\n$ rq-dashboard-fast --help\n$ rq-dashboard-fast --redis-url redis://my-redis:6379 --port 9000\n$ rq-dashboard-fast --host 127.0.0.1 --prefix /dashboard\n```\n\n| Flag | Default | Environment Variable |\n|------|---------|---------------------|\n| `--redis-url` | `redis://localhost:6379` | `REDIS_URL` |\n| `--host` | `0.0.0.0` | `FASTAPI_HOST` |\n| `--port` | `8000` | `FASTAPI_PORT` |\n| `--prefix` | `/rq` | — |\n| `--auth-config` | — | `RQ_DASH_AUTH_CONFIG` |\n\n## Authentication\n\nThe 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.\n\n```bash\nrq-dashboard-fast generate-token          # generate a token + hash pair\nrq-dashboard-fast --auth-config auth.yaml # start with auth enabled\n```\n\nSee the full documentation in [docs/authentication.md](docs/authentication.md).\n\n## Scheduled \u0026 Recurring Jobs\n\nThe 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.\n\nSee [docs/scheduling.md](docs/scheduling.md) for a full explanation.\n\n## Running in Docker\n\n1. You can run the RQ Dashboard FastAPI as a Docker container with custom Redis URL:\n\n```\ndocker run -e REDIS_URL=\u003cyour_redis_url\u003e hannes221/rq-dashboard-fast\n\n```\n\nAccess the Dashboard at\n\n```\nhttp://127.0.0.1:8000/rq\n```\n\nTo change change the port, you can specify the following flag:\n\n```\ndocker run -e REDIS_URL=\u003cyour_redis_url\u003e  -e FASTAPI_PORT=\u003cyour_fastapi_port\u003e hannes221/rq-dashboard-fast\n```\n\nReplace \u003cyour_fastapi_port\u003e with your desired FastAPI and host port.\n\n2. You can use Docker Compose by creating a docker-compose.yml file:\n\n```yml\nservices:\n  dashboard:\n    image: hannes221/rq-dashboard-fast\n    ports:\n      - '8000:8000'\n    environment:\n      - REDIS_URL=\u003cyour_redis_url\u003e\n```\n\nThen run:\n\n```\ndocker compose up\n```\n\nAccess the Dashboard at\n\n```\nhttp://127.0.0.1:8000/rq\n```\n\nTo change the part update the compose file:\n\n```yml\nservices:\n  dashboard:\n    image: hannes221/rq-dashboard-fast\n    ports:\n      - '\u003cyour_fastapi_port\u003e:\u003cyour_fastapi_port\u003e'\n    environment:\n      - REDIS_URL=\u003cyour_redis_url\u003e\n      - FASTAPI_PORT=\u003cyour_fastapi_port\u003e\n```\n\nReplace \u003cyour_fastapi_port\u003e with your desired FastAPI and host port.\n\nDocker Hub: [hannes221/rq-dashboard-fast](https://hub.docker.com/r/hannes221/rq-dashboard-fast)\n\n## Github Repository\n\nGithub: [rq-dashboard-fast](https://github.com/Hannes221/rq-dashboard-fast)\n\n```\n$ pip install rq-dashboard-fast\n```\n\n## Development\n\n### Frontend CSS (UnoCSS)\n\nThe dashboard uses [UnoCSS](https://unocss.dev/) 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.\n\n```bash\nnpm install                # Install UnoCSS CLI (first time only)\nnpm run dev:css            # Watch mode — rebuilds on template changes\nnpm run build:css          # One-off build\n```\n\nUnoCSS 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:\n\n- **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.)\n- **Safelist** — badge classes that are constructed dynamically in JS (`'badge-' + state`) and wouldn't be detected by static scanning\n- **Dark mode** — class-based (`darkMode: 'class'`), toggled on `\u003chtml\u003e` via a button in the header\n\nAfter modifying templates or `uno.config.ts`, run `npm run build:css` and commit the updated `uno.css`.\n\n### Additional CSS\n\n`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.\n\n## Contributing\n\nIf you want to contribute, reach out or create a PR directly.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhannes221%2Frq-dashboard-fast","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhannes221%2Frq-dashboard-fast","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhannes221%2Frq-dashboard-fast/lists"}