لماذا OneDev بدلاً من Gitea وحده؟
Gitea ممتاز لاستضافة الكود، لكن بمجرد أن تحتاج CI/CD، عليك تثبيت runner منفصل وتكوينه ومراقبته. OneDev يفعل ذلك افتراضيًا: عند دفع .onedev-buildspec.yml، يُجدوَل مسار CI/CD ويُنفَّذ في حاوية Docker على نفس الـVPS دون إعداد إضافي.
ما تحصل عليه مع OneDev
- منصة Git كاملة: مستودعات وفروع وطلبات دمج ومراجعات وWikis وإصدارات
- CI/CD مدمج مع مصمم مرئي للمسارات — لا runner منفصل
- لوحات Kanban مع انتقالات تلقائية مدفوعة بأحداث المستودع
- سجل حزم Docker وnpm وMaven وNuGet وHelm على نفس الـURL
- بحث رمزي في الكود وتنقل في الفوارق
- مصادقة عبر LDAP وOAuth2 أو حسابات محلية
- استيراد من GitHub وGitLab وGitea مع التاريخ والمشكلات
البنية: حاويتان، رابط واحد
يعمل OneDev كحاويتين Docker: 1dev/server (تطبيق Java) وpostgres:14 (قاعدة البيانات). يستمع التطبيق على المنفذ 6610؛ يضع ServOrbit خادم nginx أمامه ويتولى TLS. كل شيء يمر عبر نفس النطاق: واجهة الويب، ونسخ Git عبر HTTPS، وwebhooks CI، وسجل الحزم.
تضم صورة 1dev/server أيضًا عامل بناء محليًا. عند بدء مسار CI/CD، يُطلق حاوية Docker لكل خطوة بناء — لهذا تُحمَّل socket Docker (/var/run/docker.sock) في حاوية OneDev. تستخدم RAM حوالي 512 MB عند بدء التشغيل؛ يُوصى بـ2 GB للسماح بهامش للبناء المتزامن.
نشر OneDev في 4 خطوات
طلب VPS مع نطاق
اختر VPS بـ2 GB RAM على الأقل. نطاق مطلوب: يُدمج OneDev URL الخادم في روابط الاستنساخ. استخدم نطاق فرعيًا مخصصًا أو النطاق الفرعي المجاني من ServOrbit.
نشر تلقائي من Marketplace
في مساحة ServOrbit، اذهب إلى Marketplace → Development → OneDev → Deploy. الواجهة متاحة عبر HTTPS في دقيقتين.
معالج الإعداد الأولي
افتح نطاقك في متصفح. يطلب المعالج إنشاء حساب المسؤول وإدخال URL الخادم — أدخل نطاق HTTPS الكامل.
أول مستودع وأول مسار CI/CD
أنشئ مستودعًا، أضف .onedev-buildspec.yml وادفع. يكتشف OneDev المواصفات ويُشغّل المسار تلقائيًا.
مسار OneDev: .onedev-buildspec.yml
يستخدم OneDev تنسيق YAML خاصًا به للمسارات، مختلف عن GitHub Actions أو GitLab CI. يتكون الهيكل الأساسي من jobs مع steps. يمكن لكل step استخدام صورة Docker وتشغيل سكريبت ونشر نتيجة أو إرسال إشعار.
المصمم المرئي للمسارات يولّد هذا YAML رسوميًا: تضيف الخطوات من الواجهة، وOneDev يكتب الملف. تدعم المسارات مصفوفات البناء، والجدولة عبر scheduleTrigger، ولوحة تحكم تعرض حالة جميع الوظائف.
OneDev مقارنةً بـGitea وGitLab CE
| OneDev | Gitea | GitLab CE | |
|---|---|---|---|
| CI/CD مدمج | نعم (عامل مدمج) | عبر runner منفصل | نعم (runner GitLab) |
| Kanban مدمج | نعم | لا | نعم |
| سجل الحزم | Docker وnpm وMaven | Docker وnpm وMaven | Docker وnpm وMaven |
| RAM (مطور واحد) | ~512 MB خاملاً | ~200 MB | 2 GB كحد أدنى |
| الترخيص | MIT | MIT | MIT (EE مملوك) |
| استيراد من GitHub | نعم (مشكلات + PR) | نعم (كود فقط) | نعم |
نسخ احتياطي لـOneDev
يخزن OneDev كل شيء في حجمين Docker: onedev_data (مستودعات Git والإعدادات) وonedev_db (PostgreSQL). يعني النسخ الاحتياطي الكامل أرشفة هذين الحجمين. يمكن أيضًا تهيئة نسخ احتياطي تلقائي إلى S3 من إدارة الموقع → الإعدادات → إعدادات النسخ الاحتياطي.
لا تكشف أبدًا socket Docker على واجهة عامة — فهي تمنح صلاحية root لجهاز الاستضافة. ServOrbit يربط المنفذ 6610 بالـloopback افتراضيًا.