Skip to content

Configuration Reference

All Dagu configuration options.

Configuration File

Default: ~/.config/dagu/config.yaml

yaml
# Server
host: "127.0.0.1"
port: 8080
base_path: ""              # For reverse proxy (e.g., "/dagu")
api_base_path: "/api/v1"    # API endpoint base path
tz: "America/New_York"
debug: false
log_format: "text"         # "text" or "json"
headless: false
skip_examples: false       # Skip creating example DAGs
metrics: "private"        # Metrics endpoint: "private" (default) or "public"

# Terminal (web-based shell access)
terminal:
  enabled: false          # Enable web terminal (default: false)
  max_sessions: 5         # Max concurrent terminals per server (default: 5)

# Audit Logging
audit:
  enabled: true           # Enable audit logging (default: true)
  retention_days: 7        # Days to keep audit logs (default: 7, 0 = keep forever)

# Session Storage
session:
  max_per_user: 100        # Max sessions per user (default: 100, 0 = unlimited)

# Directories (must be under "paths" key)
paths:
  dags_dir: "~/.config/dagu/dags"
  docs_dir: ""                # Auto: {dags_dir}/docs
  log_dir: "~/.local/share/dagu/logs"
  data_dir: "~/.local/share/dagu/data"
  suspend_flags_dir: "~/.local/share/dagu/suspend"
  admin_logs_dir: "~/.local/share/dagu/logs/admin"
  base_config: "~/.config/dagu/base.yaml"
  dag_runs_dir: ""            # Auto: {data_dir}/dag-runs
  queue_dir: ""              # Auto: {data_dir}/queue
  proc_dir: ""               # Auto: {data_dir}/proc
  service_registry_dir: ""    # Auto: {data_dir}/service-registry
  executable: ""            # Auto: current executable path

# External Secret Providers
secrets:
  vault:
    address: "https://vault.example.com"
    token: "hvs.DummyToken"

# Permissions
permissions:
  write_dags: true         # Create/edit/delete DAGs
  run_dags: true           # Run/stop/retry DAGs

# Authentication
auth:
  mode: "builtin"          # "none", "basic", or "builtin" (default)

  # Builtin auth (user management with RBAC)
  builtin:
    token:
      secret: "your-secret-key"  # Auto-generated if not set
      ttl: "24h"

  # Basic auth (simple username/password)
  basic:
    username: "admin"
    password: "secret"

  # OIDC auth (auto-enabled under builtin mode when all required fields are set)
  oidc:
    client_id: "your-client-id"
    client_secret: "your-client-secret"
    client_url: "https://dagu.example.com"
    issuer: "https://accounts.google.com"
    scopes: ["openid", "profile", "email"]
    # Builtin-specific settings (only when mode=builtin)
    auto_signup: false        # Auto-create users on first login
    default_role: "viewer"    # Role for new users
    allowed_domains: []       # Restrict by email domain
    button_label: "Login with SSO"

# TLS/HTTPS
tls:
  cert_file: "/path/to/cert.pem"
  key_file: "/path/to/key.pem"

# UI
ui:
  navbar_color: "#1976d2"     # Hex or CSS color
  navbar_title: "Dagu"
  log_encoding_charset: "utf-8"  # Character encoding for log files (see supported encodings below)
  max_dashboard_page_limit: 100
  dags:
    sort_field: "name"        # Default sort field (name/status/lastRun/schedule/suspended)
    sort_order: "asc"         # Default sort order (asc/desc)

latest_status_today: true      # Show only today's status

# Execution
default_execution_mode: "local"  # "local" (default) or "distributed"

# Queues
queues:
  enabled: true          # Default: true
  config:
    - name: "critical"
      max_concurrency: 5   # Maximum concurrent DAG runs
    - name: "batch"
      max_concurrency: 1
    - name: "default"
      max_concurrency: 2

# Remote Nodes
remote_nodes:
  - name: "staging"
    api_base_url: "https://staging.example.com/api/v1"
    is_basic_auth: true
    basic_auth_username: "admin"
    basic_auth_password: "password"
  - name: "production"
    api_base_url: "https://prod.example.com/api/v1"
    is_auth_token: true
    auth_token: "prod-token"
    skip_tls_verify: false

# Coordinator (for distributed execution)
coordinator:
  enabled: true           # Enable coordinator (default: true)
  host: "127.0.0.1"       # Bind address
  port: 50055             # gRPC port
  health_port: 8091       # HTTP health check port (0 to disable)

# Worker (for distributed execution)
worker:
  id: ""                  # Worker ID (default: hostname@PID)
  max_active_runs: 100      # Max parallel task executions
  health_port: 8092         # HTTP health check port (0 to disable)
  labels:                 # Worker capabilities
    gpu: "false"
    memory: "16G"
    region: "us-east-1"
  postgres_pool:           # PostgreSQL connection pool (shared-nothing mode only)
    max_open_conns: 25      # Total connections across ALL PostgreSQL DSNs (default: 25)
    max_idle_conns: 5       # Idle connections per DSN (default: 5)
    conn_max_lifetime: 300  # Connection lifetime in seconds (default: 300)
    conn_max_idle_time: 60   # Idle connection timeout in seconds (default: 60)

# Peer TLS configuration (for distributed execution)
peer:
  insecure: true          # Use h2c instead of TLS (default: true)
  cert_file: ""            # TLS certificate for peer connections
  key_file: ""             # TLS key for peer connections
  client_ca_file: ""        # CA certificate for peer verification (mTLS)
  skip_tls_verify: false    # Skip TLS certificate verification

# Scheduler
scheduler:
  port: 8090              # Health check port (0 to disable)
  lock_stale_threshold: "30s"  # Time after which a scheduler lock is considered stale
  lock_retry_interval: "5s"   # Interval between lock acquisition attempts
  zombie_detection_interval: "45s"  # Interval for detecting zombie DAG runs (0 to disable)
  retry_failure_window: "24h"  # Lookback window for DAG-level retry scanning (0 to disable). Current limitation: window uses the original DAG-run time bucket, not the latest failed attempt timestamp.
  failure_threshold: 3             # Consecutive stale checks before marking a run as failed

# Local proc heartbeat/liveness (used by all local run owners: server, scheduler, CLI runs, and workers)
proc:
  heartbeat_interval: "5s"         # How often local workflow processes write a heartbeat timestamp
  heartbeat_sync_interval: "10s"   # How often heartbeat files are fsynced to disk
  stale_threshold: "90s"           # Time after which a heartbeat is considered stale

# Resource Monitoring
monitoring:
  retention: "24h"        # How long to keep resource history (default: 24h)
  interval: "5s"          # How often to collect metrics (default: 5s)

# Git Sync
git_sync:
  enabled: false
  repository: "github.com/your-org/dags"
  branch: "main"
  path: ""                 # Subdirectory in repo (empty = root)
  push_enabled: true

  auth:
    type: "token"          # "token" or "ssh"
    token: "${GITHUB_TOKEN}"
    ssh_key_path: ""
    ssh_passphrase: ""

  auto_sync:
    enabled: false
    on_startup: true
    interval: 300          # Seconds (0 = no periodic sync)

  commit:
    author_name: "Dagu"
    author_email: "dagu@localhost"

Environment Variables

All options support DAGU_ prefix.

Note: For security, Dagu filters which system environment variables are passed to step processes and sub DAGs. System variables are available for expansion (${VAR}) in DAG configuration, but only whitelisted variables (PATH, HOME, LANG, TZ, SHELL) and variables with allowed prefixes (DAGU_*, LC_*, DAG_*) are passed to the step execution environment. See Operations - Security for details.

Server

  • DAGU_HOST - Server host (default: 127.0.0.1)
  • DAGU_PORT - Server port (default: 8080)
  • DAGU_BASE_PATH - Base path for reverse proxy
  • DAGU_API_BASE_URL - DEPRECATED - Use api_base_path config instead
  • DAGU_TZ - Server timezone
  • DAGU_DEBUG - Enable debug mode
  • DAGU_LOG_FORMAT - Log format (text/json)
  • DAGU_HEADLESS - Run without UI
  • DAGU_LATEST_STATUS_TODAY - Show only today's status
  • DAGU_SKIP_EXAMPLES - Skip automatic creation of example DAGs (default: false)
  • DAGU_SERVER_METRICS - Metrics endpoint access: private (default) or public

Terminal

  • DAGU_TERMINAL_ENABLED - Enable web-based terminal (default: false)
  • DAGU_TERMINAL_MAX_SESSIONS - Maximum concurrent terminal sessions (default: 5)

Audit Logging

  • DAGU_AUDIT_ENABLED - Enable audit logging (default: true)
  • DAGU_AUDIT_RETENTION_DAYS - Days to keep audit logs (default: 7, 0 = keep forever)

Session Storage

  • DAGU_SESSION_MAX_PER_USER - Max sessions per user (default: 100, 0 = unlimited)

Directories

  • DAGU_HOME - Set all directories to this path (can be overridden by --dagu-home flag)
  • DAGU_DAGS_DIR - DAG definitions
  • DAGU_DAGS - Alternative to DAGU_DAGS_DIR
  • DAGU_DOCS_DIR - Documents directory (default: {dags_dir}/docs)
  • DAGU_LOG_DIR - Log files
  • DAGU_DATA_DIR - Application data
  • DAGU_SUSPEND_FLAGS_DIR - Suspend flags
  • DAGU_ADMIN_LOG_DIR - Admin logs
  • DAGU_BASE_CONFIG - Base configuration
  • DAGU_DAG_RUNS_DIR - DAG run data directory
  • DAGU_QUEUE_DIR - Queue data directory
  • DAGU_PROC_DIR - Process data directory
  • DAGU_SERVICE_REGISTRY_DIR - Service registry data directory
  • DAGU_EXECUTABLE - Path to Dagu executable

Note: The --dagu-home CLI flag takes precedence over the DAGU_HOME environment variable.

Authentication

  • DAGU_AUTH_MODE - Authentication mode: none, basic, or builtin (default: builtin)

Builtin Auth (RBAC)

  • DAGU_AUTH_TOKEN_SECRET - JWT signing secret (auto-generated if not set)
  • DAGU_AUTH_TOKEN_TTL - JWT token expiry (default: 24h)
  • DAGU_AUTH_BUILTIN_INITIAL_ADMIN_USERNAME - Auto-provision admin username on first startup (requires password)
  • DAGU_AUTH_BUILTIN_INITIAL_ADMIN_PASSWORD - Auto-provision admin password on first startup (requires username, minimum 8 characters)
  • DAGU_USERS_DIR - User data directory (default: {data_dir}/users)

Basic Auth

  • DAGU_AUTH_BASIC_USERNAME - Basic auth username
  • DAGU_AUTH_BASIC_PASSWORD - Basic auth password

OIDC Auth

OIDC settings (used under builtin auth mode, auto-enabled when all required fields are set):

  • DAGU_AUTH_OIDC_CLIENT_ID - OAuth2 client ID from your OIDC provider
  • DAGU_AUTH_OIDC_CLIENT_SECRET - OAuth2 client secret
  • DAGU_AUTH_OIDC_CLIENT_URL - Base URL of your Dagu instance (for callback)
  • DAGU_AUTH_OIDC_ISSUER - OIDC provider URL
  • DAGU_AUTH_OIDC_SCOPES - OAuth2 scopes (comma-separated, default: openid,profile,email)
  • DAGU_AUTH_OIDC_WHITELIST - Email addresses allowed to authenticate (comma-separated)

Builtin-specific OIDC settings (only used when auth.mode=builtin):

  • DAGU_AUTH_OIDC_AUTO_SIGNUP - Auto-create users on first OIDC login (default: false)
  • DAGU_AUTH_OIDC_DEFAULT_ROLE - Role for auto-created users (default: viewer)
  • DAGU_AUTH_OIDC_ALLOWED_DOMAINS - Email domains allowed to authenticate (comma-separated)
  • DAGU_AUTH_OIDC_BUTTON_LABEL - SSO login button text (default: Login with SSO)
  • DAGU_AUTH_OIDC_GROUPS_CLAIM - JWT claim containing group membership (default: groups)
  • DAGU_AUTH_OIDC_ROLE_ATTRIBUTE_PATH - jq expression for role extraction
  • DAGU_AUTH_OIDC_ROLE_ATTRIBUTE_STRICT - Deny login when no valid role found (default: false)
  • DAGU_AUTH_OIDC_SKIP_ORG_ROLE_SYNC - Only assign role on first login (default: false)

TLS/HTTPS

  • DAGU_CERT_FILE - SSL certificate
  • DAGU_KEY_FILE - SSL key

UI

  • DAGU_UI_NAVBAR_COLOR - Nav bar color
  • DAGU_UI_NAVBAR_TITLE - Nav bar title
  • DAGU_UI_LOG_ENCODING_CHARSET - Log file character encoding (see Supported Log Encodings)
  • DAGU_UI_MAX_DASHBOARD_PAGE_LIMIT - Dashboard limit
  • DAGU_UI_DAGS_SORT_FIELD - Default DAGs page sort field
  • DAGU_UI_DAGS_SORT_ORDER - Default DAGs page sort order

Queue

  • DAGU_QUEUE_ENABLED - Enable queue system (default: true)

Execution

  • DAGU_DEFAULT_EXECUTION_MODE - Default execution mode: local (default) or distributed. When distributed, all DAGs are dispatched to workers through the coordinator, even without an explicit worker_selector. Use worker_selector: local in a DAG to override.

Coordinator

  • DAGU_COORDINATOR_ENABLED - Enable coordinator service (default: true)
  • DAGU_COORDINATOR_HOST - Coordinator bind address (default: 127.0.0.1)
  • DAGU_COORDINATOR_ADVERTISE - Address to advertise in service registry (default: auto-detected hostname)
  • DAGU_COORDINATOR_PORT - Coordinator gRPC port (default: 50055)
  • DAGU_COORDINATOR_HEALTH_PORT - Coordinator HTTP health check port (default: 8091, 0 to disable)

Worker

  • DAGU_WORKER_ID - Worker instance ID (default: hostname@PID)
  • DAGU_WORKER_MAX_ACTIVE_RUNS - Max concurrent task executions (default: 100)
  • DAGU_WORKER_HEALTH_PORT - Worker HTTP health check port (default: 8092, 0 to disable)
  • DAGU_WORKER_LABELS - Worker labels (format: key1=value1,key2=value2)
  • DAGU_WORKER_POSTGRES_POOL_MAX_OPEN_CONNS - PostgreSQL max open connections across all DSNs (default: 25)
  • DAGU_WORKER_POSTGRES_POOL_MAX_IDLE_CONNS - PostgreSQL max idle connections per DSN (default: 5)
  • DAGU_WORKER_POSTGRES_POOL_CONN_MAX_LIFETIME - PostgreSQL connection max lifetime in seconds (default: 300)
  • DAGU_WORKER_POSTGRES_POOL_CONN_MAX_IDLE_TIME - PostgreSQL connection max idle time in seconds (default: 60)

Peer (for distributed TLS)

  • DAGU_PEER_INSECURE - Use insecure connection (default: true)
  • DAGU_PEER_CERT_FILE - TLS certificate for peer connections
  • DAGU_PEER_KEY_FILE - TLS key for peer connections
  • DAGU_PEER_CLIENT_CA_FILE - CA certificate for peer verification (mTLS)
  • DAGU_PEER_SKIP_TLS_VERIFY - Skip TLS certificate verification

Scheduler

  • DAGU_SCHEDULER_PORT - Health check server port (default: 8090)
  • DAGU_SCHEDULER_LOCK_STALE_THRESHOLD - Time after which a scheduler lock is considered stale (default: 30s)
  • DAGU_SCHEDULER_LOCK_RETRY_INTERVAL - Interval between lock acquisition attempts (default: 5s)
  • DAGU_SCHEDULER_ZOMBIE_DETECTION_INTERVAL - Interval for detecting zombie DAG runs (default: 45s, 0 to disable)
  • DAGU_SCHEDULER_FAILURE_THRESHOLD - Consecutive stale checks before marking a run as failed (default: 3)

Proc Liveness

These settings apply to all locally owned DAG runs, not just dagu scheduler.

  • DAGU_PROC_HEARTBEAT_INTERVAL - How often local workflow processes write a heartbeat timestamp (default: 5s)
  • DAGU_PROC_HEARTBEAT_SYNC_INTERVAL - How often heartbeat files are fsynced to disk (default: 10s)
  • DAGU_PROC_STALE_THRESHOLD - Time after which a heartbeat is considered stale (default: 90s)
  • DAGU_SCHEDULER_HEARTBEAT_INTERVAL - Deprecated alias for DAGU_PROC_HEARTBEAT_INTERVAL
  • DAGU_SCHEDULER_HEARTBEAT_SYNC_INTERVAL - Deprecated alias for DAGU_PROC_HEARTBEAT_SYNC_INTERVAL
  • DAGU_SCHEDULER_STALE_THRESHOLD - Deprecated alias for DAGU_PROC_STALE_THRESHOLD

Legacy YAML keys scheduler.heartbeat_interval, scheduler.heartbeat_sync_interval, and scheduler.stale_threshold are also still accepted as deprecated aliases. Use proc.* for new configuration. If both are set, proc.* takes precedence.

Resource Monitoring

  • DAGU_MONITORING_RETENTION - How long to keep resource history (default: 24h)
  • DAGU_MONITORING_INTERVAL - How often to collect resource metrics (default: 5s)

External Secrets

  • DAGU_SECRETS_VAULT_ADDRESS - Default Vault server address for the vault secret provider
  • DAGU_SECRETS_VAULT_TOKEN - Default Vault token for the vault secret provider

Git Sync

  • DAGU_GITSYNC_ENABLED - Enable git sync (default: false)
  • DAGU_GITSYNC_REPOSITORY - Remote repository URL
  • DAGU_GITSYNC_BRANCH - Branch to sync (default: main)
  • DAGU_GITSYNC_PATH - Subdirectory in repo (default: "")
  • DAGU_GITSYNC_PUSH_ENABLED - Enable push operations (default: true)
  • DAGU_GITSYNC_AUTH_TYPE - Auth type: token or ssh (default: token)
  • DAGU_GITSYNC_AUTH_TOKEN - Personal access token for HTTPS auth
  • DAGU_GITSYNC_AUTH_SSH_KEY_PATH - Path to SSH private key
  • DAGU_GITSYNC_AUTH_SSH_PASSPHRASE - SSH key passphrase
  • DAGU_GITSYNC_AUTOSYNC_ENABLED - Enable auto-sync background worker (default: false)
  • DAGU_GITSYNC_AUTOSYNC_ON_STARTUP - Pull on startup (default: true)
  • DAGU_GITSYNC_AUTOSYNC_INTERVAL - Sync interval in seconds (default: 300, 0 = no periodic sync)
  • DAGU_GITSYNC_COMMIT_AUTHOR_NAME - Git commit author name (default: Dagu)
  • DAGU_GITSYNC_COMMIT_AUTHOR_EMAIL - Git commit author email (default: dagu@localhost)

Legacy Environment Variables (Deprecated)

These variables are maintained for backward compatibility but should not be used in new deployments:

  • DAGU__ADMIN_NAVBAR_COLOR - Use DAGU_UI_NAVBAR_COLOR
  • DAGU__ADMIN_NAVBAR_TITLE - Use DAGU_UI_NAVBAR_TITLE
  • DAGU__ADMIN_PORT - Use DAGU_PORT
  • DAGU__ADMIN_HOST - Use DAGU_HOST
  • DAGU__DATA - Use DAGU_DATA_DIR
  • DAGU__SUSPEND_FLAGS_DIR - Use DAGU_SUSPEND_FLAGS_DIR
  • DAGU__ADMIN_LOGS_DIR - Use DAGU_ADMIN_LOG_DIR

Base Configuration

Shared defaults for all DAGs: ~/.config/dagu/base.yaml

yaml
# Environment
env:
  - ENVIRONMENT: production
  - LOG_LEVEL: info

# Defaults
queue: "default"
hist_retention_days: 30

# Email notifications
mail_on:
  failure: true

smtp:
  host: "smtp.gmail.com"
  port: "587"
  username: "notifications@company.com"
  password: "${SMTP_PASSWORD}"

error_mail:
  from: "dagu@company.com"
  to: "ops-team@company.com"
  prefix: "[ERROR]"
  attach_logs: true

For complete documentation on all available fields, inheritance behavior, and common patterns, see Base Configuration.

Command-Line Flags

Global Flags (All Commands)

  • --config, -c - Config file (default: ~/.config/dagu/config.yaml)
  • --dagu-home - Override DAGU_HOME for this command invocation
  • --quiet, -q - Suppress output
  • --cpu-profile - Enable CPU profiling

The --dagu-home flag sets a custom application home directory for the current command, overriding the DAGU_HOME environment variable. When set, all paths use a unified structure under the specified directory.

Example:

bash
# Use a custom home directory
dagu --dagu-home=/tmp/dagu-test start my-workflow.yaml

# Run server with isolated data
dagu --dagu-home=/opt/dagu-prod start-all

Server/Start-All

  • --host, -s - Server host
  • --port, -p - Server port
  • --dags, -d - DAGs directory

Scheduler

  • --dags, -d - DAGs directory

Configuration Precedence

  1. Command-line flags (highest)
  2. Environment variables
  3. Configuration file
  4. Base configuration
  5. Default values (lowest)
bash
# Port 9000 wins (CLI flag beats env var)
DAGU_PORT=8080 dagu start-all --port 9000

# --dagu-home flag overrides DAGU_HOME environment variable
DAGU_HOME=/opt/dagu dagu --dagu-home=/tmp/dagu-test start my-workflow.yaml

Special Environment Variables

Dagu sets metadata like DAG_RUN_ID, DAG_RUN_LOG_FILE, and the active DAG_RUN_STEP_NAME while each workflow runs. Consult Special Environment Variables for the full list and examples of how to use them in automations.

Directory Structure

Default (XDG)

~/.config/dagu/
├── dags/              # DAG definitions
├── config.yaml        # Main configuration
└── base.yaml          # Shared DAG defaults

~/.local/share/dagu/
├── logs/              # All log files
│   ├── admin/         # Admin/server logs
│   │   └── audit/     # Audit logs (daily JSONL files)
│   └── dags/          # DAG execution logs
├── data/              # Application data
│   ├── dag-runs/      # DAG run history
│   ├── queue/         # Queue data
│   ├── proc/          # Process data
│   └── service-registry/  # Service registry data
└── suspend/           # DAG suspend flags

With DAGU_HOME

$DAGU_HOME/
├── dags/              # DAG definitions
├── logs/              # All log files
│   └── admin/         # Admin/server logs
│       └── audit/     # Audit logs (daily JSONL files)
├── data/              # Application data
│   ├── dag-runs/      # DAG run history
│   ├── queue/         # Queue data
│   ├── proc/          # Process data
│   └── service-registry/  # Service registry data
├── suspend/           # DAG suspend flags
├── config.yaml        # Main configuration
└── base.yaml          # Shared DAG defaults

Configuration Examples

Minimal

yaml
port: 8080

Production

yaml
host: 0.0.0.0
port: 443

auth:
  mode: builtin
  builtin:
    token:
      secret: ${AUTH_TOKEN_SECRET}  # auto-generated if not set
      ttl: 24h

tls:
  cert_file: /etc/ssl/certs/dagu.crt
  key_file: /etc/ssl/private/dagu.key

permissions:
  write_dags: false
  run_dags: true

ui:
  navbar_color: "#ff0000"
  navbar_title: "Production"

Multi-Environment

yaml
remote_nodes:
  - name: staging
    api_base_url: https://staging.example.com/api/v1
    is_auth_token: true
    auth_token: ${STAGING_TOKEN}

  - name: production
    api_base_url: https://prod.example.com/api/v1
    is_auth_token: true
    auth_token: ${PROD_TOKEN}

Distributed Execution

yaml
# Main instance with coordinator
host: 0.0.0.0
port: 8080

coordinator:
  host: 0.0.0.0
  port: 50055

default_execution_mode: distributed  # Dispatch all DAGs to workers

# Worker configuration
worker:
  id: gpu-worker-01
  max_active_runs: 10
  labels:
    gpu: "true"
    cuda: "11.8"
    memory: "64G"
    region: "us-east-1"

# TLS configuration for peer connections
peer:
  insecure: false  # Enable TLS
  cert_file: /etc/dagu/tls/cert.pem
  key_file: /etc/dagu/tls/key.pem
  client_ca_file: /etc/dagu/tls/ca.pem

Default Values

Key Defaults

  • api_base_path: /api/v1
  • queues.enabled: true
  • permissions.write_dags: true
  • permissions.run_dags: true
  • ui.max_dashboard_page_limit: 100
  • ui.log_encoding_charset: utf-8
  • ui.dags.sort_field: name
  • ui.dags.sort_order: asc
  • log_format: text
  • host: 127.0.0.1
  • port: 8080
  • metrics: private
  • default_execution_mode: local
  • coordinator.enabled: true
  • terminal.enabled: false
  • terminal.max_sessions: 5
  • audit.enabled: true

Auto-generated Paths

When not specified, these paths are automatically set based on paths.data_dir:

  • paths.dag_runs_dir: {paths.data_dir}/dag-runs - Stores DAG run history
  • paths.queue_dir: {paths.data_dir}/queue - Stores queue data
  • paths.proc_dir: {paths.data_dir}/proc - Stores process data
  • paths.executable: Current executable path - Auto-detected from running process

Supported Log Encodings

The ui.log_encoding_charset configuration option supports a wide range of character encodings for reading log files. This is useful when your DAG steps produce output in non-UTF-8 encodings.

Common Encodings

EncodingAliasesDescription
utf-8utf8Unicode (default)
shift_jisshiftjis, sjis, s-jisJapanese (Windows)
euc-jpeucjpJapanese (Unix)
iso-2022-jpiso2022jpJapanese (Email)
gb2312gb-2312Simplified Chinese
gbkcp936, windows-936Simplified Chinese (Extended)
gb18030Simplified Chinese (Full)
big5big-5Traditional Chinese
euc-kreuckr, koreanKorean

ISO-8859 (Latin) Encodings

EncodingAliasesDescription
iso-8859-1latin1, l1Western European
iso-8859-2latin2, l2Central European
iso-8859-5cyrillicCyrillic
iso-8859-6arabicArabic
iso-8859-7greekGreek
iso-8859-8hebrewHebrew
iso-8859-9latin5, turkishTurkish
iso-8859-15latin9Western European with Euro

Windows Code Pages

EncodingAliasesDescription
windows-1250cp1250Central European
windows-1251cp1251Cyrillic
windows-1252cp1252, ansiWestern European
windows-1253cp1253Greek
windows-1254cp1254Turkish
windows-1255cp1255Hebrew
windows-1256cp1256Arabic
windows-1257cp1257Baltic
windows-1258cp1258Vietnamese

Other Encodings

EncodingAliasesDescription
koi8-rkoi8rRussian
koi8-ukoi8uUkrainian
macintoshmac, macromanMac Roman
ibm866cp866DOS Cyrillic
utf-16utf16, utf-16leUnicode (16-bit)
utf-16beutf16beUnicode (16-bit Big Endian)

Example Configuration

yaml
# For Japanese logs (Shift_JIS encoding)
ui:
  log_encoding_charset: "shift_jis"

# For Russian logs (KOI8-R encoding)
ui:
  log_encoding_charset: "koi8-r"

# For legacy Windows systems
ui:
  log_encoding_charset: "windows-1252"

See Also

Released under the MIT License.