انتقل إلى المحتوى الرئيسي انتقل إلى الملاحة انتقل إلى التذييل

تطبيق سطر الأوامر

دليل شامل لاستخدام واجهة سطر أوامر Rediacc لإدارة المنصة

مرجع سطر أوامر Rediacc

نظرة عامة

**Rediacc CLI** (`rdc`) هي واجهة سطر أوامر لإدارة البنية التحتية ذاتية الاستضافة — الأجهزة، والمستودعات، والتخزين، والنسخ الاحتياطية، والمزيد.

التثبيت

قم بتنزيل أحدث ملف تنفيذي لمنصتك من [صفحة إصدارات Rediacc](https://www.rediacc.com) أو قم بالتثبيت عبر مدير الحزم الخاص بك:

# macOS / Linux
curl -fsSL https://www.rediacc.com | sh

# Or use the packaged binary directly
./rdc --help

الخيارات العامة

يدعم كل أمر هذه العلامات العامة:

العلامةالوصف
--outputصيغة المخرجات (table|json|yaml|csv). Override default with REDIACC_DEFAULT_OUTPUT.
--configاستخدام إعدادات محددة لهذا الأمر
--langتجاوز اللغة ({{languages}})
--forceتخطي نوافذ التأكيد

1. إدارة الإعدادات

إدارة ملفات التكوين: الإنشاء، والتبديل، والتحرير، وتسوية الحالة، والمرافق الشاملة (الحقول، التدقيق، مفاتيح SSH، المزامنة البعيدة).

تخزن ملفات الإعدادات تفاصيل الاتصال (عنوان URL للـ API، بيانات الاعتماد، الفريق/المنطقة/الجسر الافتراضي) حتى تتمكن من التبديل بين البيئات بسرعة.

1.1 prune

إزالة الأوزان الميتة من ملف التكوين المحلي في ~/.config/rediacc/<config>.json. يتم تنظيف ثلاث مجموعات، جميعها محلية بحتة (بدون مكالمات SSH/renet): (1) إدخالات ذاكرة التخزين المؤقت لشهادات ACME التي لم يعد المرسى GUID/repo/machine الخاص بها موجوداً في التكوين النشط؛ (2) المستودعات المؤرشفة التي انتهت فترة سماحها (افتراضياً 7 أيام، انظر defaults.pruneGraceDays)؛ (3) المراجع المتقاطعة المعلقة (machine→strategy، strategy→repo). الموارد المستخدمة وبيانات الاعتماد ورموز التخزين والمضيفات المعروفة لا تُلمس أبداً. السلوك الافتراضي هو تطبيق التغييرات؛ مرر --dry-run للمعاينة فقط.

rdc config prune [options]
العلامةالوصفمطلوبافتراضي
--dry-runمعاينة ما سيتم إزالته دون تعديل ملف التكوين. يعكس دلالات الإيقاف الافتراضية لأوامر التنظيف الأخرى.لا-
--certs-onlyتقييد ذاكرة التخزين المؤقت لشهادات ACME. يتخطى تطهير الأرشيف وتنظيف المراجع المتقاطعة. حصري بشكل متبادل مع --archives-only و --refs-only.لا-
--archives-onlyتقييد لتطهير الأرشيف المنتهي. يتخطى ذاكرة التخزين المؤقت للشهادات وتنظيف المراجع المتقاطعة. حصري مع --certs-only و --refs-only.لا-
--refs-onlyتقييد للمراجع المتقاطعة المعلقة (machine→strategy، استثناءات/تضمينات strategy→repo). يتخطى ذاكرة التخزين المؤقت للشهادات والأرشيف. حصري مع --certs-only و --archives-only.لا-
--purge-archivedإسقاط جميع المستودعات المؤرشفة بغض النظر عن العمر، ليس فقط تلك التي تجاوزت فترة السماح. مكافئ لتشغيل 'rdc repo admin archive purge' لكل مستودع مؤرشف. استخدم فقط عندما تكون متأكدًا من أنك لا تحتاج إلى أي من بيانات الاعتماد المخزَّنة للاستعادة.لا-
--orphan-reposيزيل إدخالات المستودعات غير المرتبطة بأي جهاز. يحتوي كل إدخال على بيانات الاعتماد ومفتاح SSH الخاص بذلك المستودع، لذا فإن هذا الإجراء لا رجعة فيه. شغّل أولًا 'rdc config reconcile' حتى يعكس التوزيع الأجهزة الفعلية.لا-
--grace-days <days>تجاوز نافذة سماح الأرشيف (بالأيام) لهذا الاستدعاء. يعود إلى defaults.pruneGraceDays في التكوين، ثم إلى 7 إذا لم يتم تعيين أي منهما.لا-

1.2 init

إنشاء ملف إعدادات مسمى جديد

في الوضع المحلي يمكنك إضافة الآلات مباشرة:

rdc config init [name] [options]
العلامةالوصفمطلوبافتراضي
--ssh-key <path>المسار إلى مفتاح SSH الخاص (مثال: ~/.ssh/id_rsa)لا-
--renet-path <path>المسار إلى ثنائي renet (افتراضي: renet في PATH)لا-
--master-password <password>تشفير الموارد بكلمة مرور رئيسيةلا-
--server <url>عنوان خادم الحسابلا-

1.3 list

عرض جميع ملفات الإعدادات

rdc config list

1.4 show

عرض تفاصيل الإعدادات الحالية

rdc config show [options]
العلامةالوصفمطلوبافتراضي
--revealعرض النص الصريح للقيم الحساسة (الوضع التفاعلي فقط)لا-

1.5 current

عرض الإعدادات النشطة: الاسم، الملف، الخادم والقناة بعد الحل، حالة الرمز

rdc config current

1.6 delete

حذف ملف إعدادات

rdc config delete <name>

1.7 set

تعيين قيمة افتراضية (فريق، منطقة، جسر)

rdc config set <key> <value>

1.8 clear

مسح القيم الافتراضية (الكل أو مفتاح معين)

rdc config clear [key]

1.9 recover

استعادة الإعدادات من ملف النسخة الاحتياطية (.bak)

rdc config recover [name] [options]
العلامةالوصفمطلوبافتراضي
-y, --yesتخطي نافذة التأكيدلا-

1.10 ssh

إدارة إعدادات مفتاح SSH

set

تعيين مفتاح SSH للإعدادات الحالية

rdc config ssh set [options]
العلامةالوصفمطلوبافتراضي
--key <path>مسار ملف مفتاح SSH الخاصنعم-
--embedتضمين محتوى المفتاح في الإعدادات بدلاً من تخزين المسارلا-

show

عرض إعدادات مفتاح SSH الحالية

rdc config ssh show

remove

إزالة مفتاح SSH من الإعدادات الحالية

rdc config ssh remove

1.11 remote

إدارة اتصال تخزين الإعدادات عن بُعد

enable

ربط هذه الإعدادات بالتخزين المشفر عن بُعد

rdc config remote enable [options]
العلامةالوصفمطلوبافتراضي
--headlessاستخدام تدفق رمز الجهاز (للخوادم بدون واجهة)لا-
--passwordالتسجيل بلا واجهة رسومية باستخدام فتحة كلمة مرور مُجهَّزة مسبقًا (بلا متصفح)لا-
--api-url <url>عنوان خادم الحسابلا-
--forceاستبدال المحتوى المحلي المختلف بنسخة الخادم دون تأكيدلا-

disable

قطع الاتصال بالتخزين عن بُعد وحفظ الإعدادات محلياً

rdc config remote disable

status

عرض حالة الاتصال عن بُعد

rdc config remote status

refresh

إعادة جلب الإعدادات من التخزين عن بُعد

rdc config remote refresh

1.12 field

عمليات حقول التكوين المعنونة بالمؤشرات (get/set/unset/rotate/list). مؤشرات JSON (RFC 6901) مثل /credentials/cfDnsApiToken.

get

قراءة قيمة تكوين واحدة بواسطة مؤشر JSON. تُخفى الحقول الحساسة إلا باستخدام --reveal (للمستخدمين البشريين فقط).

rdc config field get [options]
العلامةالوصفمطلوبافتراضي
--pointer <pointer>مؤشر JSON إلى الحقل (مثال: /credentials/cfDnsApiToken)نعم-
--revealإظهار النص الصريح للقيم الحساسة (طرفية تفاعلية فقط؛ يُسجَّل في التدقيق)لا-
--digestطباعة تلخيص SHA-256 بدلاً من القيمة (آمن للمشاركة مع العملاء الذكيين)لا-

set

كتابة قيمة تكوين عند مؤشر JSON. المسارات الحساسة تتطلب --current (بوابة المعرفة).

rdc config field set [options]
العلامةالوصفمطلوبافتراضي
--pointer <pointer>مؤشر JSON إلى الحقل (مثال: /credentials/cfDnsApiToken)نعم-
--new <value>القيمة الجديدة (تُفسَّر كـ JSON إذا بدأت بـ { [ " أو true/false/null/رقم)نعم-
--current <value>القيمة الصريحة الحالية - مطلوبة لتعديل المسارات الحساسة (إثبات بوابة المعرفة)لا-

unset

حذف قيمة تكوين عند مؤشر JSON. المسارات الحساسة تتطلب --current.

rdc config field unset [options]
العلامةالوصفمطلوبافتراضي
--pointer <pointer>مؤشر JSON إلى الحقل (مثال: /credentials/cfDnsApiToken)نعم-
--current <value>القيمة الصريحة الحالية - مطلوبة لحذف المسارات الحساسةلا-

rotate

تدوير قيمة حساسة دون --current. طرفية تفاعلية فقط؛ يُسجَّل بشكل بارز.

rdc config field rotate [options]
العلامةالوصفمطلوبافتراضي
--pointer <pointer>مؤشر JSON إلى الحقل الحساس (مثال: /credentials/cfDnsApiToken)نعم-
--new <value>قيمة جديدةنعم-

list

سرد كل قالب مؤشر مسجّل مع نوعه وسياسة الالتزام/التشفير.

rdc config field list [options]
العلامةالوصفمطلوبافتراضي
--sensitiveعرض القوالب الحساسة فقط (غير العامة)لا-

1.13 edit

فتح التكوين الحالي في $EDITOR كإسقاط JSONC مُخفى. للمستخدمين البشريين فقط؛ يُرفض العملاء.

rdc config edit [options]
العلامةالوصفمطلوبافتراضي
--revealإظهار النص الصريح للقيم الحساسة (طرفية تفاعلية فقط؛ يُسجَّل في التدقيق)لا-
--dumpطباعة التكوين الحالي كـ JSONC إلى stdout بدلاً من فتح المحرر (للقراءة فقط؛ آمن للعملاء عند الإخفاء)لا-
--apply <file>تطبيق ملف JSONC معدّل (يتخطى إطلاق $EDITOR)لا-
--current-secrets <file>ملف JSON يربط المؤشر → النص الصريح القديم لبوابة المعرفة عند --applyلا-
--editor <cmd>أمر المحرر البديل (يتبع تسلسل git: --editor > $GIT_EDITOR > git config core.editor > $VISUAL > $EDITOR)لا-

1.14 audit

فحص سجل تدقيق التكوين (JSONL متسلسل التجزئة في ~/.config/rediacc/audit.log.jsonl)

log

طباعة أحدث إدخالات التدقيق بصيغة JSON

rdc config audit log [options]
العلامةالوصفمطلوبافتراضي
--since <spec>إظهار الإدخالات الأحدث من (مثال: '24h', '7d', طابع زمني ISO)لا-
--path <glob>تصفية حسب نمط مؤشر JSON (مثال: /credentials/*)لا-
--actor <kind>تصفية حسب نوع الفاعل (human|agent)لا-

tail

بث الإدخالات الجديدة أثناء كتابتها (Ctrl+C للإيقاف)

rdc config audit tail

verify

التحقق من سلامة سلسلة تجزئة SHA-256 عبر جميع إدخالات التدقيق

rdc config audit verify

1.15 reconcile

إعادة بناء حالة وقت التشغيل من واقع الأجهزة. يُصلح بيانات الإرفاق والتوجيه القديمة.

rdc config reconcile [options]
العلامةالوصفمطلوبافتراضي
--machine <m...>تقييد التسوية بهذه الأجهزةلا-
--dry-runعرض ما سيتم تنفيذه دون إجراء تغييراتلا-
--accept-observedإعادة كتابة الموضع المُعلن ليطابق مكان الصورة الفعلي، ولكن فقط عندما يكون ذلك لا لبس فيه (مُلاحظ على جهاز واحد بالضبط). التكرارات تبقى تعارضات.لا-

1.16 rotate-cek

تدوير مفتاح تشفير تكوين المؤسسة

rdc config rotate-cek [options]
العلامةالوصفمطلوبافتراضي
--api-url <url>عنوان خادم الحسابلا-

2. إدارة مخزن البيانات

تجمّعات تخزين مسماة تحمل المستودعات. مخزن البيانات متنقّل (أرفقه بجهاز، انقله إلى آخر) وأحادي الحامل (جهاز واحد بالضبط يحمله في كل مرة). مخزن البيانات الافتراضي الضمني على كل جهاز لا يُدار هنا.

2.1 resize

توسيع أو تقليص مخزن بيانات. هذه عملية غير متصلة: يجب إيقاف المستودعات بداخله.

rdc datastore resize <datastore> [options]
العلامةالوصفمطلوبافتراضي
--size <size>الحجم الجديد (مثلاً 200G)نعم-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

2.2 fork

تفريع مخزن بيانات بنسخ-عند-الكتابة. التفريع فوري وتكلفته لا تنمو مع حجم التجمّع. يحتاج خلفية rbd: مخزن البيانات local ليس له نسخ على مستوى الكتل، لذا تُفرَّع المستودعات بداخله واحدًا تلو الآخر عبر reflink بدلاً من ذلك (rdc repo fork).

rdc datastore fork <datastore> [options]
العلامةالوصفمطلوبافتراضي
--tag <tag>وسم النسخة المتفرعة (تكون النتيجة name:tag)نعم-
--attach-to <machine>إرفاق النسخة المتفرعة بهذا الجهاز فورًا (يتطلب --writes)لا-
--writes <disposition>وجهة كتابات النسخة المتفرعة: local (فوري، مؤقت) أو ceph (نسخة دائمة)لا-
--cow-size <size>حجم الطبقة التراكبية لـ --writes localلا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

2.3 status

عرض مخزن بيانات واحد: خلفيته، وإرفاقه، واستخدامه، ومستودعاته، ولقطاته. مخزن البيانات غير المرفق لا يزال يُبلِّغ عن سجله.

rdc datastore status <datastore> [options]
العلامةالوصفمطلوبافتراضي
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

2.4 create

إنشاء مخزن بيانات إضافي مسمى على جهاز. الخلفية local هي تجمّع مدعوم بملف على ذلك الجهاز ويبقى هناك. الخلفية rbd تعيش في Ceph، لذا يمكنها الانتقال إلى أي جهاز يصل إلى نفس العنقود. مرّر --cluster لجعله مخزن بيانات من عالم Kubernetes؛ هذا المرجع الخلفي ثابت عند الإنشاء.

rdc datastore create <datastore> [options]
العلامةالوصفمطلوبافتراضي
-m, --machine <name>الجهاز المُراد إنشاء مخزن البيانات عليهنعم-
--size <size>حجم مخزن البيانات (مثلاً 100G)نعم-
--backend <type>خلفية التخزين: local (مدعومة بملف، تبقى على هذا الجهاز) أو rbd (Ceph، قابلة للنقل)لاlocal
--pool <name>تجمّع Ceph لخلفية rbd (الافتراضي: rbd)لا-
--image <name>اسم صورة RBD لخلفية rbd (الافتراضي: اسم مخزن البيانات)لا-
--cluster <name>عنقود Kubernetes الذي ينتمي إليه مخزن البيانات هذا. تعيينه يعني مستودعات Kubernetes فقط؛ عدم تعيينه يعني مستودعات Docker فقط. يُحدَّد بشكل ثابت عند الإنشاء.لا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

2.5 list

عرض مخازن البيانات المسماة، وأماكن إرفاقها، وما تحتويه.

rdc datastore list [place]

2.6 attach

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

rdc datastore attach <datastore> [options]
العلامةالوصفمطلوبافتراضي
--to <machine>الجهاز المُراد إرفاق مخزن البيانات بهنعم-
--writes <disposition>وجهة كتابات النسخة المتفرعة: local (فوري، مؤقت، يُفقد عند الفصل) أو ceph (نسخة دائمة في التجمّع). مطلوب للنسخة المتفرعة.لا-
--cow-size <size>حجم الطبقة التراكبية لـ --writes localلا-
--no-autoعدم إعادة إرفاق مخزن البيانات هذا تلقائيًا عند الإقلاعلا-
--forceتسييج (fence) حامل قديم لم يتخلَّ عن مخزن البيانات بشكل نظيفلا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

2.7 detach

فصل مخزن بيانات عن جهازه. تتوقف المستودعات بداخله أولاً. النسخة المتفرعة المرفقة بـ --writes local ليس لديها مكان تكتب طبقتها التراكبية إليه، لذا فصلها يتخلّى عن الطبقة التراكبية ويتطلب --discard.

rdc datastore detach <datastore> [options]
العلامةالوصفمطلوبافتراضي
--discardالتخلي عن نسخة متفرعة بكتابات محلية وطبقتها التراكبية. البيانات غير قابلة للاسترجاع.لا-
-y, --yesتخطي نافذة التأكيدلا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

2.8 snapshot

أخذ وعرض اللقطات اللحظية لمخزن بيانات. اللقطة لا تكلّف شيئًا وهي ثابتة، وهي ما تستنسخ منه النسخة المتفرعة.

create

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

rdc datastore snapshot create <datastore> [options]
العلامةالوصفمطلوبافتراضي
--snapshot <label>تسمية اللقطة (الافتراضي: طابع زمني UTC)لا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

list

عرض لقطات مخزن البيانات.

rdc datastore snapshot list <datastore> [options]
العلامةالوصفمطلوبافتراضي
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

2.9 delete

تدمير مخزن بيانات وكل ما فيه. يُفصل أولاً؛ إذا تعذّر فصله بشكل نظيف، يفشل الحذف بدلاً من ترك تجمّع مركّب يتيمًا.

rdc datastore delete <datastore> [options]
العلامةالوصفمطلوبافتراضي
-y, --yesتخطي نافذة التأكيدلا-
--forceالحذف حتى لو كانت مستودعات لا تزال تشير إليه. تُحذف بياناتها معه.لا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

3. إدارة الأجهزة

فحص حالة الأجهزة البعيدة: موارد النظام، والحاويات قيد التشغيل، وخدمات systemd، والمستودعات المنشورة، وتشخيصات الصحة. استعلامات للقراءة فقط؛ لتعديل المستودعات استخدم `repo`. الأوامر الفرعية الرئيسية: status (الحالة الكاملة، مُضيَّقة بـ --system و--containers و--repositories و--services)، health، list، add، remove، setup، prune، provision، deprovision.

3.1 list

قائمة الآلات

rdc machine list [options]
العلامةالوصفمطلوبافتراضي
--search <text>البحث في {{field}}لا-
--sort <field>الترتيب حسب الحقللا-
--descالفرز بترتيب تنازليلا-

3.2 health

فحص صحة الآلة لأنابيب CI/CD

يُخرج أمر health مقاييس النظام وحالة الحاويات واستقرار الخدمات ومعلومات التخزين — مفيد لفحوصات خطوط أنابيب CI/CD.

rdc machine health <name> [options]
العلامةالوصفمطلوبافتراضي
-t, --team <name>اسم الفريقلا-

3.3 provision

توفير جهاز جديد على مزود سحابي باستخدام OpenTofu

rdc machine provision <name> [options]
العلامةالوصفمطلوبافتراضي
--provider <name>اسم المزود السحابي (من machine provider add)نعم-
--region <region>تجاوز المنطقة الافتراضيةلا-
--type <type>تجاوز نوع المثيل الافتراضيلا-
--image <image>تجاوز صورة نظام التشغيل الافتراضيةلا-
--ssh-user <user>اسم مستخدم SSH للجهاز الافتراضي الجديد (الافتراضي: root)لا-
--base-domain <domain>النطاق الأساسي للبنية التحتية (مثال: example.com). يتضمن --infraلا-
--no-infraتخطي تكوين البنية التحتية (الوكيل + DNS)لا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

3.4 deprovision

تدمير جهاز مُوفَّر سحابياً وإزالته من الإعدادات

rdc machine deprovision <name> [options]
العلامةالوصفمطلوبافتراضي
--forceتخطي نافذة التأكيدلا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

3.5 prune

إزالة موارد مخزن البيانات المعزولة واللقطات القديمة من جهاز

rdc machine prune <name> [options]
العلامةالوصفمطلوبافتراضي
--dry-runعرض ما سيتم إزالته دون إجراء تغييراتلا-
--orphaned-reposحذف كل صورة مستودع على الجهاز غير موجودة في تكوين CLI المحلي لديك. سلوك خشن — يحذف أيضًا النسخ المتفرعة التي أنشأتها أدوات أخرى ولا يوجد لها إدخال تكوين محلي، حتى عندما تحدِّدها مرآة renet بشكل صحيح كنسخ متفرعة. استخدم --prune-unknown للسلوك الأضيق الذي يحترم المرآة.لا-
--prune-unknownحذف فقط المستودعات التي لا يستطيع مرآة renet .interim/state تصنيفها (ليست في التكوين المحلي ولا تحتوي على مرآة موسومة بالشوكة). أضيق بشكل صارم من --orphaned-repos: تتم المحافظة على الشوكات بدون تكوين عندما تحددها المرآة. المتبقيات القديمة قبل المرآة والأجداد القدامى الذين تم حذف إدخال التكوين الخاص بهم يقعون كلاهما في هذه الفئة.لا-
--force-delete-mountedتجاوز فحص أمان التركيب وحذف المستودعات حتى لو كانت مركبة حالياً أو تحتوي على حاويات Docker قيد التشغيل. مختلف عن --force (الذي يتجاوز فترة السماح للأرشيف فقط). ينطبق على كل من --orphaned-repos و --prune-unknown.لا-
--forceتخطي نوافذ التأكيدلا-
--grace-days <days>فترة السماح بالأيام للمستودعات المؤرشفة حديثًا (الافتراضي: 7)لا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

3.6 add

إضافة جهاز إلى الإعدادات الحالية

rdc machine add <name> [options]
العلامةالوصفمطلوبافتراضي
--ip <address>عنوان IP للآلة أو اسم المضيفنعم-
--user <username>اسم مستخدم SSHنعم-
--port <port>منفذ SSHلا22

3.7 infra

إدارة تكوين البنية التحتية (الوكيل، DNS، الشهادات)

cert

إدارة شهادات TLS المخزنة مؤقتاً

clear:

إزالة ذاكرة تخزين الشهادات المؤقتة

rdc machine infra cert clear

pull:

تنزيل وتخزين شهادات TLS مؤقتاً من جهاز

rdc machine infra cert pull <machine> [options]
العلامةالوصفمطلوبافتراضي
--no-pruneتخطي تنظيف شهادات معرّف الشبكة القديمةلا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

push:

رفع شهادات TLS المخزنة مؤقتاً إلى جهاز

rdc machine infra cert push <machine> [options]
العلامةالوصفمطلوبافتراضي
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

status:

عرض مخزون الشهادات المخزنة مؤقتاً

rdc machine infra cert status

push

دفع إعدادات البنية التحتية إلى الجهاز (وكيل Traefik، الموجّه، Cloudflare DNS). شغّل 'machine infra set <machine>' أولاً

rdc machine infra push <machine> [options]
العلامةالوصفمطلوبافتراضي
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

set

تعيين إعدادات البنية التحتية لجهاز (خاصة بالجهاز: عناوين IP، النطاق، المنافذ؛ مشتركة: بريد الشهادة، رمز Cloudflare DNS)

rdc machine infra set <machine> [options]
العلامةالوصفمطلوبافتراضي
--public-ipv4 <ip>عنوان IPv4 العام (لكل جهاز)لا-
--public-ipv6 <ip>عنوان IPv6 العام (لكل جهاز)لا-
--base-domain <domain>النطاق الأساسي للتطبيقات (لكل جهاز)لا-
--cert-email <email>البريد الإلكتروني لإشعارات شهادات TLS (مشترك بين الأجهزة)لا-
--cf-dns-token <token>رمز Cloudflare DNS API لتحدي ACME DNS-01 (مشترك بين الأجهزة)لا-
--tcp-ports <ports>منافذ TCP للتوجيه (مفصولة بفواصل، مثال: 25,143,465)لا-
--udp-ports <ports>منافذ UDP للتوجيه (مفصولة بفواصل، مثال: 53)لا-

show

عرض تكوين البنية التحتية لجهاز

rdc machine infra show <machine>

3.8 provider

إدارة المزودين السحابيين لتوفير الأجهزة تلقائياً

add

إضافة مزود سحابي

rdc machine provider add <name> [options]
العلامةالوصفمطلوبافتراضي
--provider <source>مصدر مزوّد معروف (مثال: linode/linode، hetznercloud/hcloud)لا-
--source <source>مصدر مزوّد OpenTofu مخصص (مثال: vultr/vultr)لا-
--token <token>رمز API للمزود السحابينعم-
--region <region>المنطقة الافتراضية للأجهزة الجديدةلا-
--type <type>نوع/حجم النسخة الافتراضيلا-
--image <image>صورة نظام التشغيل الافتراضيةلا-
--ssh-user <user>اسم مستخدم SSH للأجهزة الافتراضية الجديدة (الافتراضي: root)لا-
--resource <type>مخصص: نوع مورد OpenTofu للأجهزة الافتراضيةلا-
--label-attr <attr>مخصص: اسم سمة تسمية الجهاز الافتراضيلا-
--region-attr <attr>مخصص: اسم سمة المنطقةلا-
--size-attr <attr>مخصص: اسم سمة نوع المثيللا-
--image-attr <attr>مخصص: اسم سمة صورة نظام التشغيللا-
--ipv4-output <attr>مخصص: سمة الإخراج لعنوان IPv4لا-
--ipv6-output <attr>مخصص: سمة الإخراج لعنوان IPv6لا-
--ssh-key-attr <attr>مخصص: اسم سمة مفاتيح SSHلا-
--ssh-key-format <format>مخصص: تنسيق مفتاح SSH (inline_list أو resource_id)لا-
--ssh-key-resource <type>مخصص: نوع مورد OpenTofu لمفاتيح SSHلا-

list

عرض قائمة المزودين السحابيين المُعدّين

rdc machine provider list

remove

إزالة تكوين مزود سحابي

rdc machine provider remove <name>

3.9 remove

إزالة جهاز من التكوين الحالي

rdc machine remove <name> [options]
العلامةالوصفمطلوبافتراضي
-y, --yesتخطي نافذة التأكيدلا-
--forceإزالة الجهاز حتى لو كانت مستودعات لا تزال موضوعة عليه، ما يترك تلك المواضع معلّقة.لا-

3.10 scan-keys

فحص مفاتيح SSH للأجهزة في التكوين الحالي

rdc machine scan-keys [name]

3.11 setup

تهيئة جهاز بعيد للمستودعات (تثبيت renet، إعداد Docker، مخزن بيانات BTRFS). قابل للتكرار. مطلوب بعد config machine add وقبل repo create

rdc machine setup <name> [options]
العلامةالوصفمطلوبافتراضي
--datastore-path <path>مسار مخزن البيانات على الجهاز البعيدلا/mnt/rediacc
--datastore-size <size>حجم مخزن البيانات (مثال: 95%، 100G)لا95%
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

3.12 status

عرض حالة الجهاز الكاملة (النظام، المستودعات، الحاويات، الخدمات)

rdc machine status [name] [options]
العلامةالوصفمطلوبافتراضي
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-
--systemتضمين معلومات النظام فقطلا-
--repositoriesتضمين المستودعات فقطلا-
--containersتضمين الحاويات فقطلا-
--servicesتضمين الخدمات فقطلا-
--networkتضمين واجهات الشبكة فقطلا-
--block-devicesتضمين أجهزة التخزين فقطلا-
--licensesتضمين حالات تراخيص المستودعاتلا-
--storage-healthعرض تجزئة BTRFS ووفورات reflink لكل مستودعلا-
--datastoresعرض مخازن البيانات المرفقة (التركيب، الإرفاق، الاستخدام)لا-
--health-checkوضع فحص الصحة - الخروج برمز 2 إذا وُجدت حاويات غير سليمةلا-
--stability-checkوضع فحص الاستقرار - الخروج برمز 2 إذا وُجدت خدمات فاشلة/تعيد التشغيللا-
--search <text>تصفية المستودعات حسب الاسملا-
--sync-certsاسحب أيضًا ذاكرة التخزين المؤقت لشهادات ACME من الجهاز بعد الاستعلاملا-
--strictالخروج بقيمة غير صفرية (الكود 2) إذا تجاوزت أي حاوية عتبة انحراف الصحةلا-

4. إدارة العناقيد

تجهيز وإدارة العناقيد: مجموعات مسمّاة من تجمعات العقد (ceph وk8s-server وk8s-agent وhyperconverged) على شبكة خاصة. تتجسد أعضاء التجمع كأجهزة، بحيث يعمل كل أمر -m عليها.

4.1 create

تصريح عنقود وتجهيزه: الأجهزة، وتجمعات Ceph، وKubernetes. مرّر --provider و--pool للتصريح في خطوة واحدة؛ التنفيذ المجرد لـ create يُجهِّز عنقودًا مُصرَّحًا به بالفعل.

rdc cluster create <cluster> [options]
العلامةالوصفمطلوبافتراضي
--provider <provider>المزود: مفتاح cloudProviders، أو 'kvm'لا-
--pool <spec...>مواصفات التجمع name:role:count[:size] (الدور: ceph|k8s-server|k8s-agent|hyperconverged)لا-
--declare-onlyتسجيل العنقود في التكوين دون تجهيزهلا-
--network-cidr <cidr>CIDR الشبكة الخاصة (مثلاً 10.0.0.0/24)لا-
--network-primitive <primitive>أولية الشبكة (مثلاً vlan وvpc وnetwork)لا-
--control-node <machine>جهاز عقدة تحكم صريح (الافتراضي: أول عضو k8s-server)لا-
--net-name <name>KVM: شبكة libvirt لهذا العنقود (مثلاً renet12)لا-
--net-base <prefix>KVM: بادئة الشبكة، الأوكتيتات الثلاثة الأولى (مثلاً 192.168.112)لا-
--net-offset <n>KVM: الإزاحة المضافة إلى VM id عند اشتقاق العنوانلا-
--control-id <n>KVM: VM id لعقدة التحكم والسجل (الافتراضي: 1)لا-
--docker-registry <endpoint>KVM: نقطة نهاية سجل Docker داخل VM لهذا العنقودلا-
--ssh-user <user>مستخدم SSH للأعضاء المجهزينلا-
--base-domain <domain>النطاق الأساسي لـ DNS العام للعنقود (وإلا يُورَث من جهاز شقيق)لا-
--control-ds-size <size>حجم مخزن بيانات التحكم التأسيسي (الافتراضي 10G)لا-
--control-ds-backend <backend>خلفية مخزن بيانات التحكم المرجعي: local | ceph (الافتراضي: ceph إذا كان العنقود يحتوي على ceph، وإلا local)لا-
--control-ds-pool <pool>مجمع Ceph RBD لمخزن بيانات التحكم التأسيسي (خلفية ceph)لا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

4.2 status

سرد جميع العناقيد، أو عرض الإعداد الكامل لعنقود واحد باستخدام --name.

rdc cluster status [cluster]

4.3 scale

تغيير عدد أعضاء تجمع (إضافة/إزالة أجهزة وضم/تفريغ عقد). تجمعات k8s-agent تتوسع في مكانها؛ يتم نمو تجمع ceph عبر cephadm مباشرة.

rdc cluster scale <cluster> [options]
العلامةالوصفمطلوبافتراضي
--pool <pool>اسم التجمعنعم-
--count <n>عدد الأعضاء المطلوبنعم-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

4.4 destroy

تفكيك الأعضاء المجهزين وإزالة العنقود وأجهزته من الإعداد.

rdc cluster destroy <cluster> [options]
العلامةالوصفمطلوبافتراضي
--forceتخطي التأكيد والمتابعة رغم أخطاء التفكيكلا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

4.5 kubeconfig

جلب kubeconfig من عقدة تحكم العنقود عبر SSH وتخزينه مؤقتاً محلياً (0600) لـ kubectl.

rdc cluster kubeconfig <cluster>

4.6 fork

استنساخ عنقود كامل، بما في ذلك بيانات مستودعاته، إلى عنقود جديد: نسخ عند الكتابة منسّق لصور العنقود وPV، ثم إعادة كتابة هوية العقدة بحيث يقلع التفريع على عناوين جديدة. يستمر الأصل في العمل.

rdc cluster fork <cluster> [options]
العلامةالوصفمطلوبافتراضي
--tag <tag>وسم التفريعنعم-
--to <dest-cluster>العنقود الوجهة الذي تستضيف عقده التفريع (عقدة تحكمه وعماله؛ لا يمكن لعنقود أن يتفرّع على أجهزته نفسها، لأن k3s لا يمكنهما مشاركة مساحة اسم شبكة مضيف واحدة)نعم-
--writes <disposition>نمط الكتابة في التفريع: local (طبقة تراكبية dm-COW مؤقتة، بدون أي أثر على Ceph) | ceph (نسخة دائمة). الافتراضي localلا-
--upتشغيل المستودعات المُفرَّعة والتحقق من صحة العنقود بعد إقلاع التفريعلا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

4.7 migrate

نقل عنقود كامل، بما في ذلك بيانات مستودعاته، إلى جهاز أو مركز بيانات آخر بفترة انتقال قصيرة (نسخ مسبق ساخن، ثم إيقاف وإعادة تشغيل في الوجهة).

rdc cluster migrate <cluster> [options]
العلامةالوصفمطلوبافتراضي
--to <dest-cluster>الوجهةنعم-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

4.8 join

ضمّ جهاز مسجَّل موجود كعقدة عامل Kubernetes تابعة لعنقود، باستخدام نفس رمز الانضمام المُشتق من CA المستخدم عند التثبيت (anchor) وإعادة الانضمام (rejoin).

rdc cluster join <machine> [options]
العلامةالوصفمطلوبافتراضي
--cluster <name>العنقود المطلوب ضم الجهاز إليهنعم-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

4.9 evict

تفريغ العقدة، وحذف كائن Node الخاص بها، ومسح عضويتها في العنقود. يُشتق العنقود من الجهاز؛ يُرفض أي جهاز لا يزال مخزن بيانات مثبَّتًا عليه.

rdc cluster evict <machine> [options]
العلامةالوصفمطلوبافتراضي
--forceتخطي التفريغ إذا كانت العقدة ميتة بالفعللا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

4.10 rehearse

التمرين على إصدار/ترقية: تفريع العنقود إلى وجهة كنسخة مؤقتة قابلة للتخلص منها (writes=local، بلا أسرار role=rehearsal)، ثم تشغيلها والتحقق من صحتها، ثم حذفها. لا يُمَس الأصل أبدًا.

rdc cluster rehearse <cluster> [options]
العلامةالوصفمطلوبافتراضي
--on <dest-cluster>العنقود الوجهة الذي يُقلَع عليه التمرين القابل للتخلص منهنعم-
--tag <tag>وسم اختياري لتفريع التمرين (الافتراضي: بطابع زمني)لا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

4.11 snapshot

لقطات لحظية للعنقود بأكمله. لحظة واحدة متسقة عبر الانهيار (crash-consistent) عبر كل مخزن بيانات معتمد على rbd يملكه العنقود، تُؤخذ عبر لقطة المجموعة (group snapshot) في Ceph: لا يتوقف شيء ولا يلاحظ العنقود ذلك مطلقًا. مخازن البيانات بخلفية local ليس لها بدائية مجموعة على مستوى الكتل، لذا تقع خارج هذه اللحظة ويُبلَّغ عنها كذلك. اللحظة متّسقة عبر الانهيار، وليست متّسقة على مستوى التطبيق: إذا احتجت أن تكون كتابة معيّنة داخل اللقطة، زامنها أولاً.

create

أخذ لقطة لكل مخزن بيانات معتمد على rbd في العنقود في لحظة واحدة. لا يتوقف أي شيء. أي مخزن بيانات بخلفية local في العنقود يُدرَج خارج تلك اللحظة: فهو ليس جزءًا من اللقطة. اللحظة متّسقة عبر الانهيار، وليست متّسقة على مستوى التطبيق: إذا احتجت أن تكون كتابة معيّنة داخل اللقطة، زامنها أولاً.

rdc cluster snapshot create <cluster> [options]
العلامةالوصفمطلوبافتراضي
--snapshot <label>تسمية اللقطة (الافتراضي: طابع زمني UTC)لا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

list

عرض لقطات المجموعة الخاصة بالعنقود.

rdc cluster snapshot list <cluster> [options]
العلامةالوصفمطلوبافتراضي
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

5. خادم MCP

خادم MCP للوكلاء الذكية

5.1 serve

تشغيل خادم MCP (نقل stdio)

rdc mcp serve [options]
العلامةالوصفمطلوبافتراضي
--config <name>اسم الإعدادات المستخدمة لجميع الأوامرلا-
--timeout <ms>مهلة الأمر الافتراضية بالميلي ثانيةلا120000

6. دورة حياة المستودعات

نشر وإدارة المستودعات المشفرة على الأجهزة. الأوامر الفرعية الرئيسية: create، up (نشر)، down (إيقاف)، fork (استنساخ CoW فوري)، delete، push/pull (نسخ احتياطي)، sync (نقل الملفات). دورة الحياة: repo create → repo up → repo down. راجع المفاهيم الأساسية في rdc --help لتفاصيل البنية والتوجيه ومتغيرات البيئة.

6.1 up

نشر أو تحديث مستودع (التركيب، وتشغيل Rediaccfile up الذي يستدعي renet compose). يُشتق الجهاز من موضع المرجع. تستغرق مسارات الوكيل نحو 3 ثوانٍ لتصبح نشطة بعد النشر. يطبع نمط عنوان URL للخدمات المكشوفة عبر HTTP (وسم rediacc.service_port) عند الاكتمال. يُركَّب أول نشر والنسخ المتفرعة تلقائيًا. تُكتشف استعادة نقطة تفتيش CRIU تلقائيًا؛ استخدم --skip-checkpoint لفرض بدء جديد. استخدم --all --machine <m> لنشر كل مستودع على جهاز.

rdc repo up [ref] [options]
العلامةالوصفمطلوبافتراضي
--no-startتركيب المستودع وتجهيزه دون تشغيل خطوات up() الخاصة به (يطوي أمر 'repo mount' المتقاعد؛ فتح LUKS، ولمستودعات العنقود، توليد PV).لا-
--skip-checkpointتخطي استعادة نقطة تفتيش CRIU حتى لو كانت بيانات checkpoint موجودة (فرض بدء جديد)لا-
--tlsطلب شهادة TLS مخصصة لهذا المستودع (النسخ المتفرعة تستخدم شهادة الجهاز المشتركة افتراضيًا)لا-
--no-waitالعودة فور بدء الحاويات؛ تستمر فحوصات الصحة في الخلفيةلا-
--allنشر كل مستودع موطنه --machine (صيغة الدفعة)لا-
-m, --machine <name>مع --all: الجهاز الذي تُنفَّذ الدفعة على مستودعاتهلا-
--include-forksتشغيل/بدء المستودعات المتشعبة أيضًالا-
--parallelبدء المستودعات بشكل متزامنلا-
--concurrency <n>الحد الأقصى للمستودعات المتزامنة (افتراضي: 3)لا3
-y, --yesتخطي التأكيد للعمليات الجماعيةلا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-
--skip-router-restartتخطي إعادة تشغيل خادم التوجيه بعد تحديث الملف التنفيذيلا-
--dry-runعرض ما سيتم تنفيذه دون إجراء تغييراتلا-

6.2 down

إيقاف حاويات Docker الخاصة بالمستودع (يُشغِّل Rediaccfile down عبر renet compose). يُشتق الجهاز من موضع المرجع. لا يفكّ تثبيت وحدة التخزين المشفرة، بل يبقى المستودع مركَّبًا ويمكن إعادة تشغيله بـ 'repo up'. استخدم --unmount لإغلاق حاوية LUKS أيضًا بعد الإيقاف (يطوي أمر 'repo unmount' المتقاعد). استخدم --checkpoint لحفظ حالة عمليات CRIU قبل الإيقاف (يستعيدها 'repo up' التالي تلقائيًا). استخدم --all --machine <m> لإيقاف كل مستودع على جهاز.

rdc repo down [ref] [options]
العلامةالوصفمطلوبافتراضي
--unmountفك التثبيت أيضًا (إغلاق حاوية LUKS) بعد الإيقاف. مطلوب قبل 'repo resize' أو لتأمين وحدة التخزين بالكامللا-
--checkpointإنشاء نقطة تفتيش CRIU قبل الإيقاف (حفظ حالة ذاكرة العمليات للاستعادة لاحقًا عبر 'repo up')لا-
--allإيقاف كل مستودع موطنه --machine (صيغة الدفعة)لا-
-m, --machine <name>مع --all: الجهاز الذي تُنفَّذ الدفعة على مستودعاتهلا-
--parallelبدء المستودعات بشكل متزامنلا-
--concurrency <n>الحد الأقصى للمستودعات المتزامنة (افتراضي: 3)لا3
-y, --yesتخطي التأكيد للعمليات الجماعيةلا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-
--skip-router-restartتخطي إعادة تشغيل خادم التوجيه بعد تحديث الملف التنفيذيلا-
--dry-runعرض ما سيتم تنفيذه دون إجراء تغييراتلا-

6.3 status

الحصول على حالة المستودع

rdc repo status <ref> [options]
العلامةالوصفمطلوبافتراضي
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-
--skip-router-restartتخطي إعادة تشغيل خادم التوجيه بعد تحديث الملف التنفيذيلا-

6.4 cat

قراءة نافذة محدودة من ملف داخل مستودع وكتابتها إلى stdout (محدودة من جانب الخادم؛ التشخيصات تذهب إلى stderr)

rdc repo cat <ref> [options]
العلامةالوصفمطلوبافتراضي
--remote-file <path>مسار الملف للقراءة، نسبةً إلى جذر تثبيت المستودعنعم-
--max-bytes <n>الحد الأقصى من البايتات للقراءة والطباعة (الافتراضي 1 MiB، الحد الأقصى المطلق 50 MiB)لا-
--offset <n>إزاحة البايت لبدء القراءة منهالا-
--head <lines>طباعة أول N سطر فقط (لا يمكن الدمج مع نطاق البايت)لا-
--tail <lines>طباعة آخر N سطر فقط (لا يمكن الدمج مع نطاق البايت)لا-
--statطباعة الحجم والنوع ووقت التعديل فقط؛ دون قراءة أي محتوىلا-
--force-binaryالسماح بقراءة المحتوى الثنائي (الذي يحتوي على NUL)لا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-
--skip-router-restartتخطي إعادة تشغيل خادم التوجيه بعد تحديث الملف التنفيذيلا-

6.5 diff

مقارنة على مستوى الملف بأسلوب git بين مستودعين مفترعين بنسخ-عند-الكتابة. تُبلّغ عن الملفات المضافة والمعدَّلة والمحذوفة والمعاد تسميتها. تُقارن المستودع المُعطى عبر --name (الهدف / الجانب الجديد) بأصله المُحلَّل من الإعدادات المحلية، أو بمستودع --base صريح (الجانب القديم). تعتمد على البيانات الوصفية ومستقلة عن الحجم: تقارن صور LUKS المشفّرة على مستوى الكتل دون فكّ تشفيرها، فتُقارن مستودعًا بحجم 1 ج.ب وآخر بحجم 100 ج.ب في نفس أجزاء الثانية.

rdc repo diff <ref> [options]
العلامةالوصفمطلوبافتراضي
--base <ref>المستودع المُراد المقارنة معه (الجانب القديم/الأساس)؛ افتراضيًا أصل --nameلا-
--name-onlyاطبع فقط مسارات الملفات المتغيّرة، واحدة في كل سطر (بدون أحرف الحالة)لا-
--statأظهر حجم التغيير لكل ملف (فروق البايت والكتل) والإجمالياتلا-
--content [path]أظهر فرقًا نصيًا موحَّدًا لملف واحد (يتطلّب مسار ملف)لا-
--fastثِق بمرشّح الكتل؛ تجاوز تأكيد تجزئة المحتوى (قد يُبالغ في الإبلاغ عن المُعدَّل)لا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-
--skip-router-restartتخطي إعادة تشغيل خادم التوجيه بعد تحديث الملف التنفيذيلا-

6.6 list

عرض المستودعات على جهاز

rdc repo list [options]
العلامةالوصفمطلوبافتراضي
-m, --machine <name>اسم الجهاز المستهدفلا-
--datastore <name>عرض المستودعات في مخزن البيانات هذا (يُحلّ إلى أيًا كان الجهاز الذي يحمله حاليًا)لا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-
--skip-router-restartتخطي إعادة تشغيل خادم التوجيه بعد تحديث الملف التنفيذيلا-

6.7 create

إنشاء مستودع جديد. حدِّد موطنه مرة واحدة: جهاز أو مخزن بيانات.

rdc repo create <name> [options]
العلامةالوصفمطلوبافتراضي
-m, --machine <name>اسم الجهاز المستهدفلا-
--datastore <name>مخزن البيانات المسمى الذي يستضيف المستودع (تدرّج Docker، أو صيغة العنقود)لا-
--size <size>حجم المستودع (مثلاً 10G، 100G، 1T)لا-
--no-dockerتخطي تشغيل Docker daemon بعد الإنشاءلا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-
--skip-router-restartتخطي إعادة تشغيل خادم التوجيه بعد تحديث الملف التنفيذيلا-

6.8 delete

حذف مستودع وبياناته. يُحتفَظ بإدخال التكوين؛ استخدم --archive-config لنقل بيانات الاعتماد إلى deletedRepositories للاستعادة عبر 'repo admin archive restore'. يأخذ <ref> موضعيًا؛ الاسم المجرد يُحلّ إلى الخط الرئيسي (grand) ويُرفض عندما تشترك عدة مستودعات في الاسم الأساسي، لذا مرّر name:tag لاستهداف نسخة متفرعة.

rdc repo delete <ref> [options]
العلامةالوصفمطلوبافتراضي
--archive-configنقل إدخال الإعدادات إلى deletedRepositories للاستعادة لاحقاًلا-
-y, --yesتخطي نافذة التأكيدلا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-
--skip-router-restartتخطي إعادة تشغيل خادم التوجيه بعد تحديث الملف التنفيذيلا-
--dry-runعرض ما سيتم تنفيذه دون إجراء تغييراتلا-

6.9 commit

تجميد الحالة الحالية لفرع عمل (fork) مُركَّب في commit جديد غير قابل للتغيير (شبيه بـ git). يسجّل الـ commit رسالته ومؤلّفه وطابعه الزمني وأصله (parent) داخل المجلد المُشفَّر (بحيث ينتقل معه عند الدفع) ويُعلَّم للقراءة فقط — فيرفض التركيب. يبقى فرع العمل دون تغيير، تماماً كما يترك git شجرة العمل سليمة. استخرج الـ commit باستخدام 'rdc repo checkout' للحصول على نسخة قابلة للكتابة.

rdc repo commit <ref> [options]
العلامةالوصفمطلوبافتراضي
--message <msg>رسالة الـ commitنعم-
--author <author>مؤلّف الـ commitلا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

6.10 branch

إنشاء مرجع branch مُسمّى يشير إلى الـ commit الحالي لفرع العمل (fork) (طرفه). تُخزَّن مراجع الـ branch في إعدادات الـ CLI (الجهاز = مخزن الكائنات، الإعداد = مخزن المراجع).

rdc repo branch <ref> [options]
العلامةالوصفمطلوبافتراضي
--branch <branch>اسم الفرع الجديدنعم-

6.11 checkout

استنساخ commit غير قابل للتغيير (أو طرف branch) عبر reflink إلى فرع عمل (fork) جديد قابل للكتابة وتوجيه HEAD إليه. شبه فوري وثابت الزمن (reflink الخاص بـ BTRFS).

rdc repo checkout <commit-or-branch-ref> [options]
العلامةالوصفمطلوبافتراضي
--tag <name>اسم فرع العمل (fork) الجديد القابل للكتابةنعم-
--from <workingFork>حل الوسيطة الموضعية <commit-or-branch-ref> كاسم فرع على هذا الفرع العامللا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-
--skip-router-restartتخطي إعادة تشغيل خادم التوجيه بعد تحديث الملف التنفيذيلا-

6.12 log

طباعة سجل الـ commit الذي يمكن الوصول إليه من الـ commit الحالي لفرع العمل (fork) (أو من مرجع commit)، بتتبّع سلسلة الأصل (parent) المسجَّلة بواسطة 'rdc repo commit'. يقرأ من النسخة المرآة خارج المجلد المُشفَّر، فلا يُفتح أي commit.

rdc repo log <ref> [options]
العلامةالوصفمطلوبافتراضي
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

6.13 merge

دمج commit مصدري أو fork في fork عملي هدف. لا يتم تعديل الهدف الحي في مكانه أبداً: تُبنى النتيجة في نسخة reflink ويتم تبديلها بشكل ذري. يُرفض الهدف المُركَّب أو قيد التشغيل ما لم يُستخدم --force، الذي يوقفه أولاً بشكل نظيف. بدون --resolve يكون الدمج أخذًا للصورة الكاملة (take-theirs) فيصبح الهدف هو المصدر؛ ومع --resolve ours|theirs يكون دمجًا ثلاثي الاتجاهات لكل ملف مقابل السلف المشترك، يأخذ التغييرات الفريدة لكل جانب ويحل التعارضات الثنائية الجانب وفقًا للخيار.

rdc repo merge <ref> [options]
العلامةالوصفمطلوبافتراضي
--from <source>الـ commit أو fork المصدري المراد الدمج منهنعم-
--forceأوقِف الهدف المُركَّب/قيد التشغيل أولاً، ثم ادمج (لا يعدّل أبداً نقطة تركيب حية)لا-
`—resolve <ourstheirs>`حل التعارضات لكل ملف في دمج ثلاثي الاتجاهات: تُبقي 'ours' على نسخة الهدف، وتأخذ 'theirs' نسخة المصدر. احذفها للتقديم السريع للصورة كاملة (take-theirs).لا
--base <guid>‏GUID الخاص بإيداع السلف المشترك لدمج ثلاثي الاتجاهات (يُستخدم مع ‎--resolve). يكون افتراضيًا أصل إيداع المصدر أو الإيداع الحالي للهدف.لا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

6.14 gc

حذف كائنات الإيداع الثابتة على جهاز التي لا يصل إليها أي فرع أو HEAD (جمع المهملات بحسب قابلية الوصول). الجهاز هو مخزن الكائنات؛ وإعداد الـ CLI هو مخزن المراجع. تشغيل تجريبي افتراضيًا: مرّر ‎--apply‎ للحذف. لا يمسّ أبدًا كائنًا مركّبًا أو نسخة عمل.

rdc repo gc [options]
العلامةالوصفمطلوبافتراضي
-m, --machine <name>اسم الجهاز المستهدفنعم-
--applyحذف الإيداعات غير القابلة للوصول فعليًا (الافتراضي معاينة تجريبية)لا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

6.15 fork

إنشاء نسخة CoW (نسخ عند الكتابة) من مستودع. التفريع شبه فوري وثابت الزمن بغض النظر عن حجم المستودع؛ يستنسخ reflink الخاص بـ BTRFS الصورة الأساسية بحيث يُفرَّع مستودع بحجم 100 ج.ب ومستودع بحجم 1 ج.ب في نفس أجزاء الثانية تقريبًا. تحصل النسخة المتفرعة على GUID وnetworkId ونطاق IP ونطاق توجيه تلقائي جديد ({service}-fork-{tag}.{repo}.{machine}.{baseDomain}) وهي نسخة مستقلة تمامًا. التفريع أثناء التشغيل مدعوم، ويمكن للأصل الاستمرار في العمل. ترث النسخة المتفرعة بيانات اعتماد التشفير الخاصة بالأصل تلقائيًا. استخدم --checkpoint لالتقاط حالة عمليات CRIU قبل التفريع؛ ستستعيدها النسخة المتفرعة تلقائيًا عند أول 'repo up' (تُحفظ الحالة في الذاكرة). التفريع بين الأجهزة: فرِّع محليًا أولاً، ثم انقل: (1) rdc repo fork <parent-ref> --tag <name>، (2) rdc repo push <fork-ref> --to <target-machine>، (3) rdc backup restore <fork-ref> --as <fork-name> -m <target-machine> --up. تحذير: لا تستخدم "repo push" وحدها للتفريع، فهي تُنشئ نسخة خام بنفس GUID (وليست نسخة متفرعة مستقلة). فرِّع دائمًا أولاً للحصول على هوية جديدة. تستخدم المسارات التلقائية اسم المستودع، لذا تحصل كل نسخة متفرعة على نطاق فريد تلقائيًا.

rdc repo fork <ref> [options]
العلامةالوصفمطلوبافتراضي
--tag <name>وسم النسخة (ينشئ اسم:وسم)نعم-
--checkpointإنشاء نقطة تفتيش CRIU على المصدر قبل التفريع (التقاط حالة ذاكرة العمليات للاستعادة عند fork)لا-
--immutableيضع علامة على الفرع كقراءة فقط: يرفض التحميل ويُبقي صورته مستقرة على مستوى البايت إلى الأبد (التزام/أساس مجمَّد للدفع التزايدي بين الأجهزة)لا-
--upتركيب وبدء الخدمات بعد التفريع (fork + mount + up في أمر واحد)لا-
--no-waitمع --up: يعود فور بدء الحاويات؛ تستمر فحوصات الصحة في الخلفية (مثالي للفروع المؤقتة)لا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-
--skip-router-restartتخطي إعادة تشغيل خادم التوجيه بعد تحديث الملف التنفيذيلا-

6.16 replicate

إنشاء N نسخة قراءة من مستودع في ثوانٍ، بغض النظر عن حجم قاعدة البيانات. يأخذ لقطة واحدة فقط لمخزن البيانات، ثم يُنشئ N من عمليات ربط-التفريع (fork-attach) ثابتة الزمن (نسخ عند الكتابة، كتابات محلية قابلة للتخلص منها) موزّعة عبر عقد العنقود، ويطبّق طبقة تراكبية (overlay) مُولَّدة: PersistentVolume واحد مثبَّت لكل نسخة، وStatefulSet، وService اثنان ({repo}-rw للنسخة الرئيسية، {repo}-ro عبر النسخ). النسخ هي لقطات في لحظة زمنية محددة: لا يوجد تدفّق نسخ متماثل (replication)، ولا ضمان لقراءة ما كتبته بنفسك (read-your-writes)؛ تُجري كل نسخة دورة تعافٍ من الأعطال (crash-recovery) واحدة قبل بدء الخدمة. حدِّثها باستخدام 'repo replicate refresh'. مجموعات النسخ حالة مُدارة: راجعها عبر 'repo replicate status' وأزلها عبر 'repo replicate remove'.

status

عرض مجموعات النسخ المُدارة: النسخ، العقد المستضيفة، مخازن البيانات المُفرَّعة، اللقطة، وطوابع زمن التحديث.

rdc repo replicate status <ref>

remove

إزالة مجموعة نسخ: حذف كائنات k8s المُولَّدة لها (ضمن نطاق التصنيفات)، والتخلص من مخازن بياناتها المُفرَّعة، وإسقاط لقطتها، ونسيان حالتها. خطوات البنية التحتية تُنفَّذ على أساس بذل أفضل جهد (best-effort) بحيث تكتمل الإزالة حتى على عنقود فقد جزءًا منه.

rdc repo replicate remove <ref> [options]
العلامةالوصفمطلوبافتراضي
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

refresh

نقل كل نسخة إلى لقطة جديدة في لحظة زمنية محددة، واحدة تلو الأخرى: أعد تشغيل pod الخاص بالنسخة، تخلَّص من مخزن بياناته وأعد تفريعه على نفس المسار، ثم اسمح لفحص الجاهزية (readiness) بإعادة قبوله. تستمر N-1 نسخة في تقديم الخدمة طوال هذه العملية.

rdc repo replicate refresh <ref> [options]
العلامةالوصفمطلوبافتراضي
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

6.17 canary

شغّل صورة جديدة إلى جانب الصورة المستقرة وقسّم حركة المرور الحية بينهما بنسبة مئوية (الدرجة 2 من سلّم الإصدار). يُنشئ هذا الأمر Deployment وService واحدًا للـ Canary على نفس البيانات الحية (بلا تفريع: لأن مستخدمي الـ Canary على بيانات مفرَّعة سيقرؤون بيانات قديمة ويكتبون في نسخة مصيرها الحذف)، ويُخبر وكيل Rediacc بتوجيه النسبة المحددة من حركة مرور المضيف المستقر إليه. الوزن 0 يُبقي الـ Canary بلا حركة مرور (dark)، والوزن 100 هو تحويل blue/green الكامل. قبل كل تغيير على الـ Canary، تؤخذ تلقائيًا لقطة جماعية لمخازن بيانات العنقود (الدرجة 0 من سلّم الإصدار) كوسيلة تراجع شاملة. توافق المخطط (schema) بين الإصدارين (expand-contract) هو مسؤولية التطبيق نفسه. أما الإصدارات التي تكسر المخطط، فاستخدم blue/green بدلاً من ذلك: فرّع المستودع (فوري، يشمل البيانات)، ووجّه Service الخاص بالتفريع إلى هنا بوزن 100، وتراجع بإعادة تشغيل الأصل غير الممسوس؛ الكتابات التي تحدث بعد التحويل توجد فقط في النسخة الجديدة، لذا نافذة التراجع قرار يخص السياسة التشغيلية.

status

عرض مجموعات الـ Canary المُدارة: الوزن، الصور، Service المستقر، وأحدث لقطة للتراجع عن الإصدار.

rdc repo canary status <ref>

weight

تغيير نسبة حركة المرور الموجَّهة إلى الـ Canary. يأخذ أولاً لقطة جماعية جديدة للتراجع عن الإصدار، ثم يعيد تطبيق الطبقة التراكبية (overlay)؛ ويلتقط الوكيل التقسيم الجديد في دورة التحديث التالية. الوزن 100 يرسل كل حركة المرور إلى الإصدار الجديد (تحويل blue/green).

rdc repo canary weight <ref> [options]
العلامةالوصفمطلوبافتراضي
--weight <percent>نسبة حركة المرور الموجَّهة إلى الـ Canary (عدد صحيح من 0 إلى 100؛ 0 = تشغيل خفي، 100 = تحويل كامل)نعم-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

remove

إزالة Deployment وService الخاصين بالـ Canary (ضمن نطاق التصنيفات)؛ يعود Service المستقر لخدمة 100% من حركة المرور. تُحتفَظ بلقطات التراجع عن الإصدار؛ نظّفها باستخدام أوامر لقطات مخزن البيانات.

rdc repo canary remove <ref> [options]
العلامةالوصفمطلوبافتراضي
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

create

تشغيل صورة جديدة إلى جانب الصورة المستقرة وإرسال نسبة مئوية من حركة المرور الحية إليها. يشارك الـ Canary بيانات المستودع الحية (بلا تفريع)، لذا فإن توافق المخطط بين الإصدارين مسؤولية التطبيق. تُؤخذ لقطة جماعية لمخازن بيانات العنقود أولاً، كوسيلة للتراجع.

rdc repo canary create <ref> [options]
العلامةالوصفمطلوبافتراضي
--image <image>الصورة الجديدة التي يشغّلها Deployment الخاص بالـ Canary (على البيانات الحية المشتركة)نعم-
--port <port>المنفذ الذي يخدم عليه التطبيق (يجب أن يطابق Service المستقر)نعم-
--weight <percent>نسبة حركة المرور الموجَّهة إلى الـ Canary (عدد صحيح من 0 إلى 100؛ 0 = تشغيل خفي، 100 = تحويل كامل)نعم-
--service <name>Service المستقر الذي سيتم تقسيم حركة المرور معه (الافتراضي: اسم المستودع)لا-
--replicas <n>عدد نسخ Deployment الخاص بالـ Canary (الافتراضي: 1)لا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

6.18 resize

تغيير حجم مستودع دون اتصال (يدعم التوسيع والتقليص)

rdc repo resize <ref> [options]
العلامةالوصفمطلوبافتراضي
--size <size>حجم المستودع الجديد (مثلاً 10G، 100G، 1T)نعم-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-
--skip-router-restartتخطي إعادة تشغيل خادم التوجيه بعد تحديث الملف التنفيذيلا-

6.19 expand

توسيع مستودع مُركّب أثناء التشغيل (بدون توقف)

rdc repo expand <ref> [options]
العلامةالوصفمطلوبافتراضي
--size <size>حجم المستودع الجديد (مثلاً 10G، 100G، 1T)نعم-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-
--skip-router-restartتخطي إعادة تشغيل خادم التوجيه بعد تحديث الملف التنفيذيلا-

6.20 trim

استعادة مساحة تجمّع مخزن البيانات من المستودعات المركَّبة (أثناء التشغيل، دون توقف). تُعاد الكتل المحذوفة داخل المستودعات إلى التجمّع عبر fstrim. بدون مرجع، تُعالَج كل المستودعات المركَّبة على -m ومخزن البيانات نفسه. يُتخطى fstrim للمستودعات التي يجري نسخها احتياطيًا، لكن استعادة --docker تظل تُنفَّذ

rdc repo trim [ref] [options]
العلامةالوصفمطلوبافتراضي
--dockerاستعادة مساحة Docker (حاويات متوقفة، صور معلّقة، ذاكرة بناء مؤقتة)؛ تُنفَّذ حتى أثناء وجود لقطة نسخ احتياطي نشطةلا-
--docker-volumesحذف وحدات تخزين Docker غير المستخدمة أيضًالا-
--report-onlyعرض حالة discard وتقدير المساحة القابلة للاستعادة دون تنفيذلا-
-m, --machine <name>اسم الجهاز المستهدفلا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

6.21 policy

إدارة سياسة الحجم التلقائية التي يطبقها مشرف التخزين في الجهاز: يوسّع حصة المستودع أثناء التشغيل عندما يمتلئ (لا يتجاوز max-quota أبدًا، ولا يوسّع عند انخفاض مساحة التجمّع) وينفّذ عمليات trim مجدولة. لا يوجد تقليص تلقائي؛ استخدم 'repo resize' لذلك. بدون مرجع، تُدار السياسة الافتراضية على مستوى الجهاز عبر -m

set

يضبط حقول سياسة الحجم. تتغير الأعلام الممررة فقط؛ تحتفظ بقية الحقول المخزنة بقيمها. يتطلب تفعيل التوسيع التلقائي ‎--max-quota: السقف هو موافقتك الصريحة على تجاوز سعة التجمّع

rdc repo policy set [ref] [options]
العلامةالوصفمطلوبافتراضي
--auto-grow <bool>تفعيل التوسيع التلقائي للحصة أثناء التشغيل (true/false)لا-
--max-quota <size>سقف التوسيع التلقائي (مثل 200G)؛ مطلوب للتوسيع التلقائيلا-
--grow-threshold <percent>نسبة استخدام نظام الملفات التي تطلق التوسيع (الافتراضي 85)لا-
--grow-step <step>مقدار التوسيع لكل خطوة: مطلق (10G) أو نسبة من الحصة (20%)لا-
--auto-trim <bool>تفعيل trim المجدول (true/false)لا-
--trim-interval <hours>الحد الأدنى من الساعات بين عمليات trim التلقائية (الافتراضي 24)لا-
-m, --machine <name>اسم الجهاز المستهدفلا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

get

عرض افتراضي الجهاز المخزَّن، وتجاوز المستودع (مع مرجع)، والسياسة الفعلية المدمجة التي يعمل بها المشرف

rdc repo policy get [ref] [options]
العلامةالوصفمطلوبافتراضي
-m, --machine <name>اسم الجهاز المستهدفلا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

6.22 push

دفع مستودع إلى جهاز بعيد (جهاز أو تخزين). يتم الكشف عن نوع الهدف تلقائياً من الإعدادات. للنقل بين الأجهزة، يتم نسخ صورة المستودع المشفرة بنفس GUID — هذا نسخ احتياطي/ترحيل، وليس fork. لإنشاء fork مستقل، استخدم 'repo fork' أولاً، ثم ادفع. تصل النسخة المدفوعة كعنصر نسخة احتياطية (ARTIFACT): شغّلها على الجهاز الهدف بـ 'backup restore <ref> --as <name> -m <target> --up'

rdc repo push <ref> [options]
العلامةالوصفمطلوبافتراضي
--to <remote>اسم الجهاز أو التخزين الوجهة (يتم الكشف تلقائياً من الإعدادات)لا-
--to-machine <machine>لا-
--provision <provider>تزويد الجهاز الهدف تلقائياً عبر مزود السحابة إذا لم يكن موجوداًلا-
--checkpointإنشاء نقطة فحص CRIU قبل النسخ الاحتياطي (التقاط حالة ذاكرة العمليات للترحيل المباشر)لا-
--forceفرض الكتابة فوق النسخة الاحتياطية الموجودةلا-
-w, --watchالانتظار للتغييراتلا-
--bwlimit <limit>حد عرض النطاق لنقل rsync (مثال: "6M"، "10M")لا-
--delta-base <guid>معرّف GUID أساسي ثابت متطابق بايتياً على كلا الجهازين؛ نقل الكتل المتغيرة فقط (هدف الجهاز). احذفه للاكتشاف التلقائي للأساسلا-
--strategy <strategy>استراتيجية دلتا الكتل عند استخدام أساس دلتا: auto أو physical أو sharedلا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-
--skip-router-restartتخطي إعادة تشغيل خادم التوجيه بعد تحديث الملف التنفيذيلا-

6.23 pull

سحب مستودع من جهاز بعيد (جهاز أو تخزين). احذف الاسم لسحب جميع المستودعات. يتم الكشف عن نوع المصدر تلقائياً من الإعدادات. استخدم --up للنشر بعد السحب

rdc repo pull <ref> [options]
العلامةالوصفمطلوبافتراضي
--from <remote>اسم الجهاز أو التخزين المصدر (يتم الكشف تلقائياً من الإعدادات)لا-
--from-machine <machine>لا-
--forceفرض الكتابة فوق المستودع الموجودلا-
--upبعد السحب، قم بتركيب ونشر المستودع على هذا الجهازلا-
-w, --watchالانتظار للتغييراتلا-
--bwlimit <limit>حد عرض النطاق لنقل rsync (مثال: "6M"، "10M")لا-
--delta-base <guid>معرّف GUID أساسي ثابت متطابق بايتياً على كلا الجهازين؛ استقبال الكتل المتغيرة فقط (مصدر الجهاز)لا-
--strategy <strategy>استراتيجية دلتا الكتل عند استخدام أساس دلتا: auto أو physical أو sharedلا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-
--skip-router-restartتخطي إعادة تشغيل خادم التوجيه بعد تحديث الملف التنفيذيلا-

6.24 migrate

ترحيل مستودع حيًا من جهاز إلى آخر بأقل توقف ممكن. rsync على مرحلتين: نقل كتلي أثناء التشغيل، ثم توقف قصير لمزامنة الفروقات (delta). ينقل المستودع بالكامل (يُعاد توجيه التوجيه إلى الموطن الجديد)، وبمجرد نجاح النقل، يحذف صور المصدر (استخدم --keep-source للاحتفاظ بها). يدعم نقطة تفتيش CRIU لترحيل حالة ذاكرة العمليات والتزويد التلقائي للأجهزة الهدف

rdc repo migrate <ref> [options]
العلامةالوصفمطلوبافتراضي
--to <place>الجهاز أو العنقود الوجهةنعم-
--provision <provider>توفير تلقائي للهدف عبر مزود السحابة (مثال: hetzner، linode)لا-
--bwlimit <limit>حد عرض النطاق لنقل rsync (مثال: 10M)لا-
--checkpointترحيل مباشر عبر CRIU: التقاط واستعادة حالة ذاكرة العملياتلا-
--delta-base <guid>معرّف GUID أساسي ثابت لدلتا التحويل (متقدّم؛ الافتراضي هو أساس المرحلة 1)لا-
--strategy <strategy>استراتيجية دلتا الكتل للتحويل: auto أو physical أو sharedلا-
--skip-dnsتخطي تبديل سجلات DNS بعد الترحيللا-
--keep-sourceالاحتفاظ بصور المصدر بعد نجاح النقل (تُحذف افتراضيًا؛ النسخ المتبقية غير قابلة للعنونة من أي سجل تكوين، وتُعلّمها reconcile كعناصر شاردة)لا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

6.25 sync

مزامنة المستودعات والملفات (دفع/سحب جماعي، نقل ملفات)

upload

رفع الملفات إلى مستودع

rdc repo sync upload <ref> [options]
العلامةالوصفمطلوبافتراضي
--local <paths...>مسار واحد أو أكثر لملف أو مجلد محلي (الافتراضي: المجلد الحالي)لا-
--remote <path>مسار المجلد الفرعي البعيد ضمن المستودعلا-
--remote-file <path>‫مسار ملف بعيد واحد (نسبي إلى جذر المستودع) للرفع إليه. لا يمكن استخدامه مع --remote.لا-
--mirrorوضع الانعكاس - حذف الملفات البعيدة غير الموجودة محلياًلا-
--verifyالتحقق من الملفات باستخدام المجاميع الاختبارية بعد المزامنةلا-
--confirmمعاينة التغييرات وطلب التأكيد قبل المزامنةلا-
--exclude <patterns...>الأنماط التي يتم استبعادها من المزامنةلا-
--dry-runعرض ما سيتم تنفيذه دون إجراء تغييراتلا-

download

تنزيل الملفات من مستودع

rdc repo sync download <ref> [options]
العلامةالوصفمطلوبافتراضي
--local <path>مسار المجلد المحلي (افتراضي: المجلد الحالي)لا-
--remote <path>مسار المجلد الفرعي البعيد ضمن المستودعلا-
--remote-file <path>مسار الملف البعيد داخل المستودع (بديل لـ --remote لنقل ملف واحد)لا-
--mirrorوضع الانعكاس - حذف الملفات المحلية غير الموجودة على البعيدلا-
--verifyالتحقق من الملفات باستخدام المجاميع الاختبارية بعد المزامنةلا-
--confirmمعاينة التغييرات وطلب التأكيد قبل المزامنةلا-
--exclude <patterns...>الأنماط التي يتم استبعادها من المزامنةلا-
--dry-runعرض ما سيتم تنفيذه دون إجراء تغييراتلا-

status

التحقق من حالة المزامنة ومقارنة الملفات المحلية/البعيدة

rdc repo sync status <ref> [options]
العلامةالوصفمطلوبافتراضي
--local <path>مسار المجلد المحلي (افتراضي: المجلد الحالي)لا-
--remote <path>مسار المجلد الفرعي البعيد ضمن المستودعلا-
--remote-file <path>مسار الملف البعيد داخل المستودع (بديل لـ --remote لنقل ملف واحد)لا-

6.26 tunnel

إنشاء نفق SSH لتوجيه المنافذ إلى منفذ حاوية على جهاز بعيد. يكتشف تلقائيًا الحاوية والمنفذ عندما لا يكون هناك غموض. يبقى النفق مفتوحًا حتى تضغط Ctrl+C

rdc repo tunnel <ref> [options]
العلامةالوصفمطلوبافتراضي
-c, --container <name>اسم الحاوية (يُكتشف تلقائيًا إذا كانت واحدة فقط قيد التشغيل)لا-
--port <port>منفذ الحاوية البعيد للتوجيهلا-
--local <port>المنفذ المحلي (الافتراضي نفس المنفذ البعيد)لا-
--url-onlyطباعة عنوان URL المحلي فقط عند جهوزية النفق (قابل للقراءة آلياً)لا-

6.27 secret

إدارة أسرار كل مستودع المُحقنة وقت النشر. للكتابة فقط: تُعيد get التلخيص فقط (لا القيمة الصريحة أبدًا)، وتتطلب set/unset تطابق تلخيص --current أو --rotate-secret. وضعا تسليم: env (REDIACC_SECRET_<KEY>) وfile (نظام tmpfs في /var/run/rediacc/secrets/<networkId>/<KEY> عبر `secrets:` في compose). الأسرار لا تدخل صورة LUKS المشفرة أبدًا؛ النسخ المتفرعة لا ترث أيًا منها.

get

عرض تلخيص SHA-256 لسر. لا تُعاد القيمة الصريحة أبدًا بحكم التصميم (للكتابة فقط). استخدم --current في عملية set/unset لاحقة للتحقق من قيمة تعرفها بالفعل، أو دوّرها عبر `set --rotate-secret`.

rdc repo secret get <ref> [options]
العلامةالوصفمطلوبافتراضي
--key <KEY>مفتاح السر بصيغة UPPER_SNAKE_CASE (بحد أقصى 64 حرفاً). سيتم عرضه كـ REDIACC_SECRET_<KEY> لوضع env أو /run/secrets/<key> في الحاويات لوضع file.نعم-

list

سرد مفاتيح وأوضاع السر (لا قيم أبداً، ولا ملخصات).

rdc repo secret list <ref>

set

تعيين أو الكتابة فوق سر. الشوكات لا ترث؛ عيّن على الشوكة بشكل صريح. تحت سياق الوكيل، يتطلب تطابق ملخص --current (نمط passwd).

rdc repo secret set <ref> [options]
العلامةالوصفمطلوبافتراضي
--key <KEY>مفتاح السر بصيغة UPPER_SNAKE_CASE (بحد أقصى 64 حرفاً). سيتم عرضه كـ REDIACC_SECRET_<KEY> لوضع env أو /run/secrets/<key> في الحاويات لوضع file.نعم-
--value <value>قيمة السر. مرر `-` للقراءة من stdin (يتجنب التعرض في سجل الصدفة).نعم-
--mode <mode>وضع التسليم: 'env' (مرئي في بيئة الحاوية، docker inspect) أو 'file' (ملف tmpfs، ليس في البيئة أبداً). الافتراضي: file.لاfile
--current <value>القيمة الصريحة السابقة (شرط مسبق بنمط passwd). مطلوبة للكتابة فوق القيمة أو حذفها؛ حصرية بشكل متبادل مع --rotate-secret.لا-
--rotate-secretالإقرار بالتدوير؛ تخطي شرط --current المسبق (مدقق كتدوير). استخدم عند التدوير المتعمد دون التحقق من القيمة السابقة.لا-

unset

حذف سر. تحت سياق الوكيل، يتطلب تطابق ملخص --current.

rdc repo secret unset <ref> [options]
العلامةالوصفمطلوبافتراضي
--key <KEY>مفتاح السر بصيغة UPPER_SNAKE_CASE (بحد أقصى 64 حرفاً). سيتم عرضه كـ REDIACC_SECRET_<KEY> لوضع env أو /run/secrets/<key> في الحاويات لوضع file.نعم-
--current <value>القيمة الصريحة السابقة (شرط مسبق بنمط passwd). مطلوبة للكتابة فوق القيمة أو حذفها؛ حصرية بشكل متبادل مع --rotate-secret.لا-
--rotate-secretالإقرار بالتدوير؛ تخطي شرط --current المسبق (مدقق كتدوير). استخدم عند التدوير المتعمد دون التحقق من القيمة السابقة.لا-

6.28 admin

أفعال إدارة وصيانة المستودعات.

archive

إدارة سجلات المستودعات المؤرشفة.

list:

عرض بيانات اعتماد المستودعات المؤرشفة

rdc repo admin archive list

purge:

حذف جميع بيانات الاعتماد المؤرشفة نهائياً

rdc repo admin archive purge [name] [options]
العلامةالوصفمطلوبافتراضي
-y, --yesتخطي نافذة التأكيدلا-

restore:

استعادة بيانات اعتماد مستودع مؤرشف

rdc repo admin archive restore <name> [options]
العلامةالوصفمطلوبافتراضي
--new-name <name>اسم المورد الجديدلا-

validate

التحقق من سلامة المستودع

rdc repo admin validate <ref> [options]
العلامةالوصفمطلوبافتراضي
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-
--skip-router-restartتخطي إعادة تشغيل خادم التوجيه بعد تحديث الملف التنفيذيلا-

fsck

التحقق من مراجع إعداد الـ CLI (الفروع، HEAD) مقابل الكائنات الموجودة فعليًا على جهاز. يبلّغ عن المراجع المعلّقة (مرجع يشير إلى كائن مفقود) والإيداعات اليتيمة (إيداع ثابت لا يصل إليه أي مرجع). للقراءة فقط.

rdc repo admin fsck [options]
العلامةالوصفمطلوبافتراضي
-m, --machine <name>اسم الجهاز المستهدفنعم-

ownership

تغيير ملكية مجلد المستودع

rdc repo admin ownership <ref> [options]
العلامةالوصفمطلوبافتراضي
--uid <uid>معرّف المالك UID (افتراضي: 7111)لا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-
--skip-router-restartتخطي إعادة تشغيل خادم التوجيه بعد تحديث الملف التنفيذيلا-

autostart

إدارة التشغيل التلقائي للمستودعات عند الإقلاع

enable:

تمكين التشغيل التلقائي لمستودع

rdc repo admin autostart enable [ref] [options]
العلامةالوصفمطلوبافتراضي
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-
--skip-router-restartتخطي إعادة تشغيل خادم التوجيه بعد تحديث الملف التنفيذيلا-

disable:

تعطيل التشغيل التلقائي لمستودع

rdc repo admin autostart disable [ref] [options]
العلامةالوصفمطلوبافتراضي
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-
--skip-router-restartتخطي إعادة تشغيل خادم التوجيه بعد تحديث الملف التنفيذيلا-

list:

عرض المستودعات ذات التشغيل التلقائي المفعّل

rdc repo admin autostart list [options]
العلامةالوصفمطلوبافتراضي
-m, --machine <name>اسم الجهاز المستهدفنعم-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-
--skip-router-restartتخطي إعادة تشغيل خادم التوجيه بعد تحديث الملف التنفيذيلا-

template

تطبيق قالب على مستودع

list:

عرض جميع قوالب النشر المضمنة في واجهة سطر الأوامر

rdc repo admin template list

apply:

طبّق قالبًا على مستودع. استخدم اسم قالب مدمج (مثل app-postgres) أو --file لقالب JSON مخصص. دورة حياة Rediaccfile: up() تُشغّل الحاويات (سحب الصور، توليد الإعدادات هنا)، down() توقفها. Rediaccfile الأدنى: up() { renet compose -- pull; renet compose -- up -d; } down() { renet compose -- down; }. مهم: يجب أن يستخدم Rediaccfile 'renet compose': يُرفض 'docker compose'. متغيرات البيئة: مستويان: (أ) صَدَفة Rediaccfile: ${SVCNAME_IP} (مثل APP_IP)، ${REDIACC_WORKING_DIR}، ${REDIACC_NETWORK_ID}. (ب) داخل الحاويات: يُدرج renet تلقائيًا متغيرات SERVICE_IP وREDIACC_NETWORK_ID. تتولى إعادة كتابة bind عبر eBPF عزل IP بشفافية، لذا يمكن للتطبيقات الارتباط بـ 0.0.0.0 وتعيد النواة كتابته إلى عنوان loopback الصحيح. يمكن لفحوصات الصحة استخدام localhost. يُدرج network_mode:host تلقائيًا وتُتجاهل ports:. التخزين: كل من bind mounts الخاصة بـ ${REDIACC_WORKING_DIR}/... وأحجام Docker المسمّاة آمنة: جذر بيانات Docker داخل حجم LUKS المشفر. سياسة إعادة التشغيل: سياسات إعادة التشغيل آمنة: يحذفها renet تلقائيًا لتوافق CRIU ويتولى watchdog التعافي. Compose: لا تُضف network_mode أو علامات rediacc.* (يُدرجها renet تلقائيًا). مشاريع متعددة: ضع كل مشروع فرعي في مجلده الفرعي الخاص مع Rediaccfile خاص به: يكتشفها renet تلقائيًا ويشغّلها بالترتيب. توجيه HTTPS: (أ) المسار التلقائي (متوافق مع النسخ المتفرعة، موصى به): لا تُضف traefik.enable. يولّد Renet تلقائيًا https://{serviceName}.{repoName}.{machineName}.{baseDomain}. أضف علامة rediacc.service_port=<port> للمنافذ غير 80. يحصل كل نسخة متفرعة على نطاق فريد. (ب) علامات Traefik (نطاق مخصص، غير متوافق مع النسخ المتفرعة): traefik.enable=true، traefik.http.routers.<n>.rule=Host(`domain`)، traefik.http.routers.<n>.entrypoints=websecure,websecure-v6، traefik.http.routers.<n>.tls.certresolver=letsencrypt، traefik.http.services.<n>.loadbalancer.server.port=<port>. لـ TCP/UDP: rediacc.tcp_ports=3306 / rediacc.udp_ports=53

rdc repo admin template apply <ref> [options]
العلامةالوصفمطلوبافتراضي
--template <name>القالب المُراد تطبيقهنعم-
--file <path>مسار ملف قالب JSON مخصص ({"version":"2","files":{"Rediaccfile":"...","docker-compose.yml":"..."}}): يتجاوز اسم القالب المدمجلا-
--grand <name>اسم المستودع الرئيسي (يُحلّ تلقائيًا إلى GUID)لا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-
--skip-router-restartتخطي إعادة تشغيل خادم التوجيه بعد تحديث الملف التنفيذيلا-

6.29 promote

استبدال بيانات المستودع الأصلي ببيانات النسخة المتفرعة. يحتفظ الأصلي بهويته (GUID، networkId، النطاقات، التشغيل التلقائي، سلسلة النسخ الاحتياطي) لكنه يحصل على البيانات المحدّثة من النسخة المتفرعة. يتم حفظ البيانات القديمة للإنتاج كنسخة احتياطية متفرعة. للاستخدام: اختبر الترقية على النسخة المتفرعة → تحقق → استحوذ على بيانات الإنتاج.

rdc repo promote <fork-ref> [options]
العلامةالوصفمطلوبافتراضي
-y, --yesتخطي نافذة التأكيدلا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-
--skip-router-restartتخطي إعادة تشغيل خادم التوجيه بعد تحديث الملف التنفيذيلا-

6.30 logs

عرض سجلات التطبيق من حاويات مستودع. مستودعات Docker تُقرأ من Docker daemon الخاص بالمستودع نفسه؛ مستودعات Kubernetes تقرأ سجلات الـ pod في فضاء أسماء المستودع. إذا كان المستودع يُشغّل أكثر من حاوية، حدِّد المطلوبة بـ --container.

rdc repo logs <ref> [options]
العلامةالوصفمطلوبافتراضي
-c, --container <name>الحاوية المُراد قراءتها (مطلوبة فقط عندما يُشغّل المستودع أكثر من واحدة)لا-
-f, --followالاستمرار في بث الأسطر الجديدة حتى المقاطعةلا-
--lines <n>عدد أسطر السجل التاريخية المُراد عرضها (الافتراضي: 100)لا100
--timestampsإضافة الطابع الزمني في بداية كل سطرلا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

6.31 exec

تشغيل أمر داخل حاوية مستودع. يُمرَّر رمز خروج الأمر نفسه مباشرةً، لذا يعمل هذا في البرامج النصية والشروط. مستودعات Docker تُشغِّله عبر Docker daemon الخاص بالمستودع؛ مستودعات Kubernetes تُشغِّله في فضاء أسماء المستودع.

rdc repo exec <ref> <cmd...> [options]
العلامةالوصفمطلوبافتراضي
-c, --container <name>الحاوية المُراد التشغيل بداخلها (مطلوبة فقط عندما يُشغّل المستودع أكثر من واحدة)لا-
-i, --interactiveتخصيص طرفية (لأمر يتوقع واحدة)لا-
-u, --user <user>المستخدم الذي يُشغَّل الأمر باسمهلا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

7. المهام المنفصلة

إدارة المهام المنفصلة (detached jobs) على جهاز: عرض قائمتها، التحقق من حالتها، إعادة تشغيل أو متابعة سجلات أحداثها، إلغاء إحداها، أو تنظيف المهام المكتملة. تعمل المهمة المنفصلة تحت systemd على الجهاز، لذا تبقى قائمة حتى عند انقطاع الاتصال ويمكن إعادة الاتصال بها لاحقًا.

7.1 list

عرض المهام المنفصلة على جهاز، الأحدث أولًا

rdc job list [options]
العلامةالوصفمطلوبافتراضي
-m, --machine <name>اسم الجهاز المستهدفنعم-

7.2 status

عرض حالة مهمة منفصلة

rdc job status <job-id> [options]
العلامةالوصفمطلوبافتراضي
-m, --machine <name>اسم الجهاز المستهدفنعم-

7.3 logs

إعادة تشغيل أو متابعة سجل أحداث مهمة منفصلة

rdc job logs <job-id> [options]
العلامةالوصفمطلوبافتراضي
-m, --machine <name>اسم الجهاز المستهدفنعم-
-f, --followبث السجل حتى انتهاء المهمةلا-
--since-line <n>الاستئناف بعد هذا العدد من الأسطر (العدد الذي استلمته بالفعل)لا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

7.4 cancel

إلغاء مهمة منفصلة قيد التشغيل

rdc job cancel <job-id> [options]
العلامةالوصفمطلوبافتراضي
-m, --machine <name>اسم الجهاز المستهدفنعم-
-y, --yesتخطي نافذة التأكيدلا-

7.5 gc

إزالة المهام المكتملة وسجلاتها

rdc job gc [options]
العلامةالوصفمطلوبافتراضي
-m, --machine <name>اسم الجهاز المستهدفنعم-
--older-than <duration>تجميع المهام التي انتهت منذ أكثر من هذه المدة، بالساعات (الافتراضي: 168)لا-
-y, --yesتخطي نافذة التأكيدلا-

8. النسخ الاحتياطي والاستعادة

إدارة استراتيجيات النسخ الاحتياطي وتشغيلاتها المجدولة والعناصر التي تنتجها: عرّف استراتيجية لمستودع، شغّلها أو استعدها عند الطلب، وافحص الأرشيفات التي كتبتها إلى نقطة تخزين.

8.1 schedule

نشر جدول النسخ الاحتياطي إلى جهاز بعيد (مؤقتات systemd)

rdc backup schedule [options]
العلامةالوصفمطلوبافتراضي
-m, --machine <name>اسم الآلةنعم-
--dry-runمعاينة الوحدات المُولَّدة دون نشرهالا-
--forceالمتابعة حتى إن كانت هناك نسخة احتياطية قيد التشغيل (تنطبق الوحدة الجديدة عند النبضة التالية للمؤقت؛ يحتفظ التنفيذ الجاري بوحدته القديمة)لا-
--reset-failedمسح حالة الفشل للخدمات المُعدَّلة بعد نشر ناجح (معطّل افتراضيًا، يحافظ على إشارة الفشل)لا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

8.2 cancel

إلغاء نسخة احتياطية قيد التشغيل على جهاز بعيد

rdc backup cancel [strategy] [options]
العلامةالوصفمطلوبافتراضي
-m, --machine <name>اسم الآلةنعم-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

8.3 list

عرض عناصر النسخ الاحتياطي على جهاز أو تخزين.

rdc backup list [artifact-ref] [options]
العلامةالوصفمطلوبافتراضي
-m, --machine <name>اسم الآلةلا-
--storage <name>عرض العناصر على نقطة التخزين هذهلا-
--path <subdir>دليل فرعي ضمن جذر التخزين. عند حذفه، تُعرض hot/ وcold/ وتُدمَجان.لا-
-w, --watchالانتظار للتغييراتلا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

8.4 restore

تحويل عنصر نسخة احتياطية إلى مستودع فعلي. يُحدَّد الموضع هنا.

rdc backup restore <artifact-ref> [options]
العلامةالوصفمطلوبافتراضي
--as <name>اسم المستودع المُستعاد (افتراضيًا اسم العنصر)لا-
-m, --machine <name>اسم الآلةلا-
--datastore <name>الاستعادة إلى مخزن البيانات المسمى هذا (يستضيفه الجهاز المرفق به)لا-
--upنشر المستودع المُستعاد بعد النقللا-
--health-window <seconds>نافذة بوابة الصحة الإجمالية بالثواني (الافتراضي 300)لا-
--health-timeout <seconds>مهلة فحص الصحة لكل محاولة بالثواني (الافتراضي 30)لا-
-y, --yesتخطي نافذة التأكيدلا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

8.5 run

تشغيل نسخة احتياطية فورية على جهاز بعيد

rdc backup run [strategy] [options]
العلامةالوصفمطلوبافتراضي
-m, --machine <name>اسم الآلةنعم-
-w, --watchالانتظار للتغييراتلا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

8.6 status

عرض حالة النسخ الاحتياطي وحالة المؤقت على جهاز بعيد

rdc backup status [strategy] [options]
العلامةالوصفمطلوبافتراضي
-m, --machine <name>اسم الآلةنعم-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

8.7 strategy

إدارة استراتيجيات النسخ الاحتياطي المسماة (أوضاع ساخنة/باردة، وجهات، جدولة)

set

إنشاء أو تحديث استراتيجية نسخ احتياطي

rdc backup strategy set <strategy> [options]
العلامةالوصفمطلوبافتراضي
--destination <name>اسم الوجهة ضمن الاستراتيجيةلا-
--storage <name>اسم تكوين التخزين (بيانات اعتماد rclone)لا-
--cron <expression>جدول cron (مثلاً "0 * * * *" للتشغيل كل ساعة)لا-
--mode <mode>وضع النسخ الاحتياطي: "hot" (بدون توقف) أو "cold" (إيقاف، لقطة، إعادة تشغيل)لا-
--bwlimit <limit>حد عرض النطاق الترددي لـ rclone (مثلاً "6M"، "10M:off"، "08:00,3M;22:00,10M")لا-
--include <repos>نسخ هذه المستودعات فقط (أسماء مفصولة بفواصل)لا-
--exclude <repos>استبعاد هذه المستودعات من النسخ الاحتياطي (أسماء مفصولة بفواصل)لا-
--folder <path>المجلد الفرعي في حاوية التخزين لهذه الوجهة (مثال: hot, cold)لا-
--enableتفعيل الاستراتيجية أو الوجهةلا-
--disableتعطيل الاستراتيجية أو الوجهةلا-

bind

ربط استراتيجية نسخ احتياطي بجهاز بحيث يُنشر جدولها عليه

rdc backup strategy bind <strategy> [options]
العلامةالوصفمطلوبافتراضي
-m, --machine <name>اسم الجهاز المستهدفنعم-

unbind

فك ربط استراتيجية نسخ احتياطي من جهاز

rdc backup strategy unbind <strategy> [options]
العلامةالوصفمطلوبافتراضي
-m, --machine <name>اسم الجهاز المستهدفنعم-

remove

إزالة استراتيجية نسخ احتياطي أو وجهة

rdc backup strategy remove <strategy> [options]
العلامةالوصفمطلوبافتراضي
--destination <name>إزالة هذه الوجهة فقط (الاحتفاظ بالوجهات الأخرى)لا-

list

عرض قائمة جميع استراتيجيات النسخ الاحتياطي

rdc backup strategy list

show

عرض تفاصيل استراتيجية النسخ الاحتياطي

rdc backup strategy show [strategy]

9. إدارة التخزين

إدارة نقاط تخزين النسخ الاحتياطي الخارجية (S3 ووجهات أخرى متوافقة مع rclone): تسجيلها وإزالتها، وعرض المسجَّل منها، وتصفح العناصر التي تحتفظ بها، وتنظيف النسخ الاحتياطية اليتيمة.

9.1 list

عرض نقاط التخزين. أعطِ اسمًا للحصول على التفاصيل الكاملة.

rdc storage list [name] [options]
العلامةالوصفمطلوبافتراضي
--revealإظهار إعدادات التخزين كنص صريح (طرفية تفاعلية فقط؛ يُسجَّل في التدقيق)لا-

9.2 browse

تصفّح الملفات في نظام تخزين

rdc storage browse <storage> [options]
العلامةالوصفمطلوبافتراضي
--path <subpath>مسار الدليل الفرعي للعرضلا

9.3 prune

حذف النسخ الاحتياطية المعزولة من التخزين غير الموجودة في أي تكوين. آمن مع التكوينات المتعددة مع حماية فترة السماح.

rdc storage prune <storage> [options]
العلامةالوصفمطلوبافتراضي
-m, --machine <name>آلة المنفذ، تشغل مكالمات قائمة/حذف rclone مقابل التخزين. مطلوبة لأن العملاء لا يُتوقع منهم تثبيت rclone محلياً؛ بيانات اعتماد التخزين لا تزال تأتي من تكوينك المحلي.نعم-
--dry-runعرض ما سيتم تنفيذه دون إجراء تغييراتلا-
--forceتخطي نوافذ التأكيدلا-
--force-delete-mountedتجاوز فحص أمان التركيب وحذف النسخ الاحتياطية السحابية حتى لو كان GUID المصدر مركباً حالياً أو لديه حاوية قيد التشغيل على آلة المنفذ. مختلف عن --force (الذي يتجاوز فترة السماح للمستودعات المؤرشفة فقط).لا-
--grace-days <days>فترة السماح بالأيام للمستودعات المؤرشفة حديثًا (الافتراضي: 7)لا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-
--skip-router-restartتخطي إعادة تشغيل خادم التوجيه بعد تحديث الملف التنفيذيلا-

9.4 add

تسجيل نقطة نهاية تخزين.

rdc storage add <name> [options]
العلامةالوصفمطلوبافتراضي
--vault <json>محتوى الخزينة كسلسلة JSONنعم-

9.5 import

استيراد التخزين من ملف تكوين rclone

rdc storage import <file> [options]
العلامةالوصفمطلوبافتراضي
--name <name>استيراد هذا القسم المسمى فقطلا-

9.6 remove

إزالة نقطة تخزين من التكوين.

rdc storage remove <name> [options]
العلامةالوصفمطلوبافتراضي
-y, --yesتخطي نافذة التأكيدلا-
--dry-runعرض ما سيتم تنفيذه دون إجراء تغييراتلا-

10. تكامل VS Code

فتح VS Code Remote SSH للاتصال بجهاز أو مستودع

10.1 connect

فتح VS Code على جهاز أو داخل مستودع.

rdc vscode connect <target> [options]
العلامةالوصفمطلوبافتراضي
-f, --folder <path>مسار المجلد البعيد للفتحلا-
--url-onlyطباعة عنوان VS Code URI بدلاً من تشغيلهلا-
-n, --new-windowالفتح في نافذة VS Code جديدةلا-
--skip-env-setupتخطي إعداد البيئة البعيدةلا-
--insidersاستخدام إعدادات VS Code Insidersلا-
--browserتشغيل VS Code المتصفح من داخل بيئة المستودع المعزولة (لا يلزم VS Code محلياً)لا-
--no-openطباعة عنوان URL دون فتح المتصفح المحليلا-
--local <port>المنفذ المحلي (الافتراضي نفس المنفذ البعيد)لا-
--server-provider <id>تطبيق خادم VS Code المتصفح (openvscode, code-server)لا-
--server-archive <file>مسار أرشيف الخادم المُعدّ مسبقاً على الجهاز (للتثبيت بدون إنترنت)لا-

10.2 list

قائمة اتصالات VS Code SSH المكونة

rdc vscode list

10.3 cleanup

إزالة إعدادات VS Code SSH

rdc vscode cleanup [options]
العلامةالوصفمطلوبافتراضي
--allإزالة جميع إعدادات SSH الخاصة بـ rediaccلا-
-c, --connection <name>إزالة اتصال معينلا-

10.4 check

التحقق من تثبيت VS Code والإعدادات

rdc vscode check [options]
العلامةالوصفمطلوبافتراضي
--insidersاستخدام إعدادات VS Code Insidersلا-

10.5 serve

إدارة خادم VS Code المتصفح داخل بيئة المستودع

status

عرض ما إذا كان خادم VS Code المتصفح يعمل

rdc vscode serve status <target> [options]
العلامةالوصفمطلوبافتراضي
--server-provider <id>تطبيق خادم VS Code المتصفح (openvscode, code-server)لا-

stop

إيقاف خادم VS Code المتصفح

rdc vscode serve stop <target> [options]
العلامةالوصفمطلوبافتراضي
--server-provider <id>تطبيق خادم VS Code المتصفح (openvscode, code-server)لا-

11. وصول طرفية SSH

فتح طرفية SSH إلى جهاز أو مستودع. الهدف اسم جهاز أو مرجع مستودع، ويُعَدّ سياق المستودع (DOCKER_HOST، دليل العمل، البيئة) تلقائيًا. استخدم `-c` لتشغيل أمر واحد بشكل غير تفاعلي. لسجلات الحاويات أو أمر لمرة واحدة داخل حاوية، استخدم `repo logs` و`repo exec`. لـ VS Code، استخدم `vscode`.

11.1 connect

فتح صدفة على جهاز، أو داخل مستودع مع إعداد Docker الخاص به.

rdc term connect <target> [options]
العلامةالوصفمطلوبافتراضي
-c, --command <cmd>تنفيذ أمر بدلاً من الصدفة التفاعليةلا-
--externalفرض تشغيل في نافذة طرفية خارجيةلا-
--reset-homeإعادة تعيين طبقة المنزل لكل مستودع للبدء من جديدلا-

12. أوامر سريعة (اختصارات)

12.1 run

تنفيذ دالة (اختصار لـ: queue create)

rdc run

12.2 trace

تتبع مهمة (اختصار لـ: queue trace)

rdc trace

12.3 cancel

إلغاء مهمة (اختصار لـ: queue cancel)

rdc cancel

12.4 retry

إعادة محاولة مهمة فاشلة (اختصار لـ: queue retry)

rdc retry

13. إدارة الاشتراكات

إدارة التراخيص ورموز الاشتراك. سجّل الدخول بـ login، وافحص الحالة بـ status، وأعد إصدار التراخيص بـ refresh.

13.1 login

المصادقة باستخدام رمز API من بوابة الويب

rdc subscription login [options]
العلامةالوصفمطلوبافتراضي
-t, --token <token>رمز API (rdt_...)لا-
--server <url>عنوان خادم الحسابلا-

13.2 logout

مسح رمز الاشتراك المحفوظ

rdc subscription logout

13.3 status

عرض الاشتراك، وحالة الترخيص لجهاز.

rdc subscription status [options]
العلامةالوصفمطلوبافتراضي
-m, --machine <name>اسم الآلةلا-

13.4 refresh

تحديث التراخيص من خادم الحساب.

rdc subscription refresh [options]
العلامةالوصفمطلوبافتراضي
-m, --machine <name>اسم الآلةلا-
--repo <ref>مرجع المستودع: اسم، أو اسم:وسم، اختياريًا مع @machine (مثال shop أو shop:test)لا-

14. تحديثات سطر الأوامر

التحقق من تحديثات CLI وتطبيقها

rdc update [options]
العلامةالوصفمطلوبافتراضي
--forceفرض التحديث حتى لو كان محدثاًلا-
--check-onlyالتحقق من التحديثات فقط دون التنزيللا-
--rollbackالتراجع إلى الإصدار السابقلا-
--statusعرض حالة التحديث التلقائي والتشخيصاتلا-
--channel <channel>تعيين قناة الإصدار (stable أو edge)لا-

15. إسنادات الأطراف الثالثة

طباعة مكونات الأطراف الثالثة المرفقة مع rdc: الملفات التنفيذية التي يضمّنها renet وينقلها (CRIU وrsync وrclone)، وبيئة تشغيل Node.js المضمّنة، وتبعيات npm المرفقة. يعرض الإصدارات ومعرّفات ترخيص SPDX وعناوين URL لأرشيف المصدر بالإصدار الدقيق المطلوبة للامتثال لـ GPL. استخدم --licenses لطباعة نص THIRD_PARTY_LICENSES الكامل المرفق مع إصدارات الإطلاق.

rdc credits [options]
العلامةالوصفمطلوبافتراضي
--licensesطباعة نص THIRD_PARTY_LICENSES الكامل المرفق مع إصدارات الإطلاقلا-

16. تشخيص النظام

تشخيص بيئة CLI وتكامل renet

rdc doctor

17. عمليات VM محلية

تجهيز وإدارة أجهزة افتراضية محلية باستخدام KVM/QEMU/Hyper-V (يُكتشف النظام الأساسي تلقائيًا). ليست للأجهزة البعيدة — استخدم `machine` لتلك. الأوامر الفرعية الرئيسية: up (تشغيل الأجهزة الافتراضية)، down (إيقافها)، status (سرد الأجهزة الافتراضية العاملة)، ssh (الاتصال بجهاز افتراضي)، setup (تثبيت المتطلبات)، check (التحقق من جاهزية المضيف).

17.1 up

إنشاء مجموعة VM محلياً

rdc ops up [options]
العلامةالوصفمطلوبافتراضي
--forceفرض إعادة تشغيل جميع الآلات الافتراضيةلا-
--parallelإنشاء الآلات الافتراضية بالتوازيلا-
--basicمجموعة بسيطة (جسر + عامل واحد)لا-
--liteتخطي توفير VM (الحالة فقط)لا-
--skip-orchestrationتخطي تنسيق المجموعةلا-
--backend <backend>واجهة المحاكاة الافتراضية (kvm|qemu، يتم الكشف عنها تلقائياً)لا-
--os <name>نظام تشغيل VM (مثلاً، ubuntu-24.04، debian-12)لا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

17.2 down

تدمير مجموعة VM

rdc ops down [options]
العلامةالوصفمطلوبافتراضي
--backend <backend>واجهة المحاكاة الافتراضية (kvm|qemu، يتم الكشف عنها تلقائياً)لا-
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

17.3 status

عرض حالة مجموعة VM

rdc ops status [options]
العلامةالوصفمطلوبافتراضي
--backend <backend>واجهة المحاكاة الافتراضية (kvm|qemu، يتم الكشف عنها تلقائياً)لا-

17.4 ssh

الاتصال بـ VM عبر SSH

rdc ops ssh [options]
العلامةالوصفمطلوبافتراضي
--vm-id <id>معرّف الآلة الافتراضيةنعم-
-c, --command <cmd>تنفيذ أمر بدلاً من الصدفة التفاعليةلا-
--backend <backend>واجهة المحاكاة الافتراضية (kvm|qemu، يتم الكشف عنها تلقائياً)لا-
--user <user>اسم مستخدم SSH للاتصال بالآلة الافتراضيةلا-

17.5 setup

تثبيت متطلبات المحاكاة الافتراضية

rdc ops setup [options]
العلامةالوصفمطلوبافتراضي
--debugتفعيل مخرجات التصحيح (الوضع المحلي)لا-

17.6 check

التحقق من متطلبات المحاكاة الافتراضية

rdc ops check

18. خدمة المُنفِّذ

شغّل هذه العملية كمنفّذ حتى يتمكن العملاء من تنفيذ الأوامر من خلاله بدلاً من الاتصال بأنفسهم عبر SSH

rdc serve [options]
العلامةالوصفمطلوبافتراضي
-p, --port <port>المنفذ الذي يتم الاستماع عليهلا8080
--host <host>العنوان الذي يتم الربط بهلا0.0.0.0
--mode <mode>الموضع: daemon (مضيف العميل) أو containerلاdaemon

رسائل الخطأ الشائعة

عندما يحدث خطأ ما، يوفر سطر الأوامر رسائل خطأ واضحة:

الخطأالمعنى
المصادقة مطلوبة. قم بتشغيل: rdc subscription loginتحتاج إلى تسجيل الدخول أولاً
لا توجد إعدادات نشطة. أنشئ واحدة باستخدام: rdc config init <name>لا توجد إعدادات نشطة — أنشئ واحدة باستخدام `rdc config init`
تم رفض الإذنحسابك لا يملك الصلاحيات المطلوبة
اسم الآلة مطلوب. استخدم --machine <name>حدد جهازاً باستخدام `--machine` أو عيّن قيمة افتراضية للسياق
اسم الفريق مطلوب. استخدم --team أو عيّن القيمة الافتراضية بـ: rdc config set team <name>حدد فريقاً باستخدام `--team` أو عيّن قيمة افتراضية للسياق
اسم المنطقة مطلوب. استخدم --region أو عيّن القيمة الافتراضية بـ: rdc config set region <name>حدد منطقة باستخدام `--region` أو عيّن قيمة افتراضية للسياق

تنسيقات الإخراج

تدعم جميع أوامر القائمة/الحصول تنسيقات إخراج متعددة عبر `--output`:

rdc machine list --output json
rdc machine list --output yaml
rdc machine list --output csv
rdc machine list --output table   # default

هذا يسهّل دمج سطر أوامر Rediacc في البرامج النصية وخطوط أنابيب CI/CD وسير عمل الأتمتة.