Broker-agnostic admin dashboard for Taskiq.
Live demo of UI: https://taskiq-dashboard.danfimov.com/
To install taskiq-dashboard package, run the following command:
pip install taskiq-dashboardTo pull the Docker image with taskiq-dashboard application , run the following command:
docker pull ghcr.io/danfimov/taskiq-dashboard:latest-
Import and connect middleware to your Taskiq broker:
from taskiq.middlewares.taskiq_admin_middleware import TaskiqAdminMiddleware broker = ( RedisStreamBroker( url=redis_url, queue_name="my_lovely_queue", ) .with_result_backend(result_backend) .with_middlewares( TaskiqAdminMiddleware( url="http://localhost:8000", # the url to your taskiq-dashboard instance api_token="supersecret", # secret for accessing the dashboard API taskiq_broker_name="my_worker", # it will be worker name in the dashboard ) ) )
-
Run taskiq-dashboard with the following code:
from taskiq_dashboard import TaskiqDashboard from your_project.broker import broker # your Taskiq broker instance def run_admin_panel() -> None: app = TaskiqDashboard( api_token='supersecret', # the same secret as in middleware storage_type='postgresql', # or 'sqlite' database_dsn="postgresql://taskiq-dashboard:look_in_vault@postgres:5432/taskiq-dashboard", broker=broker, # pass your broker instance here to enable additional features (optional) host='0.0.0.0', port=8000, ) app.run() if __name__ == '__main__': run_admin_panel()
You can use this docker-compose.yml file to run taskiq-dashboard along with PostgreSQL:
services:
postgres:
image: postgres:18
environment:
POSTGRES_USER: taskiq-dashboard
POSTGRES_PASSWORD: look_in_vault
POSTGRES_DB: taskiq-dashboard
volumes:
- postgres_data:/var/lib/postgresql/data
ports:
- "5432:5432"
dashboard:
image: ghcr.io/danfimov/taskiq-dashboard:latest
depends_on:
- postgres
environment:
TASKIQ_DASHBOARD__STORAGE_TYPE: postgres
TASKIQ_DASHBOARD__POSTGRES__HOST: postgres
TASKIQ_DASHBOARD__API__TOKEN: supersecret
ports:
- "8000:8000"
volumes:
postgres_data:You can also run taskiq-dashboard with SQLite by using the following docker-compose.yml file:
services:
dashboard:
image: ghcr.io/danfimov/taskiq-dashboard:latest
environment:
TASKIQ_DASHBOARD__STORAGE_TYPE: sqlite
TASKIQ_DASHBOARD__SQLITE__DSN: sqlite+aiosqlite:///taskiq_dashboard.db
TASKIQ_DASHBOARD__API__TOKEN: supersecret
volumes:
- taskiq_dashboard_sqlite:/app/taskiq-dashboard.db
ports:
- "8000:8000"
volumes:
taskiq_dashboard_sqlite:Taskiq-dashboard can run with PostgreSQL or SQLite.
You can configure it using environment variables or by passing parameters directly to the TaskiqDashboard class. For a full list of configuration options, please refer to the Configuration article in documentation.
For development and contributing instructions, please refer to the Contribution guide in documentation.