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

البدء السريع

تشغيل خدمة حاويات على خادمك في دقائق.

البدء السريع

ثبّت Rediacc على خادمك الخاص. بيئات حاويات مشفرة ومعزولة، لا حاجة لحسابات سحابية أو اعتماد على خدمات SaaS. أجهزتك، سيطرتك.


مقدمة

المفاهيم الأساسية

المستودع هو ملف مشفر واحد على القرص. يمكنك نقله أو نسخه احتياطيًا أو استنساخه. إنه مجرد ملف. عند توصيله، يصبح مجلدًا يحتوي على Docker daemon مخصص وبيانات تطبيقك بداخله.

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

أداتان، دوران:

  • rdc = سطر الأوامر على جهازك المحمول (TypeScript، يُثبَّت عالميًا)
  • renet = المنسق على الخادم (ملف Go ثنائي، يدير العمليات/الشبكات/العزل)
  • يقوم RDC بتجهيز renet تلقائيًا أثناء config machine setup. لا حاجة لإعداد يدوي على الخادم.

صفحة البنية التحتية تشرح نموذج الأمان. صفحة rdc vs renet تشرح متى تستخدم كل أداة.

1. تثبيت سطر الأوامر

curl -fsSL https://www.rediacc.com/install.sh | bash
rdc doctor     # تحقق من: Node، مفتاح SSH، renet، Docker

أنظمة Windows وAlpine وArch: انظر التثبيت. متطلبات النظام الكاملة: المتطلبات.

2. إعداد مفتاح SSH

يتصل rdc عبر SSH. يجب أن يثق الخادم بمفتاحك العام قبل أن يتمكن rdc من الوصول إليه.

# أنشئ مفتاحًا (تخطَّ هذا إذا كان لديك مفتاح بالفعل)
ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519

# انسخ المفتاح العام إلى الخادم (سيطلب كلمة المرور)
ssh-copy-id -i ~/.ssh/id_ed25519 user@your-server-ip

# أخبر rdc بالمفتاح الذي يجب استخدامه
rdc config ssh set --key ~/.ssh/id_ed25519

كل أوامر rdc الآن تُصادق باستخدام هذا المفتاح. لا حاجة لكلمات مرور.

3. أضف خادمك

rdc machine add my-server --ip 192.168.1.100 --user admin
rdc machine setup my-server  # يجهّز renet + ينشئ مخزن البيانات

ما يحدث: يتم فحص مفتاح مضيف SSH، ورفع ملف renet الثنائي، وتهيئة مخزن البيانات المشفر على الخادم. جاهز للمستودعات.

حجم مخزن البيانات، Ceph RBD، مزودو الخدمات السحابية: إعداد الجهاز. مشاكل SSH: استكشاف الأخطاء وإصلاحها.

4. ملف الإعدادات

rdc config show                            # ملخص سهل القراءة
cat ~/.config/rediacc/rediacc.json         # ملف JSON الخام: الأجهزة، المستودعات، التخزين، مفتاح SSH

ملف واحد = بيئة واحدة. انسخه إلى جهاز محمول آخر وستكون جاهزًا.


العمل مع مستودع

1. إنشاء مستودع

rdc repo create my-app -m my-server --size 2G  # إنشاء مستودع مشفر بحجم 2 جيجابايت

ينشئ وحدة التخزين المشفرة، ويوصّلها، ويبدأ Docker daemon الخاص بها. يتم تسجيل المستودع في إعداداتك ويصبح جاهزًا للاستخدام.

تغيير الحجم، الحذف، التحقق: المستودعات.

2. تطبيق قالب

rdc repo admin template list                                        # عرض القوالب المضمنة
rdc repo admin template apply my-app --template app-postgres  # نشر docker-compose.yml + Rediaccfile

توفر القوالب ملف docker-compose.yml وملف Rediaccfile وملفات مساعدة. بدون قالب (أو ملف compose خاص بك)، لا يوجد شيء لتشغيله. استخدم القالب المضمن لأول مستودع لك. إنها الطريقة الأسرع لرؤية سير العمل الكامل من البداية إلى النهاية.

3. تشغيل المستودع

rdc repo up my-app  # تنفيذ Rediaccfile up()
rdc repo list -m my-server                           # عرض جميع المستودعات على الجهاز
rdc repo status my-app  # حالة التوصيل، Docker، الحجم، التشفير

يقوم repo up بالتوصيل التلقائي عند الحاجة. لا حاجة لمعاملات إضافية.

4. VS Code

rdc vscode connect my-app              # يفتح VS Code عبر SSH، داخل صندوق حماية المستودع

أنت تعدّل الملفات داخل وحدة التخزين المشفرة. docker ps يعرض فقط حاويات هذا المستودع. احفظ، نفّذ compose up، وكرّر العملية.

5. rdc repo up مقابل renet dev up

rdc repo uprenet dev up
أين تنفّذهجهازك المحمول (سطر الأوامر)داخل صندوق حماية VS Code
ما يفعلهSSH ثم توصيل تلقائي ثم تنفيذ Rediaccfile up()ينفّذ Rediaccfile up() مباشرة
حالة الاستخدامCI/CD، الأتمتة، العمليات عن بُعدحلقة التطوير الداخلية
العزلينسّق من الخارجموجود بالفعل داخل صندوق الحماية

سير العمل التجريبي: rdc repo admin template apply ثم rdc vscode connect my-app ثم عدّل docker-compose.yml ثم renet dev up ثم شاهد التطبيق يعمل ثم كرّر.

هيكل Rediaccfile: الخدمات. متى تستخدم كل أداة: rdc vs renet.

6. نموذج العزل

  • المستخدم الموحد (rediacc): نفس UID على كل جهاز. انقل مستودعًا إلى خادم آخر وملكية الملفات تعمل مباشرة. لا مشاكل مع chown.
  • Docker daemon لكل مستودع: كل مستودع يحصل على Docker daemon معزول خاص به. docker ps يعرض فقط حاويات هذا المستودع.
  • صندوق حماية Landlock + OverlayFS: واجهة VS Code مقيدة على مستوى نظام الملفات. لا يمكنك قراءة المستودعات الأخرى. الكتابة إلى $HOME تتم عبر طبقات overlay لكل مستودع.

كيف يعمل العزل: البنية التحتية. دورة حياة Rediaccfile: الخدمات.

7. الطرفية، المزامنة والأنفاق

الطرفية:

rdc term connect my-app                            # SSH إلى صندوق حماية المستودع
rdc term connect my-app -c "curl localhost:3000"   # تنفيذ أمر والخروج
rdc term connect my-server                                   # SSH إلى الجهاز (بدون صندوق حماية)

مزامنة الملفات (rsync عبر SSH):

rdc repo sync upload my-app --local ./src                                   # رفع مجلد
rdc repo sync upload my-app --local ./config.yml --remote conf              # رفع ملف واحد
rdc repo sync download my-app --local ./backup                              # تنزيل مجلد
rdc repo sync download my-app --remote-file conf/config.yml --local ./dl    # تنزيل ملف واحد
rdc repo sync download my-app --local ./backup --dry-run                    # معاينة أولاً

النفق (تحويل منفذ SSH إلى الحاوية):

rdc repo tunnel my-app -c app  # كشف تلقائي للمنفذ لحاوية app
rdc repo tunnel my-app -c db --port 5432  # نفق Postgres
rdc repo tunnel my-app -c db --port 5432 --local 15432  # منفذ محلي مخصص

شغّل النفق ثم افتح localhost:3000 في المتصفح ثم شاهد التطبيق الحي من الخادم البعيد.

تفاصيل المزامنة، الطرفية، VS Code: الأدوات.


الاستنساخ والنسخ الاحتياطي

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

rdc repo fork my-app --tag experiment --up  # استنساخ فوري بتقنية CoW + تشغيل
rdc repo list -m my-server                                  # يعرض: my-app (أصلي) + my-app:experiment (متفرع)
rdc repo delete my-app:experiment  # حذف المتفرع، الأصلي لا يتأثر

استنساخ فوري بدون نسخ. تقنية CoW (النسخ عند الكتابة). يتم في أجزاء من الثانية، بدون نسخ بيانات. تُشارَك الكتل حتى يقوم أحد الطرفين بالكتابة.

حالات الاستخدام:

  • الذكاء الاصطناعي / التعلم الآلي: استنسخ بيانات الإنتاج، نفّذ تجربة، تخلّص منها أو اعتمدها
  • DevOps: استنسخ ثم اختبر الترحيل ثم احذف إذا فشل، واعتمد إذا نجح
  • النسخ الاحتياطي: الاستنساخ = لقطة فورية، أرسلها خارج الموقع

دورة حياة الاستنساخ، الاستنساخ عبر الأجهزة: المستودعات.

2. الدفع إلى جهاز آخر

# دفع المستودع إلى جهاز آخر
rdc repo push my-app --to backup-server

# دفع مع نشر تلقائي على الهدف
rdc backup restore my-app --as my-app -m backup-server --up

# دفع مع نقطة تفتيش CRIU (ترحيل حي، يحفظ حالة الذاكرة)
rdc repo push my-app --to new-server --checkpoint

# دفع إلى جهاز جديد (تجهيز تلقائي عبر مزود سحابي)
rdc repo push my-app --to new-server --provision linode

3. الدفع إلى التخزين السحابي (OneDrive، Google Drive، S3)

# استيراد إعدادات rclone كخلفية تخزين
rdc storage import ~/rclone.conf

# عرض وحدات التخزين المتاحة
rdc storage list

# دفع المستودع إلى التخزين السحابي
rdc repo push my-app --to my-s3-backup

# عرض النسخ الاحتياطية على التخزين
rdc backup list --storage my-s3-backup

يكشف --to تلقائيًا ما إذا كان الهدف جهازًا أو خلفية تخزين. يعمل مع أي مزود يدعمه rclone: S3، R2، B2، OneDrive، Google Drive، SFTP، وغيرها.

4. السحب من مصدر بعيد

# سحب مستودع من جهاز سحابي إلى خادمك المحلي
rdc repo pull my-app@my-local-server --from cloud-server

# سحب من التخزين السحابي
rdc repo pull my-app@my-local-server --from my-s3-backup

# سحب وتشغيل فوري
rdc repo pull my-app@my-local-server --from my-s3-backup --up

لماذا السحب؟ جهازك المحلي خلف NAT. السحابة لا تستطيع الدفع إليك. لكنك تستطيع الوصول إلى السحابة. السحب يجلب المستودع إلى بيئتك.

الدورة الكاملة: أنشئ على بيئة التطوير ثم ادفع إلى السحابة ثم اسحب إلى الإنتاج ثم --up. مستودع واحد، أي جهاز، أي سحابة.

الجدولة، النسخ الاحتياطي التلقائي، الاستعادة: النسخ الاحتياطي والاستعادة.


الوكيل العكسي وشهادات SSL

1. إعداد البنية التحتية

rdc machine infra set my-server  # إعداد: النطاق الأساسي، عناوين IP العامة، نطاقات المنافذ
rdc machine infra show my-server  # مراجعة الإعدادات
rdc machine infra push my-server  # دفع إعدادات الوكيل إلى الخادم البعيد

كيف يعمل التوجيه:

  • يكتشف Traefik الحاويات تلقائيًا عبر تسميات rediacc.service_name و rediacc.service_port
  • المسارات: {service}-{networkId}.{baseDomain} تُوجَّه إلى عنوان الحاوية IP:port
  • شهادات SSL: عبر Let’s Encrypt باستخدام تحدي Cloudflare DNS-01 (تجديد تلقائي، شهادات wildcard)

2. قالب الوكيل العكسي

rdc repo admin template apply infra --template proxy  # نشر الوكيل في مستودع
rdc repo up infra  # تشغيل Traefik

الآن يقوم Traefik بتوجيه حركة المرور الخارجية إلى جميع المستودعات على هذا الجهاز. كل حاوية تحصل على نقطة نهاية HTTPS تلقائيًا.

# انتقل إلى https://my-app.example.com لرؤية التوجيه إلى الحاوية
# تحويل TCP/UDP لقواعد البيانات:
#   rediacc.tcp_ports=3306,5432 منافذ خارجية مخصصة تلقائيًا

قواعد التوجيه، DNS، إعدادات TLS: الشبكات.


الخطوات التالية