لماذا توحيد المهام والوثائق والدردشة في أداة واحدة
اشتراك Linear واشتراك Notion وخطة Slack وGitHub Projects قد تتجاوز معاً 40 إلى 80 يورو شهرياً لكل مطوّر. بعيداً عن التكلفة، كل أداة تُنشئ عزلاً: قرار اتُخذ في الدردشة لا يرتبط بالمهمة التي أفرزته، والويكي يعيش منفصلاً عن لوحة Kanban. Huly مرخَّص بموجب EPL-2.0، وهو ترخيص مرن جداً للاستضافة الذاتية، يتيح النشر التجاري دون رسوم على عدد المستخدمين.
ما يوحّده Huly في بنيتك التحتية
- المهام والسبرينت — أنشئ تذاكر ونظّمها في سبرينت وخرائط طريق مع لوحات Kanban مدمجة، كل ذلك دون مغادرة التطبيق.
- الويكي والوثائق — اكتب صفحات منظّمة مباشرةً في Huly؛ الوثائق محفوظة بإصداراتها ومرتبطة بالمشاريع المعنية.
- الدردشة في الوقت الفعلي — مراسلة بالقنوات والخيوط مع مكالمات فيديو مدمجة، لاستبدال Slack دون اشتراك إضافي.
- المزامنة الثنائية مع GitHub — مهام Huly تُعكس في GitHub والعكس صحيح؛ طلبات السحب على GitHub تظهر تلقائياً في المهام المرتبطة.
- تتبع الوقت — سجّل الوقت المنقضي على كل مهمة مباشرةً من الواجهة، دون أي امتداد خارجي.
المتطلبات الدقيقة: ما يستهلكه Huly فعلياً
Huly تطبيق كثيف الموارد. يحدد مستودع huly-selfhost الرسمي حداً أدنى مطلقاً بـ 2 وحدة معالجة افتراضية و8 جيجابايت RAM — دون ذلك قد تفشل الخدمات في البدء أو تتوقف عن الاستجابة. في الإنتاج مع فريق نشط، يُوصى بـ 4 وحدات معالجة و16 جيجابايت RAM. على صعيد التخزين، خطط لـ 20 جيجابايت على الأقل لمجلدات Docker: Elasticsearch وحده قد يشغل 4 إلى 6 جيجابايت بعد أسابيع من الفهرسة، ومخزن الملفات (MinIO) ينمو مع المرفقات. خادم ServOrbit بـ 4 وحدات معالجة و8 جيجابايت RAM يكفي لفريق حتى خمسة عشر شخصاً؛ انتقل إلى الخطة الأعلى من 8 جيجابايت لثلاثين شخصاً أو أكثر.
نشر Huly على خادم افتراضي في خمس خطوات
استنساخ المستودع الرسمي
احصل على إعداد Docker Compose من المستودع العام:
git clone https://github.com/hcengineering/huly-selfhost.git && cd huly-selfhost. يتضمن المستودع ملف compose.yml وسكريبت setup.sh الذي يولّد إعداد nginx وملف .env تلقائياً.تشغيل سكريبت الإعداد
شغّل
./setup.sh وأدخل عنوان نطاقك الفرعي (مثلاً huly.example.com). يولّد السكريبت ملف huly_v7.conf يحتوي على الإصدار (HULY_VERSION)، والأسرار المشفرة، وبيانات اعتماد MinIO، ومسارات المجلدات. فعّل إعداد nginx بالأمر التالي: sudo ln -s $(pwd)/nginx.conf /etc/nginx/sites-enabled/huly.conf && sudo nginx -s reload.تشغيل الخدمات بـDocker Compose
شغّل الحزمة الكاملة بالأمر
docker compose up -d. عند التشغيل الأول، تستغرق Elasticsearch وCockroachDB دقيقتين إلى ثلاث لتهيئة البيانات قبل أن تصبح الواجهة متاحة. تحقق من حالة الحاويات بـdocker compose ps — يجب أن تُظهر جميعها الحالةrunning.ضبط البروكسي العكسي بـHTTPS
يولّد سكريبت
setup.sh إعداد nginx مع TLS مسبقاً. إن استخدمت Caddy أو Traefik، وجّه البروكسي العكسي إلى المنفذ الداخلي للخدمةfront(الافتراضي8083). تأكد من تمرير WebSockets عبر ترويساتUpgradeوConnection— بدونها لن تعمل الدردشة الفورية ومكالمات الفيديو.إنشاء أول مساحة عمل ودعوة الفريق
افتح نطاقك الفرعي في المتصفح، أنشئ حساب مدير، ثم أنشئ أول مساحة عمل. من إعدادات المساحة، أرسل دعوات بالبريد الإلكتروني إلى أعضاء فريقك. لا تُحتسب أي مقاعد مدفوعة: لا تدفع إلا عن التخزين وعرض النطاق المستهلَك على خادمك.
لتفعيل المزامنة مع GitHub، انتقل إلى الإعدادات ← التكاملات في مساحة عمل Huly. صِل منظمتك على GitHub بنقرات قليلة عبر OAuth. ستظهر المهام المُنشأة في Huly تلقائياً في المستودع المناسب، وستُربط طلبات السحب على GitHub بالمهام المعنية، دون أي ضبط يدوي لـwebhook.
بعد التثبيت: النسخ الاحتياطي والتنبيهات وتحديثات الإصدار
بمجرد تشغيل Huly، ثلاث مهام صيانة تستحق الإعداد الفوري.
إعداد النسخ الاحتياطي والمراقبة والتحديثات
أتمتة النسخ الاحتياطي
يوفر المستودع سكريبتَين جاهزَين:
backup-create.sh وbackup-restore.sh. شغّل ./backup-create.sh من مجلد huly-selfhost لإنشاء أرشيف لجميع المجلدات (CockroachDB، وElasticsearch، وMinIO). جدوِل هذا السكريبت عبر cron — مثلاً 0 3 * * * /opt/huly-selfhost/backup-create.sh >> /var/log/huly-backup.log 2>&1 للنسخ الاحتياطي اليومي الساعة 3 صباحاً. احفظ الأرشيفات خارج الخادم (S3 أو دلو Hetzner أو قرص بعيد).مراقبة صحة الحاويات
أعدّ تنبيهاً بسيطاً بتشغيل
docker compose ps في مهمة cron كل خمس دقائق، أو انشر أداة خفيفة مثل Uptime Kuma. راقب بالأولوية الخدماتaccountوtransactorوelasticsearch— هي المسؤولة عن أكثر الأعطال ظهوراً. سجلات كل خدمة متاحة عبر docker compose logs -f <اسم-الخدمة>.التحديث إلى إصدار جديد
قبل أي تحديث، اقرأ
MIGRATION.md للإصدار المستهدف. إن أشارت الفقرة إلى «No changes required»، عدّلHULY_VERSIONفي huly_v7.conf بالعلامة الجديدة (مثلاً v0.7.426)، ثم شغّل git pull && docker compose pull && docker compose up -d. للترقية الكبرى (0.6.x → 0.7.x)، اتبع خطوات الترحيل الموثّقة خاصةً حول القسم v0.7.204.
استكشاف الأخطاء: أربعة أخطاء شائعة وحلولها
أكثر المشكلات شيوعاً عند نشر Huly تنبع من مصدر واحد: خدمة لم تنته من التهيئة، أو إعداد شبكة غير مكتمل.
أخطاء شائعة وحلولها
- فشل التسجيل بصمت عند إنشاء الحساب. السبب المحتمل: خدمة
accountغير موصولة أو مُعدَّة خطأً. تحقق من سجلاتها بـdocker compose logs -f account — ستظهر أخطاء callback URL أو مشاكل الاتصال بـCockroachDB بوضوح. - Elasticsearch لا يبدأ (رمز الخروج 137 أو OOMKilled). السبب: ذاكرة غير كافية. تضيف Elasticsearch إلى متغيرات البيئة
ES_JAVA_OPTS=-Xms1g -Xmx1g للحد من ذاكرة Java heap إلى 1 جيجابايت إن كان خادمك في الحدود الدنيا. - MinIO غير مُتاح — المرفقات لا تُحمَّل. السبب: أذونات المجلدات أو مشكلة دقة DNS الداخلية بين الحاويات. تأكد أن minio في حالة
runningبـdocker compose ps. إن اختفت الملفات بعد إعادة التشغيل، تحقق من أن مسار المجلد في huly_v7.conf مسار مطلق صالح على الخادم وأن الأذونات صحيحة (chown -R 1000:1000 /var/huly/files). - WebSockets لا تعمل — الدردشة ومكالمات الفيديو مجمّدة. السبب: البروكسي العكسي لا يُمرر ترويسات
Upgrade: websocketوConnection: Upgrade. في nginx، أضف صراحةً proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; داخل كتلةlocation.
لأي فريق يُناسب Huly؟
Huly مناسب بشكل خاص للوكالات والفرق التقنية التي يتراوح حجمها بين 5 و50 شخصاً وتريد تقليص اعتمادها على خدمات SaaS دون التضحية بالمميزات. كما يلائم الفرق التي تتعامل مع بيانات حساسة وتُلزمها قيود تنظيمية أو تعاقدية باستضافة التواصل والوثائق داخلياً. إن كانت تكاليف الاشتراك بعدد المستخدمين تُثقل نموّك، يكفي خادم افتراضي واحد لتغطية كامل أدوات التعاون.
Huly مقابل Linear + Notion + Slack: ما تكسبه وما تتحمله
مرّر الجدول أفقيًا
| التكلفة الشهرية (فريق 10 أشخاص) | ~600 يورو (اشتراكات مجمّعة) | ~30 يورو (خادم ServOrbit) |
|---|---|---|
| استضافة البيانات | لدى موردي SaaS | على بنيتك التحتية |
| صيانة الخادم | لا شيء | تحديثات + نسخ احتياطي للإدارة |
| التخصيص | محدود بالخطط التسعيرية | كامل (مفتوح المصدر EPL-2.0) |
| الموارد المطلوبة | متصفح فقط | VPS بـ 2 وحدة معالجة / 8 جيجابايت RAM كحد أدنى |
للمضي أبعد في أتمتة سير العمل، يمكن دمج Huly مع خط أنابيب CI/CD ذاتي الاستضافة. راجع دليلنا حول Woodpecker CI وForgejo لإعداد خط أنابيب كامل على نفس الخادم.