Introduction
============
`rq-dashboard` is a general purpose, lightweight,
[Flask](https://flask.palletsprojects.com/)-based web front-end to monitor your
[RQ](http://python-rq.org/) queues, jobs, and workers in realtime.
[![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)
[![Publish Release](https://github.com/Parallels/rq-dashboard/actions/workflows/publish.yaml/badge.svg)](https://github.com/Parallels/rq-dashboard/actions/workflows/publish.yaml)
[![Python
Support](https://img.shields.io/pypi/pyversions/rq-dashboard.svg)](https://pypi.python.org/pypi/rq-dashboard)
![PyPI Downloads](https://img.shields.io/pypi/dw/rq-dashboard)
Maturity notes
--------------
The RQ dashboard is currently being developed and is in beta stage.
How migrate to version 1.0 you can find [here](https://github.com/Parallels/rq-dashboard/wiki/How-to-migrate-to-1.0)
You 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)
Installing with Docker
----------------------
You can also run the dashboard inside of docker:
* 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.
* run the following command:
``` {.console}
$ docker-compose up
```
You can also find the official image on cjlapao/rq-dashboard:latest
Installing from PyPI
--------------------
``` {.console}
$ pip install rq-dashboard
```
Running the dashboard
---------------------
Run the dashboard standalone, like this:
``` {.console}
$ rq-dashboard
* Running on http://127.0.0.1:9181/
...
```
``` {.console}
$ rq-dashboard --help
Usage: rq-dashboard [OPTIONS]
Run the RQ Dashboard Flask server.
All configuration can be set on the command line or through environment
variables of the form RQ_DASHBOARD_*. For example RQ_DASHBOARD_USERNAME.
A subset of the configuration (the configuration parameters used by the
underlying flask blueprint) can also be provided in a Python module
referenced using --config, or with a .cfg file referenced by the
RQ_DASHBOARD_SETTINGS environment variable.
Options:
-b, --bind TEXT IP or hostname on which to bind HTTP server
-p, --port INTEGER Port on which to bind HTTP server
--url-prefix TEXT URL prefix e.g. for use behind a reverse
proxy
--username TEXT HTTP Basic Auth username (not used if not
set)
--password TEXT HTTP Basic Auth password
-c, --config TEXT Configuration file (Python module on search
path)
-u, --redis-url TEXT Redis URL. Can be specified multiple times.
Default: redis://127.0.0.1:6379
--poll-interval, --interval INTEGER
Refresh interval in ms
--extra-path TEXT Append specified directories to sys.path
--disable-delete Disable delete jobs, clean up registries
--debug / --normal Enter DEBUG mode
-v, --verbose Enable verbose logging
-j, --json Enable JSONSerializer
--help Show this message and exit.
```
Integrating the dashboard in your Flask app
-------------------------------------------
The 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.:
``` {.python}
from flask import Flask
import rq_dashboard
app = Flask(__name__)
app.config.from_object(rq_dashboard.default_settings)
rq_dashboard.web.setup_rq_connection(app)
app.register_blueprint(rq_dashboard.blueprint, url_prefix="/rq")
@app.route("/")
def hello():
return "Hello World!"
if __name__ == "__main__":
app.run()
```
If you start the Flask app on the default port, you can access the
dashboard at <http://localhost:5000/rq>. The `cli.py:main` entry point
provides a simple working example.
Running on Heroku
-----------------
Consider using third-party project
[rq-dashboard-on-heroku](https://github.com/metabolize/rq-dashboard-on-heroku),
which installs rq-dashboard from PyPI and wraps in in
[Gunicorn](https://gunicorn.org) for deployment to Heroku.
rq-dashboard-on-heroku is maintained indepdently.
Running behind a Reverse Proxy
-------------------------------
You can run the dashboard as a `systemd` service in Linux or via a `suprevisor`
script and then use Apache or NGINX to direct traffic to the dashboard.
_This is for *non-production* functionality!_
Apache Reverse Proxy example:
```
ProxyPass /rq http://127.0.0.1:5001/rq
ProxyPassReverse /rq http://127.0.0.1:5001/rq
```
Systemd service example:
```
[Unit]
Description=Redis Queue Dashboard
[Install]
WantedBy=multi-user.target
[Service]
ExecStart=/bin/rq-dashboard -b 127.0.0.1 -p 5001 --url-prefix /rq -c rq_settings_dashboard --debug -v
StandardOutput=file:/var/log/redis/rq-dasbhoard.log
StandardError=file:/var/log/redis/rq-dashboard.log
User=redis-dash
Group=redis-dash
RemainAfterExit=yes
Type=simple
PermissionsStartOnly=false
PrivateTmp=no
```
* `--debug`,`-v` are optional -- they will write `stdout` to your specified files.
* `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`)
Developing
----------
Develop in a virtualenv and make sure you have all the necessary build
time (and run time) dependencies with
$ pip install -r requirements.txt
Develop in the normal way with
$ python setup.py develop
Stats
-----
- [PyPI stats](https://pypistats.org/packages/rq-dashboard)
- [Github stats](https://github.com/Parallels/rq-dashboard/graphs/traffic)
Raw data
{
"_id": null,
"home_page": "https://github.com/Parallels/rq-dashboard",
"name": "rq-dashboard",
"maintainer": null,
"docs_url": null,
"requires_python": null,
"maintainer_email": null,
"keywords": null,
"author": "Vincent Driessen",
"author_email": "vincent@3rdcloud.com",
"download_url": "https://files.pythonhosted.org/packages/00/83/f97f71a75f1e6801691e24499b4592b41aacdaa0e5c1504dbf8b5d77ff57/rq_dashboard-0.8.1.2.tar.gz",
"platform": "any",
"description": "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 <http://localhost:5000/rq>. 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",
"bugtrack_url": null,
"license": "BSD",
"summary": "rq-dashboard is a general purpose, lightweight, web interface to monitor your RQ queues, jobs, and workers in realtime.",
"version": "0.8.1.2",
"project_urls": {
"Homepage": "https://github.com/Parallels/rq-dashboard"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "ff7fcf48e9079f14afab04c830d0ce033c4aab2d29bf73a8fe9da7f3467df14b",
"md5": "bc248725cd020a9336027e2e337180ba",
"sha256": "26250f102e4f3f422d43412c5e2f798aa94cccf23cda7a047bed42daf82b8def"
},
"downloads": -1,
"filename": "rq_dashboard-0.8.1.2-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "bc248725cd020a9336027e2e337180ba",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 210363,
"upload_time": "2024-10-29T10:27:59",
"upload_time_iso_8601": "2024-10-29T10:27:59.740009Z",
"url": "https://files.pythonhosted.org/packages/ff/7f/cf48e9079f14afab04c830d0ce033c4aab2d29bf73a8fe9da7f3467df14b/rq_dashboard-0.8.1.2-py2.py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "0083f97f71a75f1e6801691e24499b4592b41aacdaa0e5c1504dbf8b5d77ff57",
"md5": "406c7c4397f1bc7c25350309e2ffa91e",
"sha256": "abe07b9d916dfda0f8825b2ebc2f422d89e80b240540827bcc95447a2e579b7c"
},
"downloads": -1,
"filename": "rq_dashboard-0.8.1.2.tar.gz",
"has_sig": false,
"md5_digest": "406c7c4397f1bc7c25350309e2ffa91e",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 205554,
"upload_time": "2024-10-29T10:28:01",
"upload_time_iso_8601": "2024-10-29T10:28:01.679410Z",
"url": "https://files.pythonhosted.org/packages/00/83/f97f71a75f1e6801691e24499b4592b41aacdaa0e5c1504dbf8b5d77ff57/rq_dashboard-0.8.1.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-10-29 10:28:01",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "Parallels",
"github_project": "rq-dashboard",
"travis_ci": true,
"coveralls": false,
"github_actions": true,
"requirements": [],
"tox": true,
"lcname": "rq-dashboard"
}