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-агентов

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

At a glance

Windmill vs. Dagu кратко

Авторинг
Dagu

Декларативный YAML, вызывающий ваши команды.

Windmill

Скрипты на Python, TypeScript, Go, Bash или SQL внутри платформы.

Runtime
Dagu

Один бинарник, файловое состояние, без БД.

Windmill

Rust-сервисы и workers поверх очереди PostgreSQL.

Охват
Dagu

Оркестрация через shell, Docker, HTTP, SSH, SQL и AI-агентов.

Windmill

Workflow плюс low-code конструктор приложений и UI с approval flow.

In depth

Where each tool fits

01

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

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

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

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

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

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

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

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

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

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.

Next step

Start with one workflow.

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