Run as a mounted app
Dashboard is just a web application so you can run it as a part of existing Fastapi app for example:
from taskiq_dashboard import TaskiqDashboard
import fastapi
app = fastapi.FastAPI(...)
admin_dashboard = TaskiqDashboard(...)
app.mount('/admin', admin_dashboard.application)
One treaky thing is that your main app can't run lifespan function from TaskiqDashboard so you need to trigger it manually:
from taskiq_dashboard import TaskiqDashboard
import fastapi
admin_dashboard = TaskiqDashboard(...)
@contextlib.asynccontextmanager
async def lifespan(app: fastapi.FastAPI) -> tp.AsyncGenerator[None, None]:
dashboard_app = admin_dashboard.application
async with dashboard_app.router.lifespan_context(dashboard_app):
yield
app = fastapi.FastAPI(lifespan=lifespan)
app.mount('/admin', admin_dashboard.application)
You can see fully working example in danfimov/taskiq-dashboard-example repository.