[{"data":1,"prerenderedAt":151},["ShallowReactive",2],{"seo-verification":3,"blog-استضافة-jitsi-على-خادم-vps-الخاص-بك-ma-ar":6,"promo-bar-likely":150},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"key":7,"data":8},"blog-استضافة-jitsi-على-خادم-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":28,"featuredImage":30,"bgImage":31,"posterImage":32,"relatedSolution":30,"intro":33,"sections":34,"ctaTitle":90,"ctaBody":91,"ctaButton":92,"ctaUrl":93,"relatedPosts":94},78,"استضافة-jitsi-على-خادم-vps-الخاص-بك",{"fr":12,"en":13,"ar":10,"es":14},"heberger-jitsi","host-jitsi-on-your-own-vps","alojar-jitsi-meet-en-un-vps","استضافة Jitsi على خادم VPS الخاص بك","انشُر Jitsi Meet على خادم VPS مع Docker وخادم TURN (coturn) وSSL. دليل كامل: إعداد ‎.env، استكشاف أخطاء ICE failed والصوت الغائب ومشاركة الشاشة.",11,3,false,"2026-04-03T00:00:00+00:00","2026-11-08T01:13:14+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},7,"الاستضافة الذاتية","self-hosting","bg-indigo-500\u002F10 text-indigo-400","cloud",[29],{"id":23,"name":24,"slug":25,"color":26,"icon":27},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fheberger-jitsi-poster.svg","Jitsi Meet حلّ لمؤتمرات الفيديو مفتوح المصدر يعمل مباشرةً في المتصفح، دون تثبيت من جهة المشارِك. استضافته ذاتيًا على خادم VPS تمنحك غرفًا غير محدودة، دون حدّ زمني ودون جمع للبيانات. النشر نفسه سريع — إعداد خادم TURN (coturn) هو ما يُخفق فيه أغلب المثبِّتين: بدونه يعمل الفيديو على الشبكة المحلية لكنه يتوقف فور أن يكون أحد المشاركين خلف NAT مؤسسي أو مزوّد يستخدم NAT واسع النطاق. يغطّي هذا الدليل التثبيت الكامل وإعداد coturn المتقدّم ومراقبة جسر الفيديو واستكشاف الأخطاء الأكثر شيوعًا.",[35,39,49,52,74,77,81,84,87],{"type":36,"title":37,"body":38},"h2","Jitsi ذاتي الاستضافة مقارنةً بـZoom: ما الذي يتغيّر فعلًا","تفرض خدمات مؤتمرات الفيديو الموجَّهة للجمهور العام (Zoom وGoogle Meet وTeams) حدودًا زمنية في الخطط المجانية، وحصصًا للمشاركين، وتحتفظ بتسجيلاتك على خوادمها. يزيل Jitsi Meet، عند استضافته ذاتيًا، هذه القيود: غرف غير محدودة، ومدة غير محدودة، ولا حساب مطلوب للانضمام إلى اجتماع، وتدفّقات الفيديو تبقى على بنيتك التحتية. وهذا وجيه بوجه خاص لمؤسسة تحرص على سرّية اجتماعاتها، أو مكتب يتعامل مع بيانات حساسة، أو لمن يريد دمج الفيديو في تطبيق خارجي (يوفّر Jitsi **واجهة iframe API** مستقرة). تُختصر تكاليف التشغيل في فاتورة خادم VPS — لا اشتراك بالمقعد، ولا رسوم إضافية للبرمجيات.",{"type":40,"title":41,"items":42},"ul","فوائد ملموسة لـJitsi ذاتي الاستضافة",[43,44,45,46,47,48],"اجتماعات دون حدّ زمني ودون سقف لعدد الغرف — لا عدّاد يقطع الاتصال.","لا حساب مطلوب للمشاركين: رابط بسيط يكفي للانضمام.","واجهة iframe API لدمج الفيديو مباشرةً في تطبيقك أو موقعك.","تشفير النقل (DTLS-SRTP) والتحكم الكامل في أي تسجيلات.","تخصيص كامل: الشعار والألوان واسم نطاق الغرف.","لا قياس عن بُعد يُرسَل إلى طرف ثالث — تدفّقات الفيديو لا تغادر خادم VPS الخاص بك.",{"type":36,"title":50,"body":51},"متطلبات مُحدَّدة بالأرقام قبل البدء","Jitsi يُحجَّم بـ**عرض النطاق الترددي**، لا بوحدة المعالجة (CPU). توصي وثائق Jitsi بـ**8 غيغابايت RAM** (تكفي 4 غيغابايت للاجتماعات الصغيرة)، ونحو 4 أنوية مخصّصة لخادم أساسي، وقبل كل شيء رابط شبكة موثوق: يستهلك تدفّق 720p نحو 2.5 Mbit\u002Fs، ورابط بسرعة 100 Mbit\u002Fs لا يحتمل عشرين مشاركًا بدقة عالية. راقِب حِمل شبكة JVB. ثلاثة منافذ يجب أن تكون قابلة للوصول من الإنترنت: **TCP 443** (HTTPS)، و**TCP 80** (تحدّي Let's Encrypt وإعادة التوجيه إلى HTTPS)، و**UDP 10000** (وسائط JVB). المنفذ TCP 4443 الذي تذكره أدلة قديمة لم يعد في القائمة الرسمية. إن كان coturn يعمل على خادم VPS نفسه، أضِف منافذه: **3478** عبر UDP وTCP، و**5349** عبر TLS (المنفذ 443 تشغله حاوية web). تحتاج Docker مع Compose V2 (الأمر `docker compose`)، واسم نطاق `meet.yourdomain.com` مع سجل A يشير إلى IP عام لخادم VPS، وعنوان IP عام **مخصّص وثابت** — عنوان IP مشترك يُعقِّد إعداد coturn تعقيدًا كبيرًا.",{"type":53,"title":54,"steps":55},"steps","النشر خطوة بخطوة: Docker و‎.env وcoturn وأول اختبار",[56,59,62,65,68,71],{"title":57,"body":58},"جلب docker-jitsi-meet","نزّل أحدث إصدار من صفحة الإصدارات في `github.com\u002Fjitsi\u002Fdocker-jitsi-meet` وفُكّ ضغطه: الدليل الرسمي لا ينصح باستنساخ المستودع، إذ يسحب فرعه الرئيسي صور `unstable`. أنشئ مجلدات الإعداد التي يذكرها الدليل (`~\u002F.jitsi-meet-cfg\u002F…`، ومنها `storage` و`tmp`، قابلة للكتابة من المستخدم uid 1000): تعمل الحاويات دون صلاحيات root وترفض الإقلاع بدون ذلك. انسخ `env.example` إلى `‎.env`، ثم نفّذ `.\u002Fgen-passwords.sh` — يولّد هذا السكربت جميع الأسرار الداخلية (Prosody وJicofo وJVB). لا تتجاوز هذه الخطوة: القيم الافتراضية ليست أسرارًا. الإصدار `stable-11248-3` (نوفمبر 2026) هو آخر إصدار مستقر؛ تجنّب `master` وصور `unstable` في الإنتاج — المكوّنات الداخلية تتغيّر دون إشعار مسبق.",{"title":60,"body":61},"ضبط PUBLIC_URL والمنافذ وJVB_ADVERTISE_IPS","في `‎.env`، اضبط أولًا `HTTP_PORT=80` و`HTTPS_PORT=443` (القيمتان الافتراضيتان 8000 و8443). ثم متغيّران حاسمان: `PUBLIC_URL=https:\u002F\u002Fmeet.yourdomain.com` (يستخدمه العميل الويب لبناء عناوين URL للغرف)، و`JVB_ADVERTISE_IPS=\u003CIP_عامة_لـVPS>` (العنوان الذي يُعلنه JVB للعملاء لإنشاء اتصال الوسائط المباشر؛ وهو يحلّ محلّ المتغيّر القديم `DOCKER_HOST_ADDRESS`). بدون `JVB_ADVERTISE_IPS` يحاول JVB اكتشاف عنوانه العام عبر STUN؛ وإن كان العنوان المُعلَن خاطئًا تفشل المكالمات بمجرد انضمام أكثر من مشاركَين.",{"title":63,"body":64},"تفعيل Let's Encrypt في ‎.env","أضِف إلى `‎.env`: `ENABLE_LETSENCRYPT=1`، و`LETSENCRYPT_DOMAIN=meet.yourdomain.com`، و`LETSENCRYPT_EMAIL=admin@yourdomain.com`. تحقّق من أن المنفذ 80 مفتوح قبل التشغيل — يستخدم Let's Encrypt تحدي HTTP-01 الذي يستلزم ردًّا على هذا المنفذ. تحصل حاوية web على الشهادة وتجدّدها بأداة acme.sh (خدمة تجديد داخلية) وتحفظها في ‎`~\u002F.jitsi-meet-cfg\u002Fstorage\u002Fweb`: احتفِظ بهذا المجلد عبر إعادة التشغيل. أضِف أيضًا `LETSENCRYPT_ACME_SERVER=letsencrypt`: بدونه تتوجّه acme.sh افتراضيًا إلى ZeroSSL.",{"title":66,"body":67},"إعداد coturn (خادم TURN)","هذه الخطوة التي يتجاوزها معظم الأدلة وتتسبّب في فشل التثبيت. لا يتضمّن docker-jitsi-meet خادم coturn: ثبّته على حدة (حزمة أو حاوية)، ثم صرّح به في `‎.env` كي يسلّم Prosody العملاءَ بيانات اعتماد مؤقتة: `TURNS_HOST=turn.yourdomain.com` و`TURNS_PORT` لـTLS، إضافةً إلى `TURN_HOST=turn.yourdomain.com` و`TURN_PORT=3478` و`TURN_TRANSPORT=udp,tcp`. المنفذ 443 عبر TLS يخترق أشد الجدران تقييدًا التي تحجب المنافذ غير المعيارية لكنها تسمح بما يشبه HTTPS؛ لكنه يتطلّب عنوان IP لا تشغله حاوية web، وإلا فاحتفِظ بالمنفذ 5349.\n\nثم ولّد سرًّا مشتركًا (`openssl rand -hex 32`) وضعه في `TURN_CREDENTIALS` داخل `‎.env` وفي coturn (`use-auth-secret` و`static-auth-secret=\u003Cالسرّ نفسه>`)؛ ولا تستخدم `no-auth` أبدًا، فهو يجعل خادمك مُرحِّلًا مفتوحًا للجميع. تُعلَن شهادة TLS في إعداد coturn (`cert=` و`pkey=`)، لا في `‎.env`. إن كان coturn يعمل في حاوية منفصلة، ارفع هذه الملفات كأحجام volume.\n\nتفصيل كثيرًا ما يُنسى: لا يحجب coturn افتراضيًا نطاقات RFC1918 (192.168.x.x و10.x.x.x و172.16.x.x): يرفض عنوان loopback فقط. لذا يستطيع عميل مُصادَق ترحيل حركة نحو شبكتك الداخلية. أضِف `no-multicast-peers` وأسطر `denied-peer-ip` لهذه النطاقات، ثم، إن كان لـJVB عنوان داخلي، اسمح به وحده عبر `allowed-peer-ip`.",{"title":69,"body":70},"تشغيل الحزمة والتحقق من JVB","نفّذ `docker compose up -d`. انتظر 30 ثانية، ثم: `docker compose logs jvb 2>&1 | grep -E 'register|connected|error'`. يجب أن ترى سطرًا يُظهر أن JVB سُجِّل لدى Jicofo. إن ظهر `Failed to register` أو `Connection refused`، فـProsody لم يستعدّ بعد — أعِد المحاولة بعد دقيقة. ثم تحقّق من أن المنافذ تستجيب: `nc -zv meet.yourdomain.com 443` (web، TCP) و`nc -zv turn.yourdomain.com 3478` (coturn، TCP) و`nc -zvu meet.yourdomain.com 10000` (JVB، UDP؛ نجاح اختبار UDP مؤشّر فقط).",{"title":72,"body":73},"أول اختبار فيديو من شبكتين مختلفتين","افتح `https:\u002F\u002Fmeet.yourdomain.com` من جهازك المعتاد ومن جهاز ثانٍ على شبكة مختلفة (هاتف بالاتصال عبر شبكة الجوّال مثلًا). إن رأى المشاركان بعضهما وسمعا بعضهما، فـTURN يعمل. الاختبار بين جهازين على الشبكة المحلية ذاتها **لا يُثبت صحة coturn** — ينجح باتصال نظير-لنظير دون أن يستدعي المُرحِّل قطّ.",{"type":36,"title":75,"body":76},"الإعداد المتقدّم: التسجيل والمصادقة والحدود","**تسجيل الاجتماعات.** يتضمّن Jitsi أداة Jibri للتسجيل المحلي أو البثّ عبر RTMP. يلتقط Jibri عرض متصفح في الوقت الفعلي: النسخة الواحدة لا تسجّل إلا اجتماعًا واحدًا في كل مرة، وتطلب وثائق Jitsi ما لا يقل عن 8 غيغابايت RAM لكل نسخة بدقة 720p، ويُفضَّل تشغيلها على خادم منفصل. فعّل `ENABLE_RECORDING=1` في `‎.env` وشغّل حاوية Jibri المرفقة: `docker compose -f docker-compose.yml -f jibri.yml up -d`. **مصادقة المنظِّمين.** افتراضيًا يمكن لأي شخص إنشاء غرفة: النسخة العامة المتروكة هكذا تصبح خدمة فيديو مجانية للغرباء على حساب عرض النطاق الخاص بك. فعّل `ENABLE_AUTH=1` و`AUTH_TYPE=internal` و`ENABLE_GUESTS=1` لاشتراط حساب من جهة المنظِّم مع ترك الضيوف ينضمّون بحرية. أنشئ حسابات المضيفين بـ: `docker compose exec prosody prosodyctl --config \u002Frun\u002Fprosody\u002Fconfig\u002Fprosody.cfg.lua register admin meet.jitsi \u003Cكلمة_مرور>`: النطاق `meet.jitsi` هو نطاق XMPP الداخلي لا اسمك العام، وتُولَّد كلمة المرور (`openssl rand -base64 18`) بدل إعادة استخدام كلمة قديمة. **تقييد المشاركين المجهولين.** يجعل `ENABLE_LOBBY=1` غرفة الانتظار متاحة: بعد أن يفعّلها المشرف، يجب الموافقة على كل دخول قبل الوصول إلى الغرفة. مجتمعًا مع `ENABLE_AUTH=1`، يمنحك ذلك تحكمًا كاملًا فيمن يصل إلى ماذا.",{"type":78,"title":79,"body":80},"tip","التصليب الأمني: fail2ban على خدمة TURN","يكشف coturn خدمةً قابلة للوصول من الإنترنت. ثبّت fail2ban وأنشئ مرشّحًا على محاولات مصادقة TURN الفاشلة: تظهر حالات الفشل في سجل coturn مع الرمز 401؛ تحقّق من الصيغة الدقيقة في نسختك قبل كتابة التعبير النمطي للمرشّح. سجن fail2ban بـ`maxretry=10` و`bantime=600` يكفي لردع المسح الآلي دون التأثير على مستخدميك الشرعيين. ثبّت مسار السجل بـ`log-file=\u002Fvar\u002Flog\u002Fturnserver.log` في إعداد coturn (بدون هذا الخيار يختار coturn ملفًا بنفسه في \u002Fvar\u002Flog أو \u002Fvar\u002Ftmp أو \u002Ftmp)، واجعل fail2ban يراقب هذا المسار، أو ارفع هذا الملف من الحاوية.",{"type":36,"title":82,"body":83},"استكشاف الأخطاء: الأخطاء الأربعة الأكثر شيوعًا","**غياب الصوت أو الفيديو العالق على «connecting» — coturn ومنفذ UDP 10000.** هذا العطل الأكثر تكرارًا. افحص بهذا الترتيب: (1) `ufw status` — هل المنفذان TCP 443 وUDP 10000 مفتوحان؟ (2) سجلات coturn (`journalctl -u coturn` عند التشغيل الأصلي، و`docker logs \u003Cحاوية-coturn>` خلاف ذلك) — هل يبدأ coturn بلا أخطاء في الشهادة؟ (3) من جهاز خارجي: `curl -v telnet:\u002F\u002Fmeet.yourdomain.com:3478` — هل يستجيب coturn؟ (4) في سجلات المتصفح (F12 ← Console): هل ترى `ICE failed` أو `failed to gather candidates`؟ إن كان كذلك، coturn لا يمكن الوصول إليه من الخارج. تحقّق من أن `TURN_HOST` و`TURNS_HOST` في `‎.env` يُحَلّان فعلًا إلى عنوان IP خادم coturn. **رفض الاتصال على TCP 443.** إن لم يتمكّن Let's Encrypt من إصدار شهادة (المنفذ 80 كان مغلقًا عند الإطلاق الأول)، تتوقف حاوية web بعد الرسالة `Failed to obtain a certificate from the Let's Encrypt CA` ولا يعود شيء يستجيب على المنفذ 443. الحلّ: افتح المنفذ 80، وتحقّق من `HTTP_PORT=80`، وأعِد تشغيل `docker compose up -d`؛ لا داعي لحذف الإعداد، وكل محاولة جديدة تُحتسب ضمن حدود Let's Encrypt. **رفض مشاركة الشاشة من المتصفح.** تستلزم مشاركة الشاشة سياقًا آمنًا (HTTPS صالح). إن رأيت `getUserMedia is not supported`، الشهادة غير صالحة أو النطاق ليس على HTTPS. راجِع `PUBLIC_URL` — يجب أن تبدأ بـ`https:\u002F\u002F` مع نطاق شهادته صالحة، لا بعنوان IP خام. **خطأ «ICE failed» مستمر رغم عمل coturn.** افحص المتغيّر `JVB_ADVERTISE_IPS` (سابقًا `DOCKER_HOST_ADDRESS`): يجب أن يحتوي على IP العام لـVPS، لا على IP الداخلي لحاوية Docker (172.17.x.x). إن كان VPS الخاص بك خلف NAT سحابيًا (نادر لكن ممكن)، فأنت بحاجة إلى IP NAT الخارجي، لا IP واجهة الشبكة.",{"type":36,"title":85,"body":86},"المراقبة: رصد عرض النطاق الترددي وعدد المشاركين","يكشف جسر الفيديو JVB واجهة إحصاءات في الوقت الفعلي على `http:\u002F\u002Flocalhost:8080\u002Fcolibri\u002Fstats`. تُبلَّغ هذه النقطة بصيغة JSON عن عدد المؤتمرات النشطة والمشاركين وعرض النطاق الترددي الوارد والصادر بالكيلوبت\u002Fالثانية ومتوسط زمن الذهاب والإياب (`rtt_aggregate`). لا يُنشَر المنفذ 8080 إلا على `127.0.0.1`: أبقِه كذلك. للمراقبة المستمرة، يكشف JVB مقاييسه أصلًا بصيغة Prometheus على `\u002Fmetrics` (المنفذ الخاص نفسه)؛ ومن جهة Prosody، فعّل `PROSODY_ENABLE_METRICS=1` في `‎.env`. ثم صِل مجموعة Prometheus + Grafana: يوفّر المستودع الملفين `prometheus.yml` و`grafana.yml`، وهما ينشران المنفذين 9090 و3000 على كل الواجهات. قيّدهما بـ`127.0.0.1` أو بشبكة VPN، لأن المنافذ التي ينشرها Docker تتجاوز قواعد ufw.\n\nبدون Prometheus، تتحقّق رقابة دنيا بمهمة cron تستعلم `\u002Fcolibri\u002Fstats` وتنبّه حين يتجاوز الإنتاجية حدًّا معيّنًا: `curl -s http:\u002F\u002F127.0.0.1:8080\u002Fcolibri\u002Fstats | python3 -c \"import json,sys; s=json.load(sys.stdin); print(s.get('bit_rate_download',0), s.get('bit_rate_upload',0))\"`.\n\nلتقدير الطاقة الاستيعابية قبل الإشباع: تعتمد طاقة JVB أولًا على رابط الشبكة والدقّات المُرسَلة؛ قِسها على حِملك الفعلي بدل الاعتماد على رقم عام. وحين يقترب الحدّ يرتفع مقياس `rtt_aggregate` وتنخفض الجودة المُدرَكة قبل أن تنشغل وحدة المعالجة — هذه هي الإشارة لإضافة نسخة JVB أخرى.",{"type":36,"title":88,"body":89},"خادم Jitsi جاهز — أدِر عرض النطاق الترددي","يعمل Jitsi في وضع SFU: يعيد جسر الفيديو (JVB) ترحيل كل تدفّق إلى كل مشارِك، فيتناسب عرض النطاق الترددي الصادر مع عدد المشاركين مضروبًا في عدد التدفّقات. يزن تدفّق 720p نحو 2.5 Mbit\u002Fs وفق وثائق Jitsi: اضربه في عدد التدفّقات المُرسَلة فعلًا إلى كل مشارك لتقدير المعدّل الصادر. اضبط `channelLastN: 5` في `custom-config.js` (مجلد `web` في الإعداد) لاستقبال آخر N فيديوهات نشطة فقط للحدّ من التدفّقات من جانب العميل في الاجتماعات الكبيرة، وراقِب `docker stats jvb` لاستباق الإشباع. ما فوق عشرين مشاركًا متزامنًا بصورة منتظمة، انشُر عدة نُسخ من JVB على خوادم VPS منفصلة خلف Jicofo واحد: هذه بنية التوسّع الأفقي الأصيلة في Jitsi. وللنشر متعدّد المؤسسات أو متعدّد النطاقات، تذكّر أن تثبيت docker-jitsi-meet له `PUBLIC_URL` واحد فقط: إن احتاجت كل مؤسسة حساباتها الخاصة وفضاء غرف معزولًا، فخصّص نسخة لكل مؤسسة على نطاقها الفرعي الخاص.","أطلِق خادم Jitsi الخاص بك على خادم VPS Cloud من ServOrbit","يتيح لك خادم VPS Cloud بعنوان IP عام مخصّص وعرض نطاق ترددي سخيّ ووصول root نشرَ Jitsi Meet وcoturn وJibri دون حدّ للاجتماعات. تبقى مؤتمراتك المرئية على بنيتك التحتية.","أطلِق خادم VPS Cloud الخاص بي","\u002Fvps-cloud",[95,114,132],{"id":96,"slug":97,"slugs":98,"title":102,"excerpt":103,"readTime":104,"views":105,"isPinned":19,"noindex":19,"publishedAt":106,"updatedAt":107,"category":108,"categories":109,"featuredImage":30,"bgImage":31,"posterImage":111,"relatedSolution":112},71,"استضافة-nextcloud-على-خادمك-الـvps-الخاص",{"fr":99,"en":100,"ar":97,"es":101},"heberger-nextcloud","hosting-nextcloud-on-your-own-vps","alojar-nextcloud-en-su-propio-vps","استضافة Nextcloud على VPS: دليل NC 35 وPHP 8.3 وMariaDB 11","استضافة Nextcloud على VPS: ‏Docker Compose وRedis ونسخ MariaDB، ورفع ملفات تتجاوز 40 جيجابايت خلف Cloudflare، وبديل لـ ‎Office 2021.",20,1,"2026-04-10T00:00:00+00:00","2026-11-08T16:32:50+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[110],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fheberger-nextcloud-poster.svg",{"categorySlug":25,"appSlug":113},"nextcloud",{"id":115,"slug":116,"slugs":117,"title":121,"excerpt":122,"readTime":123,"views":105,"isPinned":19,"noindex":19,"publishedAt":124,"updatedAt":125,"category":126,"categories":127,"featuredImage":30,"bgImage":31,"posterImage":129,"relatedSolution":130},72,"استضافة-ghost-على-خادمك-الـvps-الخاص",{"fr":118,"en":119,"ar":116,"es":120},"heberger-ghost","hosting-ghost-on-your-own-vps","alojar-ghost-en-un-vps","استضافة Ghost على خادمك الـVPS: دليل شامل 2026","نشر Ghost v6 على خادمك الـVPS مع Caddy وMySQL وGhost CLI وStripe Tax: التثبيت ووكيل TLS العكسي والتحديثات واستكشاف أخطاء البدء الشائعة.",10,"2026-04-09T00:00:00+00:00","2026-11-04T16:30:25+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[128],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fheberger-ghost-poster.svg",{"categorySlug":25,"appSlug":131},"ghost",{"id":133,"slug":134,"slugs":135,"title":139,"excerpt":140,"readTime":23,"views":141,"isPinned":19,"noindex":19,"publishedAt":142,"updatedAt":143,"category":144,"categories":145,"featuredImage":30,"bgImage":31,"posterImage":147,"relatedSolution":148},73,"استضافة-wordpress-على-خادم-vps-الخاص-بك",{"fr":136,"en":137,"ar":134,"es":138},"heberger-wordpress","host-wordpress-on-your-own-vps","alojar-wordpress-en-un-vps","استضافة WordPress على خادم VPS الخاص بك","استضِف WordPress على خادم VPS الخاص بك لأقصى أداء وتحكّم: Docker وMariaDB والتخزين المؤقت (cache) وreverse proxy وSSL.",0,"2026-04-08T00:00:00+00:00","2026-11-09T20:55:18+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[146],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fheberger-wordpress-poster.svg",{"categorySlug":25,"appSlug":149},"wordpress",true,1794270223778]