Skip to main content
Flask + Dramatiq . Self-hosted . Open source

Flask Dramatiq Dashboard

Run Dramatiq inside a Flask app and you have working background jobs. Run Dramatiq with z4j and you also have a dashboard, persistent history, the task controls this adapter can execute safely, scheduler integration, RBAC with invitations, and a tamper-evident audit log. z4j is one container or one Python process; the agent is one pip extra in your existing Flask venv.

Flask + Dramatiq via Flask-Dramatiq is a real upgrade over Celery for teams who want simpler ergonomics and at-least-once semantics out of the box. z4j-flask wraps registration; z4j-dramatiq instruments the broker layer (Redis or RabbitMQ) without changing your actor definitions.

install

Install z4j alongside Flask + Dramatiq

1. Install the brain

bash
pip install z4j && z4j serve

First boot prints a setup URL to stderr. Open it, create the first admin, and mint a token + HMAC secret for this agent.

2. Add the agent to your Flask venv

bash
pip install z4j-flask[dramatiq]

3. Wire it into Flask

python
from flask import Flask
from z4j_flask import Z4J

app = Flask(__name__)
app.config.from_prefixed_env("Z4J_")
z4j = Z4J(app)

What you get

  • Persistent Dramatiq task history in Postgres or SQLite
  • Adapter-advertised controls: submit_task, retry_task (complete replacement inputs), purge_queue
  • Scheduler integration via apscheduler; available controls depend on that scheduler adapter
  • RBAC with invitations and password reset
  • HMAC-chained tamper-evident audit log
  • Notifications: email, Slack, Telegram, webhook
License

z4j-flask and z4j-dramatiq are Apache 2.0. Importing them into your Flask app does not affect your application's licensing. z4j is AGPL-3.0-or-later, isolated in its own process.

Dramatiq actions exposed

What the dashboard can actually do

Native actions

  • submit_task
  • retry_task (complete replacement inputs)
  • purge_queue
  • cancel_task (pending only; requires [abort] and real Abortable middleware)

Event capture

Z4JMiddleware, Dramatiq's blessed observability hook.

Reconciliation

Reports unknown; the brain's event-derived snapshot remains authoritative.

other Flask stacks

Flask with a different engine

Dramatiq on other frameworks

Same engine, different framework

Start using Flask Dramatiq Dashboard

Self-hosted, open source, no SaaS, no telemetry. z4j runs anywhere Python or Docker runs.