دليل عملي

‫Huly‬: استبدل ‫Linear‬ و‫Notion‬ وSlack على خادمك الافتراضي

الأتمتة7 دقائق للقراءةعدد الخطوات: 8

إدارة فريق تقني تعني في الغالب الاشتراك في ثلاث أو أربع خدمات منفصلة: متتبع للمهام، وويكي، وأداة دردشة، ولوحة سبرينت. ‫Huly‬ يجمع كل هذا في تطبيق واحد بموجب ترخيص ‪EPL-2‎.0، يعمل على خادمك الافتراضي الخاص. خادم واحد، لا رسوم على عدد المستخدمين، وبياناتك تبقى داخل بنيتك التحتية.

المحتويات· لماذا توحيد المهام والوثائق والدردشة في أداة واحدة1/10
  1. 01لماذا توحيد المهام والوثائق والدردشة في أداة واحدة
  2. 02ما يوحّده ‫Huly‬ في بنيتك التحتية
  3. 03المتطلبات الدقيقة: ما يستهلكه ‫Huly‬ فعلياً
  4. 04نشر ‫Huly‬ على خادم افتراضي في خمس خطوات
  5. 05بعد التثبيت: النسخ الاحتياطي والتنبيهات وتحديثات الإصدار
  6. 06إعداد النسخ الاحتياطي والمراقبة والتحديثات
  7. 07استكشاف الأخطاء: أربعة أخطاء شائعة وحلولها
  8. 08أخطاء شائعة وحلولها
  9. 09لأي فريق يُناسب ‫Huly‬؟
  10. 10‫Huly‬ مقابل ‫Linear‬ + ‫Notion‬ + ‫Slack‬: ما تكسبه وما تتحمله

لماذا توحيد المهام والوثائق والدردشة في أداة واحدة

اشتراك ‫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‬ على خادم افتراضي في خمس خطوات

  1. استنساخ المستودع الرسمي

    احصل على إعداد ‫Docker Compose‬ من المستودع العام: ‪git clone https://github‎.com/hcengineering/huly-selfhost‎.git && cd huly-selfhost‬. يتضمن المستودع ملف ‪compose‎.yml‬ وسكريبت ‪setup‎.sh‬ الذي يولّد إعداد ‫nginx‬ وملف ‪‎.env‬ تلقائياً.

  2. تشغيل سكريبت الإعداد

    شغّل ‪‎./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‬.

  3. تشغيل الخدمات بـ‫Docker Compose‬

    شغّل الحزمة الكاملة بالأمر ‪docker compose up -d‬. عند التشغيل الأول، تستغرق ‫Elasticsearch‬ و‫CockroachDB‬ دقيقتين إلى ثلاث لتهيئة البيانات قبل أن تصبح الواجهة متاحة. تحقق من حالة الحاويات بـ‪docker compose ps‬ — يجب أن تُظهر جميعها الحالة running.

  4. ضبط البروكسي العكسي بـ‫HTTPS‬

    يولّد سكريبت ‪setup‎.sh‬ إعداد ‫nginx‬ مع ‫TLS‬ مسبقاً. إن استخدمت ‫Caddy‬ أو ‫Traefik‬، وجّه البروكسي العكسي إلى المنفذ الداخلي للخدمة front (الافتراضي 8083). تأكد من تمرير ‫WebSockets‬ عبر ترويسات Upgrade وConnection — بدونها لن تعمل الدردشة الفورية ومكالمات الفيديو.

  5. إنشاء أول مساحة عمل ودعوة الفريق

    افتح نطاقك الفرعي في المتصفح، أنشئ حساب مدير، ثم أنشئ أول مساحة عمل. من إعدادات المساحة، أرسل دعوات بالبريد الإلكتروني إلى أعضاء فريقك. لا تُحتسب أي مقاعد مدفوعة: لا تدفع إلا عن التخزين وعرض النطاق المستهلَك على خادمك.

لتفعيل المزامنة مع ‫GitHub‬، انتقل إلى الإعدادات ← التكاملات في مساحة عمل ‫Huly‬. صِل منظمتك على ‫GitHub‬ بنقرات قليلة عبر ‫OAuth‬. ستظهر المهام المُنشأة في ‫Huly‬ تلقائياً في المستودع المناسب، وستُربط طلبات السحب على ‫GitHub‬ بالمهام المعنية، دون أي ضبط يدوي لـ‪webhook‬.

بعد التثبيت: النسخ الاحتياطي والتنبيهات وتحديثات الإصدار

بمجرد تشغيل ‫Huly‬، ثلاث مهام صيانة تستحق الإعداد الفوري.

إعداد النسخ الاحتياطي والمراقبة والتحديثات

  1. أتمتة النسخ الاحتياطي

    يوفر المستودع سكريبتَين جاهزَين: ‪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‬ أو قرص بعيد).

  2. مراقبة صحة الحاويات

    أعدّ تنبيهاً بسيطاً بتشغيل ‪docker compose ps‬ في مهمة ‫cron‬ كل خمس دقائق، أو انشر أداة خفيفة مثل ‫Uptime Kuma‬. راقب بالأولوية الخدمات account وtransactor وelasticsearch — هي المسؤولة عن أكثر الأعطال ظهوراً. سجلات كل خدمة متاحة عبر ‪docker compose logs -f <اسم-الخدمة>‬.

  3. التحديث إلى إصدار جديد

    قبل أي تحديث، اقرأ ‪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‬ لإعداد خط أنابيب كامل على نفس الخادم.

أطلق Huly على خادم VPS من ServOrbit

توفّر ServOrbit خوادم VPS بذاكرة من 4 GB إلى 16 GB: بدءاً من VPS Power، تستوعب منظومة Docker Compose مثل Huly. انشرها في دقائق واحتفظ بالتحكّم الكامل في بيانات فريقك.

بحاجة إلى مساعدة؟

تصفّح مركز المساعدة والأسئلة الشائعة، أو تواصل مع فريقنا — معاودة اتصال أو WhatsApp أو بريد إلكتروني. الدعم بـالعربية والفرنسية والإنجليزية.

راسلنا على WhatsAppيُفتح في علامة تبويب جديدة