[{"data":1,"prerenderedAt":210},["ShallowReactive",2],{"seo-verification":3,"blog-نشر-plane-كاستضافة-ذاتية-على-خادم-vps-لينكس-ma-ar":6,"promo-bar-likely":209},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"key":7,"data":8},"blog-نشر-plane-كاستضافة-ذاتية-على-خادم-vps-لينكس-ma-ar",{"id":9,"slug":10,"slugs":11,"title":15,"excerpt":16,"readTime":17,"views":18,"isPinned":19,"noindex":19,"publishedAt":20,"updatedAt":21,"category":22,"categories":27,"featuredImage":29,"bgImage":30,"posterImage":31,"relatedSolution":32,"intro":35,"sections":36,"ctaTitle":137,"ctaBody":138,"ctaButton":139,"ctaUrl":140,"relatedPosts":141},252,"نشر-plane-كاستضافة-ذاتية-على-خادم-vps-لينكس",{"fr":12,"en":13,"ar":10,"es":14},"deployer-plane-vps","deploy-plane-self-hosted-on-a-linux-vps","desplegar-plane-en-un-vps-linux","نشر ‎Plane على ‎VPS: دليل وتراجعات ما بعد الإصدار 2.3.7","ثبّت ‎Plane AIO على خادمك الافتراضي بـ‎Docker. دليل شامل يتضمن التراجعات المعروفة في الإصدارات 2.3.7 إلى 2.4.1، وإجراء التحديث الآمن واستكشاف الأخطاء.",13,1,false,"2026-08-13T00:00:00+00:00","2026-11-04T16:30:26+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":25},2,"الأتمتة","automatisation","bg-brand-action\u002F10 text-brand-action",[28],{"id":23,"name":24,"slug":25,"color":26,"icon":25},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fdeployer-plane-vps-poster.svg",{"categorySlug":33,"appSlug":34},"التعاون-والإنتاجية","plane","تزداد فاتورة ‎Linear أو ‎Jira مع كل مقعد جديد، ولا يكون تسليم تذاكر مشاريعك إلى مزوّد خارجي مقبولاً دائماً. ‎Plane بديل مرخّص بـ‎AGPL-3.0، يُوزَّع بنسخة ‎Community قابلة للاستضافة الذاتية مع مثبّت رسمي يعتمد ‎Docker ‎Compose. يوضح هذا الدليل كيف تنشره على خادم ‎VPS لينكس، وتضعه خلف بروكسي عكسي ‎HTTPS، وتفهم ما تتطلبه صورة ‎AIO فعلاً، وتشخّص الأعطال التي تتكرر في التذاكر العلنية: صورة ‎MinIO غير موجودة، وحلقة إعادة توجيه في صفحة الملف الشخصي، ومشكلات بعد ترقية الإصدار.",[37,41,53,56,84,87,90,93,96,128,131,134],{"type":38,"title":39,"body":40},"h2","لماذا تستضيف ‎Plane بنفسك بدلاً من الدفع عن كل مقعد","تجمع أداة تتبّع التذاكر أكثر ما يقوله الفريق: القرارات والمرفقات وأسماء العملاء والمواعيد. استضافتها على خادمك الافتراضي تنقل التكلفة من عدد المقاعد إلى سعة الخادم: تدفع مقابل الموارد لا مقابل المستخدمين. يتجاوز ‎Plane 61 000 نجمة على ‎GitHub، ويُنشر كوده بترخيص ‎AGPL-3.0، ويعلن ناشره في مدوّنته أكثر من 100 000 عملية نشر عبر ‎Docker وأكثر من 44 000 عبر ‎Kubernetes، وهو ما يعطي فكرة عن حجم القاعدة المثبّتة وعن كمية التجارب العلنية المتاحة.\n\nهناك مقابل يجدر معرفته قبل البدء. تضم حزمة ‎Community عدة خدمات: واجهة الويب، وواجهة ‎API، وعمّال المعالجة، وخادم الوقت الفعلي، وقاعدة ‎PostgreSQL، وذاكرة ‎Valkey المؤقتة، وطابور رسائل ‎RabbitMQ، وتخزين كائنات متوافق مع ‎S3، وبروكسي عكسي. ينسّقها المثبّت الرسمي عبر ‎Docker ‎Compose، لكنك أنت المسؤول عن النسخ الاحتياطي والترقيات وحالة تخزين الكائنات. تفصّل الأقسام التالية كل نقطة، مع التمييز بين ما أكّده المشرفون وما أبلغ عنه المستخدمون فقط.",{"type":42,"title":43,"items":44},"ul","ما تكسبه باستضافة ‎Plane على خادمك الافتراضي",[45,46,47,48,49,50,51,52],"**تكلفة مرتبطة بالجهاز لا بالمقاعد** — لا يتغيّر سعر الخادم مع عدد الحسابات؛ ما يحدّ الفريق هو الذاكرة والقرص.","**بيانات تحت سيطرتك** — تبقى التذاكر والتعليقات والملفات والأعضاء في قاعدة ‎PostgreSQL وتخزين الكائنات لديك، على قرصك.","**ترخيص ‎AGPL-3.0** — يمكن تدقيق الكود؛ ويُلزمك الترخيص بنشر تعديلاتك إن أتحت للمستخدمين نسخة معدّلة.","**المهام والدورات والوحدات والصفحات وصندوق الوارد** — تتبّع المهام والسباقات والتجميعات الوظيفية والتوثيق الخفيف والطلبات الواردة دون وحدة منفصلة.","**مثبّت رسمي** — يجلب السكربت `setup.sh` ملفّي `docker-compose.yaml` و`plane.env` المنشورين مع الإصدار، ثم يتولى التشغيل والإيقاف والترقية والنسخ الاحتياطي.","**ترقيات بإيقاعك** — تختار لحظة ترقية الإصدار بعد نسخة احتياطية، ويؤرشف السكربت ملف ‎Compose القديم قبل استبداله.","**تخزين يمكن إخراجه من الخادم** — يمكن أن تعيش قاعدة ‎PostgreSQL وتخزين ‎S3 خارج الخادم؛ وتوصي به وثائق ‎Plane للإنتاج.","**واجهة ‎REST موثّقة** — مفيدة لمزامنة المهام من خط ‎CI أو من ‎GitHub.",{"type":38,"title":54,"body":55},"متطلبات مقدّرة لنشر مستقر","تذكر وثائق ‎Plane نواتين و4 غيغابايت من الذاكرة كحد أدنى، مع توصية بـ8 غيغابايت في الإنتاج. احسب 2 ‎vCPU و8 غيغابايت من الذاكرة إذا تجاوز الفريق عشرة أشخاص أو أكثر من استخدام الصفحات والدورات: تتشارك ‎PostgreSQL و‎RabbitMQ والعمّال وواجهة ‎API الجهاز نفسه. خصّص 20 غيغابايت من القرص أو أكثر: الصور وقاعدة البيانات خفيفة في البداية، والملفات المرفوعة هي التي تُكبّر وحدة التخزين `uploads`.\n\nتحتاج إلى ‎Docker حديث مع إضافة ‎Compose (يستدعي السكربت `docker compose`)، واسم نطاق أو نطاقاً فرعياً يشير سجلّ ‎A فيه إلى الخادم، والمنفذين 80 و443 مفتوحين. شهادة ‎TLS لا غنى عنها في الإنتاج: بدون ‎HTTPS تنتقل كلمات المرور والجلسات بنص صريح.",{"type":57,"title":58,"steps":59},"steps","نشر ‎Plane ‎Community في ثماني خطوات",[60,63,66,69,72,75,78,81],{"title":61,"body":62},"تجهيز المضيف وتثبيت ‎Docker","على خادم ‎Debian أو ‎Ubuntu محدَّث، ثبّت ‎Docker بالسكربت الرسمي: `curl -fsSL https:\u002F\u002Fget.docker.com | sh`. فعّل الخدمة بـ`systemctl enable --now docker` ثم تحقق من `docker version` و`docker compose version`. افتح المنفذين 80 و443 في الجدار الناري وقصر المنفذ 22 على عناوينك.",{"title":64,"body":65},"تنزيل المثبّت الرسمي","أنشئ مجلداً مخصصاً بـ`mkdir -p \u002Fopt\u002Fplane-selfhost && cd \u002Fopt\u002Fplane-selfhost` ثم نزّل سكربت أحدث إصدار: `curl -fsSL -o setup.sh https:\u002F\u002Fgithub.com\u002Fmakeplane\u002Fplane\u002Freleases\u002Flatest\u002Fdownload\u002Fsetup.sh` و`chmod +x setup.sh`. يعمل السكربت في المجلد الحالي: ينشئ فيه المجلد الفرعي `plane-app`.",{"title":67,"body":68},"تشغيل التثبيت","نفّذ `.\u002Fsetup.sh` بصفة ‎root أو بمستخدم من مجموعة ‎docker ثم اختر الخيار 1 (‎Install). ينزّل السكربت `docker-compose.yaml` و`plane.env` إلى `plane-app\u002F` ويولّد في الإصدارات الحديثة بيانات اعتماد لتخزين الكائنات المضمَّن. اخرج من القائمة بالخيار 8 قبل الإعداد: تطلب الوثائق إيقاف الحزمة قبل تعديل `plane.env`.",{"title":70,"body":71},"ملء ‎plane.env","افتح `plane-app\u002Fplane.env` وحدّد على الأقل `APP_DOMAIN=plane.your-domain.com` و`WEB_URL=https:\u002F\u002Fplane.your-domain.com` و`CORS_ALLOWED_ORIGINS=https:\u002F\u002Fplane.your-domain.com`. لكي يحتفظ ‎Nginx بالمنفذين 80 و443 أضف `LISTEN_HTTP_PORT=8080`. تأكد أن `SECRET_KEY` و`LIVE_SERVER_SECRET_KEY` تحملان قيمتين فريدتين لا مثالين: يولّد `openssl rand -hex 32` واحدة.",{"title":73,"body":74},"تشغيل الحزمة وفحص الحاويات","أعد تشغيل `.\u002Fsetup.sh` واختر الخيار 2 (‎Start). ينزّل التشغيل الأول الصور، ثم تُعدّ الحاوية `migrator` القاعدة وتتوقف. افحص الحالة بـ`docker compose -f plane-app\u002Fdocker-compose.yaml --env-file plane-app\u002Fplane.env ps`: يجب أن تكون بقية الحاويات قيد التشغيل. يعرض الخيار 6 في القائمة السجلات.",{"title":76,"body":77},"الحصول على شهادة ‎TLS عبر ‎Certbot","ثبّت ‎Nginx و‎Certbot بـ`apt install -y nginx certbot python3-certbot-nginx` ثم اطلب الشهادة: `certbot certonly --nginx -d plane.your-domain.com`. توضع الملفات في `\u002Fetc\u002Fletsencrypt\u002Flive\u002Fplane.your-domain.com\u002F`. يجب أن يشير اسم النطاق إلى الخادم مسبقاً.",{"title":79,"body":80},"إعداد ‎Nginx كبروكسي عكسي ‎HTTPS","أنشئ موقع ‎Nginx يستمع على المنفذ 443 بالشهادة التي حصلت عليها ويمرّر كل شيء إلى `http:\u002F\u002F127.0.0.1:8080`. أضف الترويسات `Host` و`X-Real-IP` و`X-Forwarded-For` و`X-Forwarded-Proto`، وكذلك `Upgrade` و`Connection` لاتصالات ‎WebSocket الخاصة بخادم الوقت الفعلي. تعيد كتلة `server` ثانية توجيه المنفذ 80 إلى ‎HTTPS بـ`return 301 https:\u002F\u002F$host$request_uri;`. فعّل الموقع ثم نفّذ `nginx -t && systemctl reload nginx`. ينشر ‎Docker المنفذ 8080 دون المرور بـ‎UFW: أغلقه من الخارج عبر جدار مزوّدك الناري.",{"title":82,"body":83},"إنشاء مدير النسخة والفريق","افتح `https:\u002F\u002Fplane.your-domain.com\u002Fgod-mode\u002F` لإنشاء حساب مدير النسخة. أبقِ الشرطة المائلة الأخيرة: يذكر مستخدم أن عنواناً بدونها بقي معلّقاً، وهي نقطة لم يؤكدها المشرفون. ثم افتح التطبيق وأنشئ مساحة العمل والمشروع الأول وادعُ زملاءك.",{"type":38,"title":85,"body":86},"الإعداد بعد التثبيت: المتغيرات التي تهمّ","`WEB_URL` و`CORS_ALLOWED_ORIGINS`: تطلب الوثائق ضبطهما على العنوان الذي يستخدمه المتصفح فعلاً. هذا أول ما يُفحص عند سلوك غريب بعد تسجيل الدخول.\n\n`LISTEN_HTTP_PORT` و`LISTEN_HTTPS_PORT`: المنفذان اللذان ينشرهما البروكسي المضمَّن، 80 و443 افتراضياً. غيّرهما إن كان ‎Nginx يشغل المنفذين القياسيين.\n\n`TRUSTED_PROXIES` و`NUM_PROXIES`: يحددان عنوان ‎IP للعميل كما تراه واجهة ‎API، وبالتالي تحديد معدل الطلبات. خلف بروكسيك العكسي الخاص يطلب ‎README المثبّت رفع `NUM_PROXIES` بواحد لكل قفزة إضافية؛ وإذا تُرك فارغاً يُطبَّق السلوك الافتراضي.\n\n`UNSPLASH_ACCESS_KEY`: اختياري، يغذّي منتقي صور الغلاف. اتركه فارغاً إن كنت لا تستخدم ‎Unsplash؛ وهو أول إعداد يُعاد فحصه عند حلقة إعادة التوجيه الموصوفة أدناه.\n\n`APP_RELEASE`: الإصدار المتَّبع، `stable` في البداية. يحوّله السكربت إلى رقم إصدار عند التثبيت وفي كل ترقية.\n\nأوقف الحزمة بالخيار 3 قبل تعديل `plane.env` ثم أعد التشغيل بالخيار 4.",{"type":88,"body":89},"tip","قبل أي ترقية، خذ نسخة احتياطية: الخيار 7 في السكربت، إضافة إلى تفريغ ‎PostgreSQL بـ`docker compose -f plane-app\u002Fdocker-compose.yaml --env-file plane-app\u002Fplane.env exec -T plane-db pg_dump -U plane plane > plane-backup-$(date +%F).sql`. ثم نفّذ الخيار 5 (‎Upgrade): يقارن السكربت الإصدار المثبّت بالأحدث، ويطلب التأكيد، ويؤرشف `docker-compose.yaml` القديم في `plane-app\u002Farchive\u002F` ويحتفظ بنسخة `plane.env.bak`. أعد قراءة `plane.env` بعد ذلك لاكتشاف المتغيرات الجديدة. لا ترقِّ أبداً بـ`docker compose down -v`: الخيار `-v` يحذف وحدة التخزين `uploads` أي مرفقاتك. تصلح ملاحظات الإصدار ‎v1.4.3 المنشور في أكتوبر 2026 عدة ثغرات في التحكم بالوصول وتطلب من النسخ المستضافة ذاتياً أن تُرقّى.",{"type":38,"title":91,"body":92},"تخزين الكائنات: صورة ‎MinIO المفقودة وإصلاح الإصدار 1.4.3","العَرَض. عند تثبيت جديد أو ترقية يفشل تنزيل الصور في خدمة التخزين برسالة `pull access denied for minio\u002Fminio, repository does not exist or may require 'docker login'`. يرد السجلّ بـ401 بدل 404 على العميل المجهول، فتبدو الرسالة كمشكلة اعتماد: لن يغيّر أي `docker login` شيئاً.\n\nمؤكَّد من فريق ‎Plane. اختفت منظمة `minio` من ‎Docker ‎Hub. تلاحظ ذلك طلب الدمج #9829 المدموج في سبتمبر 2026 وتحوّل الصور إلى ‎quay.io. ثم تحدد ملاحظات الإصدار ‎v1.4.3 أن تخزين الكائنات المضمَّن يستخدم الصورة `pgsty\u002Fsilo` مثبّتة على وسم إصدار بدل `latest`. وذكر مساهم في المستودع أيضاً في التذكرة #9834 المفتوحة في سبتمبر 2026 أن الإصدار حُدِّث بصورة أخرى.\n\nمُبلَّغ عنه من المستخدمين فقط. نجح الحل المؤقت بـ`quay.io\u002Fminio\u002Fminio` عند بعضهم، ثم أبلغ عدة مشاركين عن أخطاء 401 في ذلك السجلّ ابتداءً من 24 سبتمبر 2026. هذه التقارير سابقة لإصلاح الإصدار؛ لا تطبّقها على تثبيت حديث.\n\nما العمل. في تثبيت جديد استعمل سكربت أحدث إصدار ثم تحقق بـ`grep -n 'image:' plane-app\u002Fdocker-compose.yaml` أنه لا يوجد سطر يذكر `minio\u002Fminio`. في تثبيت قائم ما زال يذكرها، خذ نسخة احتياطية ثم نفّذ الخيار 5 في السكربت. للإنتاج، يوصي طلب الدمج #9829 نفسه بتفضيل تخزين ‎S3 خارجي على ‎MinIO المضمَّن الذي فرعه المجتمعي مجمَّد في المصدر بحسب كاتبه: هذا توجّه من فريق ‎Plane لا ضمانة.",{"type":38,"title":94,"body":95},"بعد ترقية الإصدار: ما تثبته التذكرة 8708 وما لا تثبته","في مارس 2026 فتح مستخدم التذكرة #8708 ليصف تثبيتاً صعباً. بعد الانتقال من الإصدار 2.3.3 إلى 2.3.7 تعطلت صلاحيات الملفات المرفوعة؛ وفُسِّر بشكل خاطئ حجم معرَّف بعلامات اقتباس مفردة في ملف من صورة ‎AIO؛ وقاد الزر الأول المعروض على المدير إلى `\u002Fgod-mode` بدون الشرطة المائلة الأخيرة، وهي صفحة بقيت معلّقة.\n\nما أكده المشرفون يكفيه سطر واحد: الإصدار 2.3.7 ليس إصداراً رسمياً، وقد أُنتج لعميل بعينه، والإصدار 2.4.0 يحل المشكلة. لم يؤكدوا أياً من الشذوذات الثلاثة. ردّ الكاتب بأن عيب علامات الاقتباس مستمر في ‎Dockerfile، وأُغلقت التذكرة دون إصلاح مرتبط.\n\nاحتفظ بثلاث قواعد. ثبّت فقط إصدارات منشورة في صفحة ‎Releases بالمستودع، وأحدثها ‎v1.4.3؛ ولا تسحب إصداراً وسيطاً. خذ نسخة احتياطية قبل كل ترقية إصدار. بعد الترقية افتح مرفقاً قديماً وآخر حديثاً: إن فشل الفتح فافحص صلاحيات وحدة ‎uploads بـ`docker volume inspect` قبل تغيير أي شيء، مع إبقاء النسخة الاحتياطية في المتناول.",{"type":97,"title":98,"headers":99,"rows":103},"comparison","مثبّت ‎Compose أم صورة ‎AIO: ما يتطلبه كل منهما",[100,101,102],"المعيار","مثبّت ‎Compose (‎Community)","صورة ‎AIO ‎Community",[104,108,112,116,120,124],[105,106,107],"الخدمات المضمَّنة","‎PostgreSQL و‎Valkey و‎RabbitMQ وتخزين الكائنات والبروكسي داخل حزمة ‎Compose","التطبيقات وواجهة ‎API والعمّال وبروكسي ‎Caddy في حاوية واحدة",[109,110,111],"الخدمات الخارجية","لا شيء إلزامي؛ موصى بها في الإنتاج","‎PostgreSQL و‎Redis و‎RabbitMQ وتخزين ‎S3 عليك توفيرها",[113,114,115],"نقطة الدخول","`.\u002Fsetup.sh` وملف `plane.env`","`docker run` مع `DOMAIN_NAME` و`DATABASE_URL` و`REDIS_URL` و`AMQP_URL` ومتغيرات ‎S3",[117,118,119],"الأسرار","قيم تُفحص في `plane.env`","`SECRET_KEY` و`LIVE_SERVER_SECRET_KEY` إلزاميتان: تتوقف الحاوية إن كانتا فارغتين",[121,122,123],"الترقية","الخيار 5 في السكربت مع أرشفة ملف ‎Compose القديم","سحب الصورة الجديدة وإعادة إنشاء الحاوية",[125,126,127],"الاستخدام الموصوف","خادم واحد مع تخزين خارجي منصوح به في الإنتاج","نشر بسيط واختبارات بحسب ‎README الخاص بها",{"type":38,"title":129,"body":130},"استكشاف الأخطاء: حلقة إعادة التوجيه بين \u002F‎profile\u002F و\u002F?‎next_path=\u002F‎profile\u002F","العَرَض (التذكرة #6694 المفتوحة في مارس 2025 وما زالت مفتوحة في 24 أكتوبر 2026). خلف اسم نطاق، يعيد فتح `https:\u002F\u002Fyour-domain.com\u002Fprofile\u002F` التوجيه إلى `https:\u002F\u002Fyour-domain.com\u002F?next_path=\u002Fprofile\u002F` ثم تدور الصفحة في حلقة. في سجلّ واجهة ‎API لدى الكاتب تردّ شبه كل الطلبات بـ200 عدا واحد يعود في كل دورة: `GET \u002Fapi\u002Funsplash\u002F?query= HTTP\u002F1.1\" 401` يتبعه `Unauthorized: \u002Fapi\u002Funsplash\u002F`.\n\nالمثبَت. كان الكاتب يستخدم ‎Docker ‎Compose مع ‎Nginx خارجي أمام ‎Plane. سأل المشرفون عن نمط النشر ثم عن وجود بروكسي عكسي، وردّوا في مارس 2025 بأنهم يحققون. لم ينشروا أي سبب.\n\nالمُبلَّغ عنه. في يوليو 2026 وجد مشارك العَرَض نفسه: كان قد أدخل المفتاح السري لـ‎Unsplash بدل مفتاح الوصول في `UNSPLASH_ACCESS_KEY`. يطرح طلب دمج #10108 اقترحه مساهم خارجي، وما زال مفتوحاً في 31 أكتوبر 2026، التفسير التالي: تعيد واجهة ‎API استجابة 401 من ‎Unsplash كما هي، ويعامل تطبيق الويب أي 401 كجلسة منتهية، ومن هنا إعادة التوجيه؛ ويقترح الرد بـ502 بدلاً منها. هذه فرضية مساهم يسندها شاهد واحد، لا استنتاج من المشرفين، ولا تغطي بالضرورة كل حلقات إعادة التوجيه.\n\nما العمل، بالترتيب. أولاً ابحث عن السطر في السجلّ: `docker compose -f plane-app\u002Fdocker-compose.yaml --env-file plane-app\u002Fplane.env logs api | grep unsplash`. إن لم يظهر فحلقتك لها سبب آخر: أعد فحص `WEB_URL` و`CORS_ALLOWED_ORIGINS`. وإن ظهر مع 401 فأعد فحص `UNSPLASH_ACCESS_KEY` في `plane.env` وفي قسم ‎Images من لوحة `\u002Fgod-mode\u002F`: المطلوب مفتاح الوصول (‎Access ‎Key) لا المفتاح السري. وإن كنت لا تستخدم ‎Unsplash فأفرغ القيمة وأعد تشغيل الحزمة؛ بحسب طلب الدمج يعيد غياب المفتاح قائمة فارغة دون خطأ.",{"type":38,"title":132,"body":133},"استكشاف الأخطاء: أخطاء متكررة أخرى وعلاجها","**إعادة توجيه إلى `http:\u002F\u002Flocalhost` أو موارد لا تُحمَّل.** لا يطابق `WEB_URL` و`CORS_ALLOWED_ORIGINS` العنوان العام. صحّحهما ثم أوقف الحزمة وأعد تشغيلها.\n\n**`pull access denied for minio\u002Fminio`.** راجع قسم تخزين الكائنات: انتقل إلى إصدار حديث بالخيار 5 في السكربت.\n\n**502 ‎Bad ‎Gateway من ‎Nginx.** لا يستمع البروكسي المضمَّن على المنفذ المستهدف. قارن `LISTEN_HTTP_PORT` في `plane.env` بهدف `proxy_pass` ثم جرّب `curl -I http:\u002F\u002F127.0.0.1:8080` من الخادم. إن تأخر الرد فإن `docker compose -f plane-app\u002Fdocker-compose.yaml --env-file plane-app\u002Fplane.env ps` يبيّن أي حاوية تعيد التشغيل في حلقة.\n\n**رسائل الدعوة لا تُرسَل.** أدخل خادم ‎SMTP في إعدادات البريد للنسخة من `\u002Fgod-mode\u002F` ثم أرسل دعوة تجريبية. وتحقق أيضاً أن المستضيف لا يحجب منفذ ‎SMTP الصادر.\n\n**بطء مع مستخدمين كثر.** راقب `docker stats`: إن كانت الذاكرة مشبعة فزد الذاكرة قبل أي ضبط آخر، ثم فكّر في إخراج ‎PostgreSQL وتخزين الكائنات من الخادم.",{"type":38,"title":135,"body":136},"حافظ على سيطرتك على بنيتك التحتية دون صيانة طبقة النظام","تُظهر استضافة ‎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","\u002Fapplications\u002Fالتعاون-والإنتاجية\u002Fplane",[142,158,178,194],{"id":143,"slug":144,"slugs":145,"title":149,"excerpt":150,"readTime":151,"views":23,"isPinned":19,"noindex":19,"publishedAt":152,"updatedAt":153,"category":154,"categories":155,"featuredImage":29,"bgImage":30,"posterImage":157,"relatedSolution":29},221,"huly-استبدل-linear-وnotion-وslack-على-خادمك-الافتراضي",{"fr":146,"en":147,"ar":144,"es":148},"huly-gestion-projet-self-hosted-vps","huly-replace-linear-notion-and-slack-on-your-vps","huly-gestion-proyectos-self-hosted-vps","‫Huly‬: استبدل ‫Linear‬ و‫Notion‬ وSlack على خادمك الافتراضي","انشر ‫Huly‬ على خادمك الافتراضي لتوحيد المهام والوثائق والدردشة — المتطلبات، التثبيت، النسخ الاحتياطي، استكشاف الأخطاء وتحديث الإصدار.",7,"2026-08-04T00:00:00+00:00","2026-10-20T23:18:05+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":25},[156],{"id":23,"name":24,"slug":25,"color":26,"icon":25},"\u002Fblog\u002Fcovers\u002Fhuly-gestion-projet-self-hosted-vps-poster.svg",{"id":159,"slug":160,"slugs":161,"title":165,"excerpt":166,"readTime":167,"views":18,"isPinned":19,"noindex":19,"publishedAt":168,"updatedAt":169,"category":170,"categories":175,"featuredImage":29,"bgImage":30,"posterImage":177,"relatedSolution":29},229,"docker-compose-في-الإنتاج-قائمة-التحقق-من-10-نقاط",{"fr":162,"en":163,"ar":160,"es":164},"docker-compose-production-checklist","docker-compose-in-production-10-point-checklist","checklist-docker-compose-en-produccion","Docker Compose في الإنتاج: قائمة التحقق من 10 نقاط","‏قائمة تحقق ‎Docker Compose‎ للإنتاج: 10 إعدادات، فحوصات صحية، أسرار، تراجع، استكشاف الأخطاء، والانتقال من ‎docker-compose v1‎ إلى ‎docker compose‎ على ‎Ubuntu 26.04‎.",12,"2026-08-06T00:00:00+00:00","2026-10-23T13:27:09+00:00",{"id":171,"name":172,"slug":173,"color":174,"icon":173},3,"النشر","deploiement","bg-success\u002F10 text-success",[176],{"id":171,"name":172,"slug":173,"color":174,"icon":173},"\u002Fblog\u002Fcovers\u002Fdocker-compose-production-checklist-poster.svg",{"id":179,"slug":180,"slugs":181,"title":185,"excerpt":186,"readTime":187,"views":23,"isPinned":19,"noindex":19,"publishedAt":188,"updatedAt":189,"category":190,"categories":191,"featuredImage":29,"bgImage":30,"posterImage":193,"relatedSolution":29},236,"أتمتة-إدارة-خوادم-vps-باستخدام-ansible",{"fr":182,"en":183,"ar":180,"es":184},"ansible-automatiser-serveurs-vps","automating-vps-server-management-with-ansible","automatizar-servidores-vps-con-ansible","أتمتة إدارة خوادم VPS باستخدام Ansible","تعرّف على كيفية أتمتة إدارة أسطول خوادم VPS باستخدام ‎Ansible‎: الجرد والـ playbooks والأدوار والـ Vault لبنية تحتية قابلة للتكرار.",10,"2026-08-08T00:00:00+00:00","2026-09-07T11:26:10+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":25},[192],{"id":23,"name":24,"slug":25,"color":26,"icon":25},"\u002Fblog\u002Fcovers\u002Fansible-automatiser-serveurs-vps-poster.svg",{"id":195,"slug":196,"slugs":197,"title":201,"excerpt":202,"readTime":17,"views":18,"isPinned":19,"noindex":19,"publishedAt":203,"updatedAt":21,"category":204,"categories":205,"featuredImage":29,"bgImage":30,"posterImage":207,"relatedSolution":208},270,"هجرة-jira-data-center-إلى-openproject-أو-plane-على-vps",{"fr":198,"en":199,"ar":196,"es":200},"migrer-jira-openproject-plane-vps-2026","migrating-from-jira-data-center-to-openproject-or-plane-on-vps","migrar-de-jira-a-openproject-o-plane-en-vps","هجرة ‎Jira Data Center إلى ‎OpenProject أو ‎Plane على ‎VPS","توقّف ‎Jira Data Center عن بيع تراخيص جديدة منذ مارس 2026 وسيصبح قراءة فقط في 28 مارس 2029. انتقل إلى ‎OpenProject أو ‎Plane على ‎VPS خاص بك في يوم عمل واحد.","2026-08-16T00:00:00+00:00",{"id":171,"name":172,"slug":173,"color":174,"icon":173},[206],{"id":171,"name":172,"slug":173,"color":174,"icon":173},"\u002Fblog\u002Fcovers\u002Fmigrer-jira-openproject-plane-vps-2026-poster.svg",{"categorySlug":33,"appSlug":34},true,1794270317752]