Dagu vs Windmill

Dagu vs Windmill: декларативный YAML против платформы скриптов и приложений.

Оба работают self-hosted и оба быстрые. Windmill превращает скрипты в workflow, webhooks и low-code приложения и использует PostgreSQL. Dagu — это один бинарник, запускающий ваши команды через декларативный YAML, без БД для эксплуатации.

Workflow, вызывающий ваши команды
name: nightly-ops
schedule: "0 2 * * *"

steps:
  - id: extract
    run: python scripts/extract.py

  - id: transform
    run: ./bin/transform
    retry_policy:
      limit: 3
    depends: [extract]

  - id: notify
    run: ./scripts/slack-success.sh
    depends: [transform]

Один бинарник, без PostgreSQL

Workflow — это декларативный YAML поверх существующих команд

Executors для shell, Docker, HTTP, SSH, SQL, sub-workflow и AI-агентов

Запуск локально, через очередь или распределенно

Два способа описать работу

Windmill — это code-first платформа. Вы пишете скрипты на Python, TypeScript, Go, Bash или SQL, и она добавляет к каждому webhook и сгенерированный UI. Dagu держит workflow в YAML и обращается с вашими скриптами и бинарниками как с шагами.

  • Windmill хранит и запускает скрипты внутри платформы с авто-генерацией форм ввода.
  • Dagu описывает граф в YAML под версионным контролем и вызывает команды.
  • Оба дают зависимости, ретраи, расписания и историю запусков.

Что нужно для эксплуатации

Windmill требует PostgreSQL для состояния и очереди задач, и обычно запускает контейнеры server и worker поверх нее. Dagu — это один бинарник, который держит состояние в файлах, поэтому нет БД для развертывания, резервного копирования или обновления.

  • Dagu стартует как один процесс на локальных файлах.
  • Очередь и workers можно добавить позже без смены модели workflow.
  • Windmill хорошо масштабируется, но рассчитывает на наличие и управление PostgreSQL.

Когда выбрать Windmill

Windmill делает больше, чем оркестрацию, и эта широта и есть смысл. Если нужно место для хостинга скриптов как общих эндпоинтов и построения внутренних приложений и UI вокруг них, Windmill покрывает то, во что Dagu не идет.

  • Нужен low-code конструктор приложений и UI, а не только раннер.
  • Нужны авто-генерируемые формы, approval-шаги и много встроенных интеграций.
  • Команда предпочитает писать логику как управляемые скрипты, а не вызывать внешние команды.

Windmill vs. Dagu кратко

Dimension
Dagu
Typical alternative
Авторинг
Декларативный YAML, вызывающий ваши команды.
Скрипты на Python, TypeScript, Go, Bash или SQL внутри платформы.
Runtime
Один бинарник, файловое состояние, без БД.
Rust-сервисы и workers поверх очереди PostgreSQL.
Охват
Оркестрация через shell, Docker, HTTP, SSH, SQL и AI-агентов.
Workflow плюс low-code конструктор приложений и UI с approval flow.

FAQ

Practical questions before adopting Dagu

Заменяет ли Dagu Windmill?

Не полностью. Dagu заменяет часть оркестрации: расписания, зависимости, ретраи, логи и UI запусков. Он не дает low-code конструктор приложений Windmill, генерируемые UI или его широкий каталог интеграций. Если нужно только планировать и наблюдать команды, Dagu легче.

Нужен ли Dagu PostgreSQL?

Нет. Dagu держит состояние в локальных файлах и работает как один бинарник, так что нет БД для установки или управления. Windmill использует PostgreSQL для состояния и очереди задач.

Может ли Dagu запускать скрипты на Python и TypeScript?

Да. Шаг может запустить любую команду, поэтому Python, TypeScript, Bash или скомпилированный бинарник работают. Разница в том, что Dagu вызывает скрипты с диска, а не хостит и управляет ими, как Windmill.

Start with one workflow.

Install Dagu, move one fragile script or agent task into YAML, and decide from a real run history.

Install Dagu