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