Dagster Self-hosted

Published
Length
3 min read

Luis Felipe Dias

All posts

To run a dagster self hosted setup, you deploy the web server, background daemon, and database on your own servers. You then place your data pipeline code in isolated containers so the system can run jobs on a schedule. Most teams set up this stack using container clusters or virtual machines. Still, admins often give these services broad network keys and wide database roles to make deployment fast. When a single worker or user gets too much access, one bad query can break production tables or l

Self-Service Access Portals: the complete guide

Architecture patterns, implementation strategies, and security best practices. Delivered to your inbox.

Free white paper. No spam. Unsubscribe anytime.

To run a dagster self hosted setup, you deploy the web server, background daemon, and database on your own servers. You then place your data pipeline code in isolated containers so the system can run jobs on a schedule. Most teams set up this stack using container clusters or virtual machines. Still, admins often give these services broad network keys and wide database roles to make deployment fast. When a single worker or user gets too much access, one bad query can break production tables or leak private records.

How a dagster self hosted architecture works

A self hosted setup relies on three main parts that talk to one another. First, the web server hosts the user interface and reads job state from your storage database. Second, the background daemon checks schedules, watches sensors, and starts new runs from a central queue. Third, user code servers hold your pipeline definitions and launch isolated workers for each task.

This split design keeps your platform stable when data code crashes. If a bad script fails, the web interface and daemon stay online. Teams store run logs in cloud buckets and save run history in a relational database. The web server and daemon talk to user code containers over internal network ports. Because the open source version lacks built-in user login rules, teams must add network walls and role checks around these parts.

What native deployment solves and what it leaves open

Running your own stack gives your team full control over compute costs and data location. Raw data stays inside your private network, and you pick the exact server sizes for heavy jobs. You also control when to upgrade the platform and how to back up the run history database. Network rules and container roles decide which machines can talk to the web server and the state database.

Yet this native setup leaves a major operational gap during daily maintenance. Network walls and database roles only decide who can log in to a server or start a job. They do not inspect what individual queries or shell commands do while a session is active. Engineers often need direct access to the run database or worker containers to fix broken pipelines. Once an engineer logs in with a shared role, the native setup cannot block destructive commands or mask fields like emails, phone numbers, card numbers, or national IDs in query results.

Securing database and worker access in production

To keep production safe, teams must separate machine roles from human debug sessions. Automated workers should use scoped database roles that only read and write the exact tables a job needs. You should never reuse the main admin database key for daily pipeline workers or debug tasks.

Self-Service Access Portals: architecture patterns and best practices

Continue reading? Get the full guide.

Free. No spam. Unsubscribe anytime.

When engineers need to check the state database or inspect a stuck worker, avoid sharing static keys. Shared keys make it impossible to tell which person ran a specific query during an outage. Instead, require each engineer to log in with their own identity and log every command they run. Adding field masking that rewrites matched emails or card numbers in results also keeps sensitive records safe during debug work.

Check database and API queries on the wire

Identity tools, roles, and network rules decide who opens a session. Setup alone cannot check what each query does or mask sensitive values in a response once a session starts. When workflows touch Postgres, MySQL, SQL Server, MongoDB, ClickHouse, Kubernetes APIs, SSH, or internal HTTP APIs, hoop.dev runs beside those services as an open-source proxy, a sidecar for your Postgres or API. It inspects requests coming in and results going back on the wire.

Your login details and client tools stay as they are while hoop.dev guardrails refuse bad deletes or drops before they run. On responses, hoop.dev data masking rewrites matched sensitive values in memory. Furthermore, hoop.dev holds SOC 2 Type II, is MIT licensed, and writes every query and decision to an audit trail that generates evidence for HIPAA, GDPR, and PCI DSS. See the source on GitHub.

Frequently asked questions

What are the main parts of a dagster self hosted deployment?

You need a web server for the interface, a daemon for schedules, a database for run history, and a server for your pipeline code.

Does the open source version include built-in user roles?

No, the open source edition does not include built-in user login or role checks. As a result, you must manage access at the network and database level.

How can teams protect sensitive data when debugging failed runs?

Teams should block shared database keys, require individual login sessions, log every query, and apply data masking to rewrite emails and card numbers in results.

Short role checks help teams work fast. Simple rules make each review clear. Good logs keep every team safe. Scoped keys stop bad changes early.

Save the open-source gateway.

hoop is MIT-licensed infrastructure for controlling how AI agents reach production data. Star hoophq/hoop so you can inspect it, deploy it, or share it when your team starts governing agent access.