مصمّم للفرق التي ليس تنسيق سير العمل عملها الأساسي.

تنسيق سير عمل محلي أولاً يعمل ببساطة.

عرّف سير العمل بلغة YAML التصريحية؛ ملف ثنائي واحد مفتوح المصدر يشغّله محلياً أو عبر SSH مع الجداول الزمنية وإعادة المحاولات والموافقات والسجلات وواجهة ويب. تبقى سكربتاتك وحاوياتك ووكلاء الذكاء الاصطناعي كما هي دون تغيير. لا قاعدة بيانات خارجية ولا إطار عمل.

تثبيت أمر dagu
$curl -fsSL https://raw.githubusercontent.com/dagucloud/dagu/main/scripts/installer.sh | bash
daily-report.yaml
# runs every night at 02:00
schedule: "0 2 * * *"
type: chain
steps:
- id: fetch_data
run: python fetch.py
retry_policy:
limit: 3
interval_sec: 60
- id: build_report
run: python report.py
- id: notify
run: ./notify.sh
last run · 02:00:04 · exit 03/3 steps

البداية السريعة

البداية السريعة
1

تثبيت أمر dagu

ثنائي
$curl -L https://raw.githubusercontent.com/dagucloud/dagu/main/scripts/installer.sh | bash
✓ Installed to /usr/local/bin/dagu
2

شغّل أول سير عمل لك

hello.yaml
$cat > hello.yaml << EOF
# سير عملك الأول
steps:
- command: echo "Hello from dagu!"
- command: ls -la
EOF
✓ تم إنشاء hello.yaml
3

تشغيله

Terminal
$dagu start hello.yaml
Running hello...
✓ hello finished
Hello from dagu!
Running list...
✓ list finished
-rw-r--r-- hello.yaml
✓ اكتمل سير العمل بنجاح
4

استكشاف واجهة الويب

ثبّت Dagu وشغّل أول سير عمل لك من واجهة الويب خلال بضع دقائق.

Terminal
$dagu start-all
✓ بدأ الخادم على http://localhost:8080
واجهة الويب: مراقبة في الوقت الفعلي، عرض DAG مرئي، سجل التنفيذ

هل تستخدم Dagu؟

ضع نجمة لـ Dagu على GitHub لحفظ المستودع وإظهار دعمك.

ضع نجمة لـ Dagu على GitHub

كل عمليات سير العمل من الدردشة

اجمع مسارات العمل المتفرقة في مكان واحد. الإنشاء والتحرير وتصحيح الأخطاء والاستعادة والتحليل، كل ذلك من دردشة الذكاء الاصطناعي التي تستخدمها بالفعل.

اعرف المزيد
إنشاءتحريرتصحيحاستعادةتحليل
AI chat

Create a nightly ETL workflow

etl-nightly · Dagu
extracttransformloadverify

يعمل مع أي وكيل يدعم MCP

Claude CodeClaude Code
CursorCursor
GitHub CopilotGitHub Copilot
OpenAI CodexOpenAI Codex
Gemini CLIGemini CLI
KiroKiro
WindsurfWindsurf
ClineCline
Roo CodeRoo Code
ZedZed
DevinDevin
TraeTrae
ChatGPTChatGPT
JunieJunie
GooseGoose
AmpAmp
OpenCodeOpenCode
AntigravityAntigravity
Amazon QAmazon Q
WarpWarp
VS CodeVS Code
RaycastRaycast
LM StudioLM Studio
PerplexityPerplexity

الويكي وأدلة التشغيل

احتفظ بأدلة التشغيل بصيغة 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.request
بيانات وملفات
postgres.querysqlite.queryredis.*s3.uploads3.downloadsftp.uploadsftp.downloadfile.*archive.createarchive.extractjq.filterdata.convertdata.pick
ذكاء اصطناعي
chat.completionharness.runhuman.tasktype: controller
تحكم بالتدفق
dag.rundag.enqueuerouter.routewait.durationwait.untilwait.filewait.httpnoopapproval:
حالة وتسليم
state.getstate.setstate.diffartifact.writeartifact.readoutputs.writetemplate.renderlog.writemail.sendgit.checkout

القائمة الكاملة بالمدخلات والمخرجات في توثيق Dagu Actions

تشغيل الإنتاج

الضمانات وأدوات الضبط بأسمائها الحقيقية.

الأداء

آلاف التشغيلات يوميًا على جهاز واحد؛ وتعتمد السعة على المعالج والقرص وشكل سير العمل. الحالة ملفات محلية: لا قاعدة بيانات تحتاج تحجيمًا أو ترحيلًا.

التنفيذ الموزع

طوابير ملفية مع حدود تزامن لكل 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.

الأنماط الشائعة

Health Check
SSH Backup
Notify

Workflows للسكربتات الخاصة

حوّل السكربتات الخاصة وCLIs الداخلية وactions القابلة لإعادة الاستخدام والأدوات المثبتة وartifacts إلى workflows يمكن للفرق الأخرى طلبها أو تشغيلها بأمان.

  • 1أبق السكربتات والأوامر الموجودة كما هي
  • 2اعرض parameters محدودة بدلاً من وصول إنتاج واسع
  • 3استدع Dagu Actions بإصدارات ومخرجات typed
  • 4احفظ التقارير وlogs كـ artifacts من الدرجة الأولى
workflow.yaml
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 المحلي أولًا مريحًا حقًا.
مهندس في Alipay

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

#827

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

#1814

I've recently played around with Dagu for private stuff and think it could also be worth introducing at work.

@DarkWiiPlayer

Developer

#924

مستضاف ذاتياً على بنيتك التحتية الخاصة

Dagu مرخّص بموجب GPLv3 ومجاني دائمًا. تضيف التراخيص المدفوعة SSO وRBAC وسجلات التدقيق وتوجيه الحوادث ودعم الفرق.

المجتمع
مجاني للأبد
خوادم غير محدودة، عمال غير محدودين
  • أتمتة ومراقبة سير العمل الكاملة
  • واجهة ويب مع تصور DAG
  • منفذات Docker وSSH وHTTP
  • جدولة cron وإعادة المحاولة
  • ما يصل إلى مفتاحي API للأتمتة
المؤسسات
مخصص

للفرق التي تبني بنية تحتية لسير العمل القائم على الأحداث في بيئات معقدة

عدد مخصص من الخوادم المرخصة
  • استشارات معمارية للإعداد الموزع
  • تنفيذ مخصص
  • إرشاد إعداد MCP OIDC/SSO
  • دعم الترحيل الأولي
  • اجتماعات مخصصة
  • اتفاقية مستوى خدمة مخصصة لوقت الاستجابة
ما الذي نبنيه
  • حلول مخصّصة

    بناء ميزات مصمّمة خصيصًا لاحتياجات الشركة المحددة.

  • حلول جاهزة للاستخدام

    إنشاء إعدادات جاهزة للاستخدام تساعد الفِرَق على توسيع Dagu بسهولة دون استهلاك موارد تقنية أو موارد خوادم ضخمة.

اتصل بنا

أنشئ رخصة self-host تجريبية لمدة 14 يومًا خلال دقائق14 يوما, من دون بطاقة ائتمان. ابدأ تجربة الرخصة المجانية

تتضمن جميع الخطط المدفوعة دعمًا ذا أولوية عبر البريد الإلكتروني والدردشة مع استجابة أولى خلال يوم عمل واحد. عرض تفاصيل الدعم

تفاصيل ما يغطيه الترخيص ومقارنته بإصدار Community: دليل ترخيص الاستضافة الذاتية

هل تحتاج إلى موافقة داخلية؟ اقرأ موجز الاعتماد

تواصل

أسئلة أم أخطاء أم أفكار؟

افتح issue على GitHub أو اسأل في Discord أو أرسل بريدًا. الرد يأتي من المشرف لا من بوت.