[{"data":1,"prerenderedAt":161},["ShallowReactive",2],{"seo-verification":3,"blog-نشر-plane-كاستضافة-ذاتية-على-خادم-vps-لينكس-ar":6},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"id":7,"slug":8,"slugs":9,"title":12,"excerpt":13,"readTime":14,"views":15,"isPinned":16,"publishedAt":17,"category":18,"categories":23,"featuredImage":25,"bgImage":26,"posterImage":27,"relatedSolution":28,"intro":31,"sections":32,"ctaTitle":95,"ctaBody":96,"ctaButton":97,"ctaUrl":98,"relatedPosts":99},252,"نشر-plane-كاستضافة-ذاتية-على-خادم-vps-لينكس",{"fr":10,"en":11,"ar":8},"deployer-plane-vps","deploy-plane-self-hosted-on-a-linux-vps","نشر ‎Plane على ‎VPS: دليل وتراجعات ما بعد الإصدار 2.3.7","ثبّت ‎Plane AIO على خادمك الافتراضي بـ‎Docker. دليل شامل يتضمن التراجعات المعروفة في الإصدارات 2.3.7 إلى 2.4.1، وإجراء التحديث الآمن واستكشاف الأخطاء.",12,0,false,"2026-08-13T00:00:00+00:00",{"id":19,"name":20,"slug":21,"color":22,"icon":21},2,"الأتمتة","automatisation","bg-brand-action\u002F10 text-brand-action",[24],{"id":19,"name":20,"slug":21,"color":22,"icon":21},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fdeployer-plane-vps-poster.svg",{"categorySlug":29,"appSlug":30},"التعاون-والإنتاجية","plane","فاتورة ‎Linear أو ‎Jira ترتفع مع كل مقعد جديد، وتخزين تذاكر مشاريعك لدى مزود طرف ثالث ليس مقبولاً دائماً. ‎Plane بديل مرخّص بـ‎AGPL-3.0 يتجاوز 54 000 نجمة على ‎GitHub، مع صورة ‎Docker AIO مُصانة — `makeplane\u002Fplane-aio-community:stable` — وحاوية واحدة تضم جميع الخدمات الداخلية تحت ‎supervisord. يوضح هذا الدليل كيفية نشره على خادم ‎VPS لينكس، وتأمينه خلف بروكسي عكسي ‎HTTPS، وفتحه لفريقك.",[33,37,49,52,80,83,86,89,92],{"type":34,"title":35,"body":36},"h2","لماذا استضافة ‎Plane بنفسك بدلاً من الدفع مقابل كل مقعد","الاعتراض الأكثر شيوعاً على صورة ‎AIO هو أن «‎supervisord الكل في واحد» يُخفي خدمات داخلية متعددة، مما يُصعّب التشخيص عند حدوث مشكلة. في الواقع، تجمع الصورة خمسة مكونات — واجهة ‎Django API وعامل ‎Celery وقاعدة ‎PostgreSQL و‎Redis وخادم ملفات — في عملية ‎supervisord واحدة، مما يبسّط التشغيل بشكل كبير. لا تحتاج إلى تجميع حزمة متعددة الحاويات أو مزامنة عمليات ترحيل البيانات. في حالة حدوث خطأ، يكفي `docker logs \u003Ccontainer>` و`docker exec \u003Ccontainer> supervisorctl status` لمعظم الحالات. أعلن مدوّنة ‎Plane الرسمية عن أكثر من 100 000 نشر عبر ‎Docker وأكثر من 44 000 نشر على ‎Kubernetes، مما يعكس نضج الصورة التشغيلي. النموذج الاقتصادي واضح: تدفع مقابل الخادم الافتراضي، لا مقابل المقاعد.",{"type":38,"title":39,"items":40},"ul","ما تكسبه باستضافة ‎Plane على خادمك الافتراضي",[41,42,43,44,45,46,47,48],"**تكلفة ثابتة مستقلة عن حجم الفريق** — خادم افتراضي واحد يكفي لـ5 إلى 50 مستخدماً؛ السعر لا يتغير مع عدد المقاعد.","**بياناتك تحت سيطرتك** — التذاكر والتعليقات والملفات وأعضاء الفريق تبقى في قاعدة ‎PostgreSQL الخاصة بك، على قرصك الخاص.","**ترخيص ‎AGPL-3.0** — الاستخدام التجاري والاستضافة الذاتية مسموح بهما دون رسوم؛ الكود المصدري قابل للتدقيق.","**المهام والدورات والوحدات والصفحات وصندوق الوارد** — تغطي ‎Plane تتبع المهام والسبرينت والتجميعات الوظيفية والتوثيق الخفيف وإدارة الطلبات الواردة، دون وحدة منفصلة.","**صورة مستقرة ومُصانة** — `makeplane\u002Fplane-aio-community:stable` يُحدّثها الناشر وتُختبر كوحدة متماسكة قبل كل إصدار.","**تحديثات تحت سيطرتك** — أنت من يسحب الصورة الجديدة متى تشاء؛ لا يمكن لأي مزوّد تعديل بيئة الإنتاج دون موافقتك.","**تكامل مع سلسلة أدواتك** — تعرض ‎Plane واجهة ‎REST API موثّقة، يمكن استخدامها لمزامنة المهام من ‎pipeline CI أو من ‎GitHub.","**حل بسيط للحوادث** — حاوية واحدة، سجل واحد، نقطة إعادة تشغيل واحدة؛ لا حاجة لتنسيق حزمة متعددة الخدمات يدوياً.",{"type":34,"title":50,"body":51},"المتطلبات الدنيا لنشر مستقر","تجمع صورة ‎AIO عدة خدمات في حاوية واحدة: خطّط لـ**2 وحدة معالجة افتراضية و4 جيجابايت ذاكرة وصول عشوائي** كحد أدنى للاستخدام الفرقي. دون ذلك، يتشارك عامل ‎Celery و‎PostgreSQL ذاكرة غير كافية وتستغرق استعلامات الفهرسة ثوانٍ عدة. للفرق التي تتجاوز عشرة أشخاص أو الاستخدام المكثف للصفحات والدورات، انتقل إلى 8 جيجابايت. تحتاج إلى ‎Docker على الخادم (الإصدار 20 أو أحدث)، واسم نطاق أو نطاق فرعي يشير إلى خادمك الافتراضي، والمنافذ 80 و443 مفتوحة في جدار الحماية، وحوالي 10 جيجابايت مساحة قرص للأجزاء والصور. شهادة ‎TLS إلزامية: تضع ‎Plane ملفات تعريف الجلسة بخاصية `Secure`، مما يجعلها غير صالحة عبر ‎HTTP العادي.",{"type":53,"title":54,"steps":55},"steps","نشر ‎Plane AIO في ثماني خطوات",[56,59,62,65,68,71,74,77],{"title":57,"body":58},"إعداد الخادم وتثبيت ‎Docker","على خادم ‎Debian أو ‎Ubuntu حديث التثبيت، حدّث الحزم ثم ثبّت ‎Docker عبر السكريبت الرسمي:\n\n```bash\ncurl -fsSL https:\u002F\u002Fget.docker.com | sh\nsystemctl enable --now docker\n```\n\nتحقق من تشغيل ‎Docker: `docker version`.",{"title":60,"body":61},"إنشاء مجلد العمل وملف البيئة","أنشئ مجلداً مخصصاً وجهّز ملف `.env` الأدنى:\n\n```bash\nmkdir -p \u002Fopt\u002Fplane && cd \u002Fopt\u002Fplane\n```\n\nثم أنشئ `\u002Fopt\u002Fplane\u002F.env` بالمتغيرات المطلوبة:\n\n```bash\nSECRET_KEY=$(openssl rand -hex 32)\nWEB_URL=https:\u002F\u002Fplane.your-domain.com\nDATABASE_URL=postgresql:\u002F\u002Fplane:plane@127.0.0.1:5432\u002Fplane\n```\n\n`SECRET_KEY` يجب أن تكون سلسلة عشوائية طويلة؛ `WEB_URL` هو الرابط العام الكامل لنسختك — هذه القيمة الأهم. إن كانت خاطئة، ستفشل إعادة التوجيه بعد تسجيل الدخول وتحميل ملفات الأصول.",{"title":63,"body":64},"تشغيل حاوية ‎AIO","شغّل ‎Plane بالأمر التالي، مع تحديد مسار ملف `.env` وتحميل مجلد للبيانات الدائمة:\n\n```bash\ndocker run -d \\\n  --name plane \\\n  --restart unless-stopped \\\n  --env-file \u002Fopt\u002Fplane\u002F.env \\\n  -v plane-data:\u002Fapp\u002Fplane-data \\\n  -p 127.0.0.1:8080:8080 \\\n  makeplane\u002Fplane-aio-community:stable\n```\n\nالمنفذ `8080` مكشوف على الحلقة الداخلية فقط: لن يصله إلا البروكسي العكسي المحلي. عند التشغيل الأول، يُنفّذ ‎supervisord عمليات ترحيل ‎Django؛ الواجهة لن تكون متاحة لمدة دقيقة إلى دقيقتين.",{"title":66,"body":67},"التحقق من حالة الخدمات الداخلية","قبل ضبط البروكسي العكسي، تحقق من أن جميع العمليات الفرعية نشطة:\n\n```bash\ndocker exec plane supervisorctl status\n```\n\nيجب أن ترى خدمات `api` و`worker` و`beat` و`web` و`nginx` في حالة `RUNNING`. إن كانت إحداها في `FATAL`، اقرأ السجلات بـ`docker logs plane` لتحديد الخطأ.",{"title":69,"body":70},"الحصول على شهادة ‎TLS مع ‎Certbot","ثبّت ‎Certbot وإضافة ‎Nginx، ثم اطلب شهادة لنطاقك الفرعي:\n\n```bash\napt install -y certbot python3-certbot-nginx\ncertbot certonly --nginx -d plane.your-domain.com\n```\n\nسيضع ‎Certbot ملفات الشهادة في `\u002Fetc\u002Fletsencrypt\u002Flive\u002Fplane.your-domain.com\u002F`.",{"title":72,"body":73},"ضبط ‎Nginx كبروكسي عكسي ‎HTTPS","أنشئ `\u002Fetc\u002Fnginx\u002Fsites-available\u002Fplane.conf`:\n\n```bash\nserver {\n    listen 80;\n    server_name plane.your-domain.com;\n    return 301 https:\u002F\u002F$host$request_uri;\n}\n\nserver {\n    listen 443 ssl;\n    server_name plane.your-domain.com;\n    ssl_certificate \u002Fetc\u002Fletsencrypt\u002Flive\u002Fplane.your-domain.com\u002Ffullchain.pem;\n    ssl_certificate_key \u002Fetc\u002Fletsencrypt\u002Flive\u002Fplane.your-domain.com\u002Fprivkey.pem;\n\n    location \u002F {\n        proxy_pass http:\u002F\u002F127.0.0.1:8080;\n        proxy_set_header Host $host;\n        proxy_set_header X-Real-IP $remote_addr;\n        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n        proxy_set_header X-Forwarded-Proto $scheme;\n    }\n}\n```\n\nفعّل الموقع وأعد تحميل ‎Nginx:\n\n```bash\nln -s \u002Fetc\u002Fnginx\u002Fsites-available\u002Fplane.conf \u002Fetc\u002Fnginx\u002Fsites-enabled\u002F\nnginx -t && systemctl reload nginx\n```",{"title":75,"body":76},"إنشاء أول حساب مدير","افتح `https:\u002F\u002Fplane.your-domain.com` في متصفح. تعرض ‎Plane صفحة تسجيل عند أول وصول. أنشئ حساب مدير، ثم من لوحة الإدارة — المتاحة على `\u002Fgod-mode\u002F` — فعّل التسجيل بالبريد الإلكتروني أو اضبط قائمة نطاقات مسموحة للحد من الوصول إلى مؤسستك.",{"title":78,"body":79},"دعوة الفريق وإنشاء أول مشروع","في ‎Plane، يجمع المشروع المهام والدورات (سبرينت) والوحدات (ميزات) والصفحات (ويكي خفيف). أنشئ مشروعاً من الواجهة، ثم ادعُ المتعاونين بالبريد الإلكتروني من إعدادات المشروع. تُرسَل الدعوات عبر خادم البريد المضبوط في `.env` عبر `EMAIL_HOST` و`EMAIL_PORT`.",{"type":34,"title":81,"body":82},"الضبط بعد التثبيت: متغيرات البيئة الأساسية","أهم المتغيرات بعد التشغيل الأولي:\n\n— `WEB_URL` — الرابط العام الكامل للنسخة، بدون شرطة مائلة في النهاية. رابط خاطئ يتسبب في إعادة توجيه معطوبة بعد تسجيل الدخول وملفات أصول لا تُحمَّل. هذا هو الخطأ الأكثر شيوعاً عند التشغيل الأول.\n\n— `SECRET_KEY` — سلسلة سرية لتوقيع جلسات ‎Django. لا تغيّرها بعد التشغيل الأول دون إبطال جميع الجلسات النشطة.\n\n— `EMAIL_HOST` و`EMAIL_PORT` و`EMAIL_HOST_USER` و`EMAIL_HOST_PASSWORD` — ضرورية للدعوات والإشعارات. بدون هذه المتغيرات لن تُرسَل دعوات البريد الإلكتروني.\n\n— `ENABLE_SIGNUP` — `1` للسماح بالتسجيل المفتوح، `0` لتعطيله (المدير فقط يمكنه إنشاء الحسابات).\n\nبعد أي تعديل على ملف `.env`، أعد تشغيل الحاوية: `docker restart plane`.",{"type":84,"body":85},"tip","للتحديث، اسحب الصورة الجديدة ثم أعد إنشاء الحاوية مع الاحتفاظ بمجلد البيانات:\n\n```bash\ndocker pull makeplane\u002Fplane-aio-community:stable\ndocker stop plane && docker rm plane\n```\n\nثم أعد تشغيل أمر `docker run` من الخطوة 3 بنفس المعاملات. تُطبَّق عمليات ترحيل قاعدة البيانات تلقائيًا عند التشغيل. إن كسّر التحديث البيئة، ارجع إلى الإصدار السابق باستبدال `stable` بالتاغ الدقيق للصورة السابقة — `docker images` يسرد الصور المتاحة محلياً.",{"type":34,"title":87,"body":88},"التراجعات في الإصدارات بعد 2.3.7 وإجراء التحديث الآمن","أدخلت إصدارات ‎Plane AIO من 2.3.7 إلى 2.4.1 عدة تراجعات موثّقة. فقدان الإشعارات في الوقت الفعلي عند ترقية خادم ‎Python بين هذه الإصدارات. خطأ 500 على ‎webhooks الصادرة إذا كان العمود `webhook_trigger` غائبًا في ترحيل ‎PostgreSQL — الأعراض: `django.db.utils.ProgrammingError: column webhook_trigger does not exist` في سجلات حاوية `plane-backend`. تباطؤ استعلامات التصفية على مساحات العمل التي تتجاوز 5 000 مهمة (تراجع فهرس تم إصلاحه في الإصدار 2.4.2).\n\nقبل أي تحديث من إصدار أقدم من 2.4.2، احتفظ بنسخة احتياطية من قاعدة ‎PostgreSQL: `docker compose exec -T db pg_dump -U plane plane > plane-backup-$(date +%F).sql`. ثم قم بالتحديث: `docker compose pull && docker compose up -d`. إذا لم يبدأ الـ ‎backend بعد التحديث، أجبر عمليات ‎migration يدويًا: `docker compose exec plane-backend python manage.py migrate --run-syncdb`. للنسخ على الإصدار 2.3.6 أو أقدم، يُنصح بالتحديث المباشر إلى ‎2.4.2+ لتخطّي الإصدارات الوسيطة المعطوبة.",{"type":34,"title":90,"body":91},"استكشاف الأخطاء: مشكلات شائعة وحلولها","**إعادة توجيه معطوبة أو ملفات أصول لا تُحمَّل بعد تسجيل الدخول.** أعراض نموذجية: الواجهة تعيد التوجيه إلى `http:\u002F\u002Flocalhost` أو تفشل الصور والسكريبتات في التحميل. السبب: `WEB_URL` في `.env` لا يطابق الرابط العام الفعلي. صحّح القيمة وأعد تشغيل الحاوية.\n\n**فشل تشغيل خدمة داخلية.** رسالة نموذجية في `docker logs plane`: `FATAL: api: exited too quickly`. تحقق من `DATABASE_URL` — رابط اتصال خاطئ أو اسم قاعدة بيانات غير موجود يمنع تنفيذ عمليات الترحيل ويسبب هذا النوع من الخروج الخاطئ.\n\n**لوحة `\u002Fgod-mode\u002F` غير متاحة.** الوصول إلى واجهة الإدارة يتطلب إنشاء الحساب الأول عبر الواجهة الرئيسية أولاً، ثم تسجيل الدخول ببيانات اعتماده. إن عطّلت التسجيل قبل إنشاء الحساب الأول، أعد مؤقتاً `ENABLE_SIGNUP=1`، أنشئ الحساب، ثم أعده إلى `0`.\n\n**رسائل الدعوة لا تُرسَل.** تحقق من أن `EMAIL_HOST` و`EMAIL_HOST_USER` مضبوطان في `.env` وأن منفذ ‎SMTP (غالباً `587` مع ‎STARTTLS أو `465` مع ‎SSL) يمكن الوصول إليه من خادمك. اختبر بـ`docker exec plane python manage.py sendtestemail your@email.com`.\n\n**أداء متدهور مع مستخدمين متزامنين كثيرين.** إن عجزت عمال ‎Celery عن معالجة المهام، زِد ذاكرة ‎VPS قبل ضبط التزامن الداخلي. صورة ‎AIO مُهيَّأة للاستخدام الفرقي المعياري؛ الحمل الثقيل جداً يستلزم التحوّل إلى تثبيت متعدد الحاويات بموارد مخصصة لكل مكوّن.",{"type":34,"title":93,"body":94},"الإبقاء على السيطرة دون صيانة طبقة نظام التشغيل","استضافة ‎Plane بنفسك تُثبت أن الاعتماد على اشتراكات ‎SaaS ليس أمراً لا مفر منه: صورة مستقرة وخادم افتراضي بالحجم المناسب وبروكسي عكسي ‎TLS تكفي لفريق من الحجم المهني. تقدم ‎ServOrbit خوادم ‎VPS بصلاحية ‎root وعنوان ‎IPv4 مخصص، جاهزة في دقائق، بصلاحية ‎root كاملة لتثبيت ‎Docker وإدارة أدواتك الخاصة. إن كنت تريد تفويض طبقة النظام — تحديثات النواة وتقوية ‎SSH والنسخ الاحتياطية — يتيح لك خيار إدارة ‎VPS الإبقاء على السيطرة على بياناتك مع الاستعانة بطرف لصيانة الخادم. لمزيد من التوسع في ممارستك ‎DevOps، راجع دليل أتمتة خوادمك باستخدام ‎Ansible ودليل ‎Docker Compose للإنتاج.","نشر Plane من Marketplace ServOrbit","يقدم ServOrbit Plane مُهيَّأً مسبقًا على VPS: يُثبَّت PostgreSQL 16 وRedis 7 وRabbitMQ وMinIO تلقائيًا. النطاق مطلوب ومُدرَج في الوصفة — الوصول الأول في دقائق، والبيانات تحت سيطرتك.","نشر Plane","\u002Fmarketplace\u002Fالتعاون-والإنتاجية\u002Fplane",[100,115,132,146],{"id":101,"slug":102,"slugs":103,"title":106,"excerpt":107,"readTime":108,"views":109,"isPinned":16,"publishedAt":110,"category":111,"categories":112,"featuredImage":25,"bgImage":26,"posterImage":114,"relatedSolution":25},221,"huly-استبدل-linear-وnotion-وslack-على-خادمك-الافتراضي",{"fr":104,"en":105,"ar":102},"huly-gestion-projet-self-hosted-vps","huly-replace-linear-notion-and-slack-on-your-vps","Huly‫: استبدل Linear وNotion وSlack على خادمك الافتراضي","انشر ‫Huly على خادمك الافتراضي لتوحيد المهام والوثائق والدردشة في أداة واحدة مفتوحة المصدر، دون اشتراك لكل مستخدم.",3,1,"2026-08-04T00:00:00+00:00",{"id":19,"name":20,"slug":21,"color":22,"icon":21},[113],{"id":19,"name":20,"slug":21,"color":22,"icon":21},"\u002Fblog\u002Fcovers\u002Fhuly-gestion-projet-self-hosted-vps-poster.svg",{"id":116,"slug":117,"slugs":118,"title":121,"excerpt":122,"readTime":123,"views":15,"isPinned":16,"publishedAt":124,"category":125,"categories":129,"featuredImage":25,"bgImage":26,"posterImage":131,"relatedSolution":25},229,"docker-compose-في-الإنتاج-قائمة-التحقق-من-10-نقاط",{"fr":119,"en":120,"ar":117},"docker-compose-production-checklist","docker-compose-in-production-10-point-checklist","Docker Compose في الإنتاج: قائمة التحقق من 10 نقاط","‎10 إعدادات Docker Compose يجب التحقق منها قبل أي نشر إنتاجي: إعادة التشغيل والفحوص الصحية والحدود والأسرار والسجلات.",14,"2026-08-06T00:00:00+00:00",{"id":108,"name":126,"slug":127,"color":128,"icon":127},"النشر","deploiement","bg-success\u002F10 text-success",[130],{"id":108,"name":126,"slug":127,"color":128,"icon":127},"\u002Fblog\u002Fcovers\u002Fdocker-compose-production-checklist-poster.svg",{"id":133,"slug":134,"slugs":135,"title":138,"excerpt":139,"readTime":140,"views":109,"isPinned":16,"publishedAt":141,"category":142,"categories":143,"featuredImage":25,"bgImage":26,"posterImage":145,"relatedSolution":25},236,"أتمتة-إدارة-خوادم-vps-باستخدام-ansible",{"fr":136,"en":137,"ar":134},"ansible-automatiser-serveurs-vps","automating-vps-server-management-with-ansible","أتمتة إدارة خوادم VPS باستخدام Ansible","تعرّف على كيفية أتمتة إدارة أسطول خوادم VPS باستخدام ‎Ansible‎: الجرد والـ playbooks والأدوار والـ Vault لبنية تحتية قابلة للتكرار.",11,"2026-08-08T00:00:00+00:00",{"id":19,"name":20,"slug":21,"color":22,"icon":21},[144],{"id":19,"name":20,"slug":21,"color":22,"icon":21},"\u002Fblog\u002Fcovers\u002Fansible-automatiser-serveurs-vps-poster.svg",{"id":147,"slug":148,"slugs":149,"title":152,"excerpt":153,"readTime":154,"views":109,"isPinned":16,"publishedAt":155,"category":156,"categories":157,"featuredImage":25,"bgImage":26,"posterImage":159,"relatedSolution":160},270,"هجرة-jira-data-center-إلى-openproject-أو-plane-على-vps",{"fr":150,"en":151,"ar":148},"migrer-jira-openproject-plane-vps-2026","migrating-from-jira-data-center-to-openproject-or-plane-on-vps","هجرة ‎Jira Data Center إلى ‎OpenProject أو ‎Plane على ‎VPS","توقّف ‎Jira Data Center عن بيع تراخيص جديدة منذ مارس 2026 وسيصبح قراءة فقط في 28 مارس 2029. انتقل إلى ‎OpenProject أو ‎Plane على ‎VPS خاص بك في يوم عمل واحد.",13,"2026-08-16T00:00:00+00:00",{"id":108,"name":126,"slug":127,"color":128,"icon":127},[158],{"id":108,"name":126,"slug":127,"color":128,"icon":127},"\u002Fblog\u002Fcovers\u002Fmigrer-jira-openproject-plane-vps-2026-poster.svg",{"categorySlug":29,"appSlug":30},1787580957696]