{"id":26650617,"url":"https://github.com/eoranged/rq-dashboard","last_synced_at":"2025-03-25T02:01:54.466Z","repository":{"id":2348036,"uuid":"3310740","full_name":"Parallels/rq-dashboard","owner":"Parallels","description":"Flask-based web front-end for monitoring RQ queues","archived":false,"fork":false,"pushed_at":"2024-10-29T10:28:03.000Z","size":937,"stargazers_count":1443,"open_issues_count":65,"forks_count":328,"subscribers_count":44,"default_branch":"master","last_synced_at":"2024-10-29T15:04:04.791Z","etag":null,"topics":["python","rq"],"latest_commit_sha":null,"homepage":"http://python-rq.org/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Parallels.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null}},"created_at":"2012-01-31T01:14:16.000Z","updated_at":"2024-10-29T10:26:35.000Z","dependencies_parsed_at":"2023-07-05T20:17:06.209Z","dependency_job_id":"5fbd25dd-0df6-4111-bc6b-32f000f00be4","html_url":"https://github.com/Parallels/rq-dashboard","commit_stats":{"total_commits":344,"total_committers":56,"mean_commits":6.142857142857143,"dds":0.75,"last_synced_commit":"3a3c91a910f7d82f16421c9dd29f6f1116df710a"},"previous_names":["eoranged/rq-dashboard"],"tags_count":35,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Parallels%2Frq-dashboard","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Parallels%2Frq-dashboard/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Parallels%2Frq-dashboard/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Parallels%2Frq-dashboard/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Parallels","download_url":"https://codeload.github.com/Parallels/rq-dashboard/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245383037,"owners_count":20606265,"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":["python","rq"],"created_at":"2025-03-25T02:01:52.005Z","updated_at":"2025-03-25T02:01:54.455Z","avatar_url":"https://github.com/Parallels.png","language":"Python","readme":"Introduction\n============\n\n`rq-dashboard` is a general purpose, lightweight,\n[Flask](https://flask.palletsprojects.com/)-based web front-end to monitor your\n[RQ](http://python-rq.org/) queues, jobs, and workers in realtime.\n\n[![Build Pull Request](https://github.com/Parallels/rq-dashboard/actions/workflows/pr.yaml/badge.svg)](https://github.com/Parallels/rq-dashboard/actions/workflows/pr.yaml)\n[![Publish Release](https://github.com/Parallels/rq-dashboard/actions/workflows/publish.yaml/badge.svg)](https://github.com/Parallels/rq-dashboard/actions/workflows/publish.yaml)\n[![Python\nSupport](https://img.shields.io/pypi/pyversions/rq-dashboard.svg)](https://pypi.python.org/pypi/rq-dashboard)\n![PyPI Downloads](https://img.shields.io/pypi/dw/rq-dashboard)\n\nMaturity notes\n--------------\n\nThe RQ dashboard is currently being developed and is in beta stage.\nHow migrate to version 1.0 you can find [here](https://github.com/Parallels/rq-dashboard/wiki/How-to-migrate-to-1.0)\n\nYou can find help  in the discussion page in [github]([http](https://github.com/Parallels/rq-dashboard)) or join our [discord server](https://discord.gg/reuhvMFT)\n\nInstalling with Docker\n----------------------\n\nYou can also run the dashboard inside of docker:\n\n* copy the ```docker-compose.yml``` file from the root of the repository to ```docker-compose.override.yml``` and change the environment variables to your liking.\n* run the following command:\n\n  ``` {.console}\n  $ docker-compose up\n  ```\n\nYou can also find the official image on cjlapao/rq-dashboard:latest\n\nInstalling from PyPI\n--------------------\n\n``` {.console}\n$ pip install rq-dashboard\n```\n\nRunning the dashboard\n---------------------\n\nRun the dashboard standalone, like this:\n\n``` {.console}\n$ rq-dashboard\n* Running on http://127.0.0.1:9181/\n...\n```\n\n``` {.console}\n$ rq-dashboard --help\nUsage: rq-dashboard [OPTIONS]\n\n  Run the RQ Dashboard Flask server.\n\n  All configuration can be set on the command line or through environment\n  variables of the form RQ_DASHBOARD_*. For example RQ_DASHBOARD_USERNAME.\n\n  A subset of the configuration (the configuration parameters used by the\n  underlying flask blueprint) can also be provided in a Python module\n  referenced using --config, or with a .cfg file referenced by the\n  RQ_DASHBOARD_SETTINGS environment variable.\n\nOptions:\n  -b, --bind TEXT                 IP or hostname on which to bind HTTP server\n  -p, --port INTEGER              Port on which to bind HTTP server\n  --url-prefix TEXT               URL prefix e.g. for use behind a reverse\n                                  proxy\n  --username TEXT                 HTTP Basic Auth username (not used if not\n                                  set)\n  --password TEXT                 HTTP Basic Auth password\n  -c, --config TEXT               Configuration file (Python module on search\n                                  path)\n  -u, --redis-url TEXT            Redis URL. Can be specified multiple times.\n                                  Default: redis://127.0.0.1:6379\n  --poll-interval, --interval INTEGER\n                                  Refresh interval in ms\n  --extra-path TEXT               Append specified directories to sys.path\n  --disable-delete                Disable delete jobs, clean up registries\n  --debug / --normal              Enter DEBUG mode\n  -v, --verbose                   Enable verbose logging\n  -j, --json                      Enable JSONSerializer\n  --help                          Show this message and exit.\n```\n\nIntegrating the dashboard in your Flask app\n-------------------------------------------\n\nThe dashboard can be integrated in to your own [Flask](http://flask.pocoo.org/) app by accessing the blueprint directly in the normal way, e.g.:\n\n``` {.python}\nfrom flask import Flask\nimport rq_dashboard\n\napp = Flask(__name__)\napp.config.from_object(rq_dashboard.default_settings)\nrq_dashboard.web.setup_rq_connection(app)\napp.register_blueprint(rq_dashboard.blueprint, url_prefix=\"/rq\")\n\n@app.route(\"/\")\ndef hello():\n    return \"Hello World!\"\n\nif __name__ == \"__main__\":\n    app.run()\n```\n\nIf you start the Flask app on the default port, you can access the\ndashboard at \u003chttp://localhost:5000/rq\u003e. The `cli.py:main` entry point\nprovides a simple working example.\n\nRunning on Heroku\n-----------------\n\nConsider using third-party project\n[rq-dashboard-on-heroku](https://github.com/metabolize/rq-dashboard-on-heroku),\nwhich installs rq-dashboard from PyPI and wraps in in\n[Gunicorn](https://gunicorn.org) for deployment to Heroku.\nrq-dashboard-on-heroku is maintained indepdently.\n\nRunning behind a Reverse Proxy\n-------------------------------\nYou can run the dashboard as a `systemd` service in Linux or via a `suprevisor`\nscript and then use Apache or NGINX to direct traffic to the dashboard.\n\n_This is for *non-production* functionality!_\n\nApache Reverse Proxy example:\n```\nProxyPass /rq http://127.0.0.1:5001/rq\nProxyPassReverse /rq http://127.0.0.1:5001/rq\n```\n\nSystemd service example:\n```\n[Unit]\nDescription=Redis Queue Dashboard\n[Install]\n\nWantedBy=multi-user.target\n[Service]\nExecStart=/bin/rq-dashboard -b 127.0.0.1 -p 5001 --url-prefix /rq -c rq_settings_dashboard --debug -v\nStandardOutput=file:/var/log/redis/rq-dasbhoard.log\nStandardError=file:/var/log/redis/rq-dashboard.log\nUser=redis-dash\nGroup=redis-dash\nRemainAfterExit=yes\nType=simple\nPermissionsStartOnly=false\nPrivateTmp=no\n```\n* `--debug`,`-v` are optional -- they will write `stdout` to your specified files.\n* `rq_settings_dashboard` is a Python file, with settings defined. You can use options that are available as environmental variables. (EX. `RQ_DASHBOARD_REDIS_PASSWORD = password`)\n\nDeveloping\n----------\n\nDevelop in a virtualenv and make sure you have all the necessary build\ntime (and run time) dependencies with\n\n    $ pip install -r requirements.txt\n\nDevelop in the normal way with\n\n    $ python setup.py develop\n\nStats\n-----\n\n-   [PyPI stats](https://pypistats.org/packages/rq-dashboard)\n-   [Github stats](https://github.com/Parallels/rq-dashboard/graphs/traffic)\n","funding_links":[],"categories":["Python"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feoranged%2Frq-dashboard","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feoranged%2Frq-dashboard","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feoranged%2Frq-dashboard/lists"}