{"id":35200298,"url":"https://github.com/danfimov/taskiq-dashboard","last_synced_at":"2025-12-29T11:00:12.299Z","repository":{"id":288488810,"uuid":"967948633","full_name":"danfimov/taskiq-dashboard","owner":"danfimov","description":"Broker-agnostic admin dashboard for Taskiq","archived":false,"fork":false,"pushed_at":"2025-12-01T11:13:57.000Z","size":3995,"stargazers_count":14,"open_issues_count":7,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-12-05T13:30:42.281Z","etag":null,"topics":["admin","dashboard","taskiq"],"latest_commit_sha":null,"homepage":"https://danfimov.github.io/taskiq-dashboard/","language":"CSS","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/danfimov.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"docs/contributing.md","funding":null,"license":"LICENSE","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-04-17T08:55:46.000Z","updated_at":"2025-12-03T08:26:54.000Z","dependencies_parsed_at":"2025-04-18T10:44:28.539Z","dependency_job_id":"8ee6c0eb-f174-4ef5-9461-a86b9f247117","html_url":"https://github.com/danfimov/taskiq-dashboard","commit_stats":null,"previous_names":["danfimov/taskiq-dashboard"],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/danfimov/taskiq-dashboard","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danfimov%2Ftaskiq-dashboard","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danfimov%2Ftaskiq-dashboard/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danfimov%2Ftaskiq-dashboard/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danfimov%2Ftaskiq-dashboard/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/danfimov","download_url":"https://codeload.github.com/danfimov/taskiq-dashboard/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danfimov%2Ftaskiq-dashboard/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28114980,"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","status":"online","status_checked_at":"2025-12-29T02:00:07.021Z","response_time":58,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["admin","dashboard","taskiq"],"created_at":"2025-12-29T11:00:09.423Z","updated_at":"2025-12-29T11:00:12.293Z","avatar_url":"https://github.com/danfimov.png","language":"CSS","funding_links":[],"categories":[],"sub_categories":[],"readme":"# taskiq-dashboard\n\n[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/taskiq-dashboard?style=for-the-badge\u0026logo=python)](https://pypi.org/project/taskiq-dashboard/)\n[![PyPI](https://img.shields.io/pypi/v/taskiq-dashboard?style=for-the-badge\u0026logo=pypi)](https://pypi.org/project/taskiq-dashboard/)\n[![Checks](https://img.shields.io/github/check-runs/danfimov/taskiq-dashboard/main?nameFilter=Tests%20(3.12)\u0026style=for-the-badge)](https://github.com/danfimov/taskiq-dashboard)\n\nBroker-agnostic admin dashboard for Taskiq.\n\nLive demo of UI: [https://taskiq-dashboard.danfimov.com/](https://taskiq-dashboard.danfimov.com/)\n\n## Installation\n\nTo install `taskiq-dashboard` package, run the following command:\n\n```bash\npip install taskiq-dashboard\n```\n\nTo pull the Docker image with `taskiq-dashboard` application , run the following command:\n\n```bash\ndocker pull ghcr.io/danfimov/taskiq-dashboard:latest\n```\n\n## Usage\n\n### Run with code\n\n1. Import and connect middleware to your Taskiq broker:\n\n    ```python\n    from taskiq_dashboard import DashboardMiddleware\n\n    broker = (\n        RedisStreamBroker(\n            url=redis_url,\n            queue_name=\"my_lovely_queue\",\n        )\n        .with_result_backend(result_backend)\n        .with_middlewares(\n            DashboardMiddleware(\n                url=\"http://localhost:8000\", # the url to your taskiq-dashboard instance\n                api_token=\"supersecret\",  # secret for accessing the dashboard API\n                broker_name=\"my_worker\",  # it will be worker name in the dashboard\n            )\n        )\n    )\n    ```\n\n2. Run taskiq-dashboard with the following code:\n\n    ```python\n    from taskiq_dashboard import TaskiqDashboard\n    from your_project.broker import broker  # your Taskiq broker instance\n\n\n    def run_admin_panel() -\u003e None:\n        app = TaskiqDashboard(\n            api_token='supersecret', # the same secret as in middleware\n            storage_type='postgresql',  # or 'sqlite'\n            database_dsn=\"postgresql://taskiq-dashboard:look_in_vault@postgres:5432/taskiq-dashboard\",\n            broker=broker,  # pass your broker instance here to enable additional features (optional)\n            host='0.0.0.0',\n            port=8000,\n        )\n        app.run()\n\n\n    if __name__ == '__main__':\n        run_admin_panel()\n    ```\n\n### Run inside docker container\n\nYou can use this `docker-compose.yml` file to run `taskiq-dashboard` along with PostgreSQL:\n\n```yaml\nservices:\n  postgres:\n    image: postgres:18\n    environment:\n      POSTGRES_USER: taskiq-dashboard\n      POSTGRES_PASSWORD: look_in_vault\n      POSTGRES_DB: taskiq-dashboard\n    volumes:\n      - postgres_data:/var/lib/postgresql/data\n    ports:\n      - \"5432:5432\"\n\n  dashboard:\n    image: ghcr.io/danfimov/taskiq-dashboard:latest\n    depends_on:\n      - postgres\n    environment:\n      TASKIQ_DASHBOARD__STORAGE_TYPE: postgres\n      TASKIQ_DASHBOARD__POSTGRES__HOST: postgres\n      TASKIQ_DASHBOARD__API__TOKEN: supersecret\n    ports:\n      - \"8000:8000\"\n\nvolumes:\n  postgres_data:\n```\n\nYou can also run `taskiq-dashboard` with SQLite by using the following `docker-compose.yml` file:\n\n```yaml\nservices:\n  dashboard:\n    image: ghcr.io/danfimov/taskiq-dashboard:latest\n    environment:\n      TASKIQ_DASHBOARD__STORAGE_TYPE: sqlite\n      TASKIQ_DASHBOARD__SQLITE__DSN: sqlite+aiosqlite:///taskiq_dashboard.db\n      TASKIQ_DASHBOARD__API__TOKEN: supersecret\n    volumes:\n      - taskiq_dashboard_sqlite:/app/taskiq-dashboard.db\n    ports:\n      - \"8000:8000\"\n\nvolumes:\n  taskiq_dashboard_sqlite:\n```\n\n## Configuration\n\nTaskiq-dashboard can run with PostgreSQL or SQLite.\n\nYou 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](https://danfimov.github.io/taskiq-dashboard/#configuration) in documentation.\n\n## Development\n\nFor development and contributing instructions, please refer to the [Contribution guide](https://danfimov.github.io/taskiq-dashboard/contributing/) in documentation.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdanfimov%2Ftaskiq-dashboard","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdanfimov%2Ftaskiq-dashboard","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdanfimov%2Ftaskiq-dashboard/lists"}