مصمّم للفرق التي ليس تنسيق سير العمل عملها الأساسي.
تنسيق سير عمل محلي أولاً يعمل ببساطة.
عرّف سير العمل بلغة YAML التصريحية؛ ملف ثنائي واحد مفتوح المصدر يشغّله محلياً أو عبر SSH مع الجداول الزمنية وإعادة المحاولات والموافقات والسجلات وواجهة ويب. تبقى سكربتاتك وحاوياتك ووكلاء الذكاء الاصطناعي كما هي دون تغيير. لا قاعدة بيانات خارجية ولا إطار عمل.
$curl -fsSL https://raw.githubusercontent.com/dagucloud/dagu/main/scripts/installer.sh | bash# runs every night at 02:00schedule: "0 2 * * *"type: chainsteps:- id: fetch_datarun: python fetch.pyretry_policy:limit: 3interval_sec: 60- id: build_reportrun: python report.py- id: notifyrun: ./notify.sh
البداية السريعة
تثبيت أمر dagu
شغّل أول سير عمل لك
تشغيله
استكشاف واجهة الويب
ثبّت Dagu وشغّل أول سير عمل لك من واجهة الويب خلال بضع دقائق.
هل تستخدم Dagu؟
ضع نجمة لـ Dagu على GitHub لحفظ المستودع وإظهار دعمك.
كل عمليات سير العمل من الدردشة
اجمع مسارات العمل المتفرقة في مكان واحد. الإنشاء والتحرير وتصحيح الأخطاء والاستعادة والتحليل، كل ذلك من دردشة الذكاء الاصطناعي التي تستخدمها بالفعل.
اعرف المزيدCreate a nightly ETL workflow
يعمل مع أي وكيل يدعم MCP
الويكي وأدلة التشغيل
احتفظ بأدلة التشغيل بصيغة Markdown بجانب مسارات العمل. حدّثها من واجهة الويب أو باستخدام أي وكيل ذكاء اصطناعي متوافق مع MCP. استخدم Git Sync لإدارة الإصدارات.
اعرف المزيدمستوى التحكم حول عملك الفعلي
كل ما يلي مضمّن في الملف الثنائي مفتوح المصدر؛ وتُفعَّل SSO وRBAC وسجلات التدقيق برخصة self-host.
الويكي وأدلة التشغيل
احتفظ بأدلة التشغيل بصيغة Markdown بجانب مسارات العمل. حدّثها من واجهة الويب أو باستخدام أي وكيل ذكاء اصطناعي متوافق مع MCP. استخدم Git Sync لإدارة الإصدارات.
قابلية المراقبة
حالة مباشرة، وسجلات stdout وstderr لكل خطوة، وتاريخ التشغيل، وoutputs، وartifacts، والموافقات في واجهة الويب. ومقاييس Prometheus مثل dagu_dag_runs_total على نقطة المقاييس.
تنفيذ مستقل عن اللغة
run: ينفّذ أي أمر shell؛ وتغطي docker.run وkubernetes.run وssh.run وhttp.request وpostgres.query وأكثر من 50 action مدمجًا الباقي. لا SDK في شيفرتك.
خادم MCP
نقطة HTTP قابلة للبث على /mcp. يفحص الوكلاء الحالة ويعاينون التغييرات ويطبّقونها ويتحكمون بالتشغيل عبر dagu_read وdagu_change وdagu_execute.
سير عمل Agent Harness
تشغيلات CLIs للوكلاء تحتفظ بسجلات stdout وstderr وبوابات الموافقة وإخفاء الأسرار والتاريخ داخل Dagu. تنفيذ معزول عبر Docker أو Podman.
إدارة الأسرار
مراجع secrets: تُحل وقت التشغيل من env والملفات وKubernetes وVault ومديري الأسرار السحابيين. تُخفى القيم في السجلات وواجهة الويب.
التحكم في الأذونات
خمسة أدوار من admin إلى viewer، وSSO عبر OIDC، ومفاتيح API، ومساحات عمل، وسجلات تدقيق. من ميزات نسخة self-host المرخّصة.
أكثر من 50 نوع خطوة مدمجًا
كل اسم أدناه متاح اليوم كخطوة. لا إضافات للتثبيت ولا شيء للاستيراد.
run:execdocker.runkubernetes.runssh.runhttp.requestpostgres.querysqlite.queryredis.*s3.uploads3.downloadsftp.uploadsftp.downloadfile.*archive.createarchive.extractjq.filterdata.convertdata.pickchat.completionharness.runhuman.tasktype: controllerdag.rundag.enqueuerouter.routewait.durationwait.untilwait.filewait.httpnoopapproval:state.getstate.setstate.diffartifact.writeartifact.readoutputs.writetemplate.renderlog.writemail.sendgit.checkoutتشغيل الإنتاج
الضمانات وأدوات الضبط بأسمائها الحقيقية.
الأداء
آلاف التشغيلات يوميًا على جهاز واحد؛ وتعتمد السعة على المعالج والقرص وشكل سير العمل. الحالة ملفات محلية: لا قاعدة بيانات تحتاج تحجيمًا أو ترحيلًا.
التنفيذ الموزع
طوابير ملفية مع حدود تزامن لكل DAG. يوزّع dagu coordinator عبر gRPC على عمال مختارين بوسوم مثل gpu=true.
الإشعارات
جدولة cron بمناطق زمنية، وcatchup_window، وoverlap_policy، وretry_policy لكل خطوة، وكشف الزومبي، ومعالجات دورة الحياة، وإشعارات البريد وwebhook، وتوجيه الحوادث.
المصادقة وRBAC
DAGU_AUTH_MODE إما none أو basic أو builtin؛ خمسة أدوار RBAC؛ مساحات عمل؛ خطوات موافقة؛ إخفاء الأسرار؛ مفاتيح API؛ ورموز webhook لكل DAG.
المعمارية
الملف الثنائي نفسه يعمل بثلاث طرق.
Standalone
عملية dagu start-all واحدة تشغّل خادم HTTP والمجدول والمنفّذ، بتخزين ملفي.
┌─────────────────────────────────────────┐ │ dagu start-all │ │ ┌───────────┐ ┌───────────┐ ┌────────┐ │ │ │ HTTP / UI │ │ Scheduler │ │Executor│ │ │ └───────────┘ └───────────┘ └────────┘ │ │ File-based storage (logs, state, queue)│ └─────────────────────────────────────────┘
Coordinator والعمال
يضع المجدول المهام في طابور ملفي؛ ويوزّعها coordinator عبر gRPC على عمال موجهين بالوسوم، ينفّذون محليًا ويعيدون الحالة.
┌───────────┐ ┌───────────┐
│ Scheduler │ │ HTTP / UI │
│ ┌───────┐ │ └─────┬─────┘
│ │ Queue │ │ │ gRPC
│ └───────┘ │ │
└─────┬─────┘ │
│ Dispatch (gRPC) │
▼ ▼
┌─────────────────────────┐
│ Coordinator │
└────────────▲────────────┘
│ poll / heartbeat
┌────────────┼────────────┐
┌──┴─────┐ ┌──┴─────┐ ┌──┴─────┐
│ Worker │ │ Worker │ │ Worker │
└────────┘ └────────┘ └────────┘Headless: DAGU_HEADLESS=true يشغّل الملف الثنائي نفسه دون واجهة ويب، لبيئات CI أو الاستخدام عبر API.
الأنماط الشائعة
Workflows للسكربتات الخاصة
حوّل السكربتات الخاصة وCLIs الداخلية وactions القابلة لإعادة الاستخدام والأدوات المثبتة وartifacts إلى workflows يمكن للفرق الأخرى طلبها أو تشغيلها بأمان.
- 1أبق السكربتات والأوامر الموجودة كما هي
- 2اعرض parameters محدودة بدلاً من وصول إنتاج واسع
- 3استدع Dagu Actions بإصدارات ومخرجات typed
- 4احفظ التقارير وlogs كـ artifacts من الدرجة الأولى
tools:
- jqlang/jq@jq-1.7.1
steps:
- id: collect
action: acme/dagu-action-export@v1.4.2
with:
dataset: customers
- id: transform
run: jq '.items[] | {id, email}' ${steps.collect.outputs.path}
stdout:
artifact: reports/customers.json
depends: [collect]
- id: publish
action: outputs.write
with:
values:
report: reports/customers.json
rows: ${steps.collect.outputs.rows}
depends: [transform]
محبوب من المطورين
تعليقات حقيقية من مجتمع Dagu على GitHub.
كنت مؤخرًا أبحث عن بديل لسير عمل الوكلاء الديناميكي (Agent Dynamic Workflow). بدأت من مسار Temporal. إن Temporal قوي، لكن إذا كان كل ما تريده هو ربط الوكلاء والسكربتات ومعالجة البيانات ومهام التشغيل ديناميكيًا، فقد تشعر أحيانًا بأن المنظومة كلها ثقيلة بعض الشيء. ثم عثرت على Dagu وشعرت بأن الاتجاه صحيح. يعمل بملف تنفيذي واحد، وتُكتب سير العمل بلغة YAML، وتُدار كملفات محلية، ومعه واجهة ويب، ولا حاجة لتشغيل قاعدة بيانات أو وسيط إضافي. الإجراءات المدمجة كثيرة أيضًا: shell وDocker وK8s Job وSSH كلها موجودة. والمفاجأة الجميلة كانت harness.run الذي يتيح ربط أدوات CLI الخاصة بوكلاء البرمجة الخارجيين مباشرة في سير العمل. ما يعجبني: أن سير العمل نفسه مجرد ملف، بينما تتكفل المنظومة بالحالة والسجلات وإعادة المحاولة والاعتماديات والواجهة. للفرق الصغيرة والبيئات الخاصة والأتمتة الشخصية وسير عمل الوكلاء، يبدو نهج Dagu المحلي أولًا مريحًا حقًا.
This is literally my dream project. I have set up GitLab at some point just to run some commands and this project is perfect for all my use case. Thank you very much!
@vnghia
Developer
I've been exploring Dagu for a few weeks and really love the Zero-Ops philosophy. The declarative YAML approach is exactly what the workflow orchestration space needs.
@vincent067
Developer
I've recently played around with Dagu for private stuff and think it could also be worth introducing at work.
@DarkWiiPlayer
Developer
مستضاف ذاتياً على بنيتك التحتية الخاصة
Dagu مرخّص بموجب GPLv3 ومجاني دائمًا. تضيف التراخيص المدفوعة SSO وRBAC وسجلات التدقيق وتوجيه الحوادث ودعم الفرق.
- أتمتة ومراقبة سير العمل الكاملة
- واجهة ويب مع تصور DAG
- منفذات Docker وSSH وHTTP
- جدولة cron وإعادة المحاولة
- ما يصل إلى مفتاحي API للأتمتة
3 تراخيص لخوادم Dagu ذاتية الاستضافة
- SSO (OIDC)
- التحكم في الوصول القائم على الأدوار
- سجل التدقيق
- دعم ذو أولوية عبر البريد والدردشة
- توجيه الحوادث
15 ترخيصًا لخوادم Dagu ذاتية الاستضافة
- SSO (OIDC)
- التحكم في الوصول القائم على الأدوار
- سجل التدقيق
- دعم ذو أولوية عبر البريد والدردشة
- توجيه الحوادث
للفرق التي تبني بنية تحتية لسير العمل القائم على الأحداث في بيئات معقدة
- استشارات معمارية للإعداد الموزع
- تنفيذ مخصص
- إرشاد إعداد MCP OIDC/SSO
- دعم الترحيل الأولي
- اجتماعات مخصصة
- اتفاقية مستوى خدمة مخصصة لوقت الاستجابة
حلول مخصّصة
بناء ميزات مصمّمة خصيصًا لاحتياجات الشركة المحددة.
حلول جاهزة للاستخدام
إنشاء إعدادات جاهزة للاستخدام تساعد الفِرَق على توسيع Dagu بسهولة دون استهلاك موارد تقنية أو موارد خوادم ضخمة.
أنشئ رخصة self-host تجريبية لمدة 14 يومًا خلال دقائق — 14 يوما, من دون بطاقة ائتمان. ابدأ تجربة الرخصة المجانية
تتضمن جميع الخطط المدفوعة دعمًا ذا أولوية عبر البريد الإلكتروني والدردشة مع استجابة أولى خلال يوم عمل واحد. عرض تفاصيل الدعم
تفاصيل ما يغطيه الترخيص ومقارنته بإصدار Community: دليل ترخيص الاستضافة الذاتية
هل تحتاج إلى موافقة داخلية؟ اقرأ موجز الاعتماد
تواصل
أسئلة أم أخطاء أم أفكار؟
افتح issue على GitHub أو اسأل في Discord أو أرسل بريدًا. الرد يأتي من المشرف لا من بوت.

