[{"data":1,"prerenderedAt":175},["ShallowReactive",2],{"seo-verification":3,"blog-استضافة-calcom-على-خادمك-الافتراضي-الخاص-vps-ma-ar":6,"promo-bar-likely":174},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"key":7,"data":8},"blog-استضافة-calcom-على-خادمك-الافتراضي-الخاص-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":33,"intro":35,"sections":36,"ctaTitle":109,"ctaBody":110,"ctaButton":111,"ctaUrl":112,"relatedPosts":113},88,"استضافة-calcom-على-خادمك-الافتراضي-الخاص-vps",{"fr":12,"en":13,"ar":10,"es":14},"heberger-cal-com","host-calcom-on-your-own-vps","alojar-cal-com-en-un-vps","استضافة Cal.com على VPS: دليل Docker الشامل","انشر ‎Cal.com‎ على ‎VPS‎ مع ‎Docker‎ و‎PostgreSQL‎ ووكيل عكسي. حل ‎CLIENT_FETCH_ERROR‎ وثوابت التشغيل الأول والتحديث الآمن والتشخيص.",9,2,false,"2026-03-24T00:00:00+00:00","2026-09-07T11:26:10+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-cal-com-poster.svg",{"categorySlug":25,"appSlug":34},"cal-com","‎Calendly‎ عملي لكنه احتكاري، ومحدود في خطته المجانية، ونهِم لبيانات اجتماعاتك. ‎Cal.com‎ هو نظيره مفتوح المصدر: حجز المواعيد وتكاملات التقويم والاجتماعات المرئية، وكلها قابلة للاستضافة على خادم ‎VPS‎ خاص بك. يغطي هذا الدليل النشر الأولي وإعداد الوكيل العكسي وخطأ ‎CLIENT_FETCH_ERROR‎ الذي يعرقل تثبيتات ‎Docker‎ الجديدة منذ مطلع 2026، إضافةً إلى الأخطاء الأكثر شيوعًا.",[37,41,51,54,79,82,85,100,103,106],{"type":38,"title":39,"body":40},"h2","لماذا تستضيف ‎Cal.com‎ ذاتيًا على خادم ‎VPS‎","‎Cal.com‎ تطبيق ‎Next.js‎ يعتمد على ‎PostgreSQL‎ يتولّى جدولة المواعيد وأنواع الأحداث وأوقات التوفّر والمزامنة مع التقاويم (‎Google‎ و‎CalDAV‎ و‎Office 365‎). تلبّي الاستضافة الذاتية حاجة محدّدة: التحكم في بيانات توفّر عملائك وحجز مواعيدهم، التي تمرّ عادةً عبر خدمة أمريكية طرف ثالث. على خادم ‎VPS‎، تلغي قيود الخطة المجانية (نوع حدث واحد، علامة تجارية مفروضة)، وتربط مفاتيح ‎API‎ الخاصة بك لـ‎Google‎\u002Fالاجتماعات المرئية، وتضمّن أداة الحجز مباشرةً في موقعك تحت نطاقك. وبما أن ‎Cal.com‎ تطبيق ‎Node‎ دائم مع قاعدة بيانات وبناء إنتاجي، فإنه يتطلّب خادم ‎VPS‎ — إذ لا تستطيع الاستضافة المشتركة تشغيل العملية ولا استضافة ‎PostgreSQL‎.",{"type":42,"title":43,"items":44},"ul","فوائد ملموسة لـ‎Cal.com‎ المُستضاف ذاتيًا",[45,46,47,48,49,50],"أنواع أحداث غير محدودة: مقابلات 15 دقيقة، وعروض توضيحية 30 دقيقة، وورش جماعية، دون حاجز مدفوع (‎paywall‎).","بيانات الحجز لديك: دون أي تسريب لبيانات اتصال العملاء ومواعيدهم إلى خدمة ‎SaaS‎ طرف ثالث.","علامة بيضاء (‎white-label‎) كاملة: يحمل رابط الحجز نطاقك، لا نطاق مطوّر.","‎Webhooks‎ و‎API‎: شغّل الأتمتة (‎CRM‎، الفوترة) عند كل موعد يُحجَز.","تكاملات ‎Google Agenda‎ و‎CalDAV‎ والاجتماعات المرئية (‎Jitsi‎ و‎Google Meet‎) مضبوطة بمفاتيحك الخاصة.","حجوزات الفريق والتوزيع الدوري (‎round-robin‎) لتوزيع المواعيد بين عدة متعاونين.",{"type":38,"title":52,"body":53},"المتطلبات التقنية","‎Cal.com‎ أكثر تطلّبًا من متوسط الاستضافة الذاتية بسبب أساسه ‎Next.js‎ وخطوة البناء. خصّص 2 ‎vCPU‎ و4 غيغابايت من ‎RAM‎ و20 غيغابايت من القرص لنسخة فريق مريحة؛ وقد يكفي 2 غيغابايت من ‎RAM‎ للاستخدام الفردي لكن البناء الأولي يكون أضيق. تحتاج إلى ‎Docker‎ و‎Docker Compose‎، وقاعدة بيانات ‎PostgreSQL‎ (مشمولة في ملف ‎compose‎ الرسمي)، ونطاق `rdv.yourdomain.com` موجَّه إلى الخادم ‎VPS‎، وعدة متغيرات بيئة إلزامية: `NEXTAUTH_SECRET` و`CALENDSO_ENCRYPTION_KEY` (مفاتيح مولَّدة عشوائيًا) و`NEXT_PUBLIC_WEBAPP_URL` مضبوطًا على عنوان ‎HTTPS‎ النهائي. وللمزامنة مع التقويم والاجتماعات المرئية، جهّز معرّفات ‎OAuth‎ الخاصة بـ‎Google‎.",{"type":55,"title":56,"steps":57},"steps","نشر ‎Cal.com‎ خطوة بخطوة",[58,61,64,67,70,73,76],{"title":59,"body":60},"استنساخ مستودع نشر ‎Docker‎","على الخادم ‎VPS‎: `git clone https:\u002F\u002Fgithub.com\u002Fcalcom\u002Fdocker.git cal-docker && cd cal-docker`. يوفّر هذا المستودع ملف `docker-compose.yml` وملف `.env.example` لتكييفه.",{"title":62,"body":63},"توليد الأسرار وإعداد البيئة","انسخ `.env.example` إلى `.env`، ثم ولّد المفاتيح: `openssl rand -base64 32` لـ`NEXTAUTH_SECRET` ولـ`CALENDSO_ENCRYPTION_KEY`. عيّن `NEXT_PUBLIC_WEBAPP_URL=https:\u002F\u002Frdv.yourdomain.com` ومعرّفات ‎PostgreSQL‎. **احفظ هذه القيم الثلاث فورًا في مدير الأسرار** — لن تتمكن من تغييرها بعد أول تشغيل دون فقدان جميع تكاملاتك.",{"title":65,"body":66},"إضافة ‎NEXTAUTH_URL_INTERNAL‎ لمنع ‎CLIENT_FETCH_ERROR‎","أضِف `NEXTAUTH_URL_INTERNAL=http:\u002F\u002Fcalcom:3000` إلى ملف `.env`. بدون هذا المتغير، يحاول حاوية ‎Next.js‎ حلّ نطاقها العام (`rdv.yourdomain.com`) من داخل شبكة ‎Docker‎، حيث لا يستجيب ‎DNS‎ الخارجي — فيفشل كل طلب مصادقة من جهة الخادم بخطأ `CLIENT_FETCH_ERROR`. يتجاوز `NEXTAUTH_URL_INTERNAL` هذا الحل بالإشارة مباشرةً إلى اسم خدمة ‎Docker‎ (`calcom` هو اسم الخدمة في `docker-compose.yml`). هذا المتغير مستقل عن `NEXTAUTH_URL`: يجب أن يكون الاثنان موجودَين.",{"title":68,"body":69},"بناء المكدّس وتشغيله","ابدأ بـ`docker compose up -d`. يبني التشغيل الأول صورة ‎Next.js‎ ويطبّق عمليات ترحيل ‎Prisma‎ على ‎PostgreSQL‎ — وهي الخطوة الأطول، تابِعها بـ`docker compose logs -f`.",{"title":71,"body":72},"أول تسجيل دخول","افتح الرابط: يوجّهك ‎Cal.com‎ إلى معالج الإعداد الأول (`\u002Fauth\u002Fsetup`) حيث تنشئ حساب المسؤول الخاص بك. قم بذلك فور انتهاء التثبيت: فهذا المعالج غير محمي بأي شيء ما دام الحساب الأول غير موجود.",{"title":74,"body":75},"إنشاء الحساب وإعداد أوقات التوفّر","حدّد فتراتك الزمنية ونوع حدث أول. اختبر حجزًا من البداية إلى النهاية للتحقق من السلسلة الكاملة قبل توصيل التكاملات.",{"title":77,"body":78},"توصيل التقويم والاجتماعات المرئية","في التكاملات، أضف معرّفات ‎OAuth‎ الخاصة بـ‎Google‎ للمزامنة ثنائية الاتجاه للتقويم، وفعّل ‎Jitsi‎ أو ‎Google Meet‎ لتوليد رابط اجتماع مرئي تلقائيًا عند كل حجز.",{"type":38,"title":80,"body":81},"الوكيل العكسي: ‎nginx‎ و‎Caddy‎","يستمع ‎Cal.com‎ على المنفذ 3000 داخل الحاوية. وكيل عكسي بـ‎HTTPS‎ مطلوب لسببين: كشف المنفذ 443 وإعادة توجيه رأس `Host` الصحيح — وإلا فإن `NEXT_PUBLIC_WEBAPP_URL` لن يطابق الأصل الفعلي وستنهار عمليات إعادة توجيه المصادقة.\n\n**باستخدام ‎Caddy‎** (موصى به، شهادة تلقائية):\n\n```\nrdv.yourdomain.com {\n    reverse_proxy calcom:3000\n}\n```\n\nيحصل ‎Caddy‎ على شهادة ‎Let's Encrypt‎ ويجدّدها دون إعداد إضافي.\n\n**باستخدام ‎nginx‎**، أضِف هذه الكتلة إلى إعداداتك:\n\n```\nserver {\n    listen 443 ssl;\n    server_name rdv.yourdomain.com;\n    ssl_certificate     \u002Fetc\u002Fletsencrypt\u002Flive\u002Frdv.yourdomain.com\u002Ffullchain.pem;\n    ssl_certificate_key \u002Fetc\u002Fletsencrypt\u002Flive\u002Frdv.yourdomain.com\u002Fprivkey.pem;\n    location \u002F {\n        proxy_pass http:\u002F\u002F127.0.0.1:3000;\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في كلتا الحالتين، يجب أن يطابق الرابط `NEXT_PUBLIC_WEBAPP_URL` **تمامًا**: بدون شرطة مائلة في النهاية، بـ‎HTTPS‎، مع النطاق الفرعي الصحيح. أي فارق في حرف واحد ينتج حلقات إعادة توجيه لا تنتهي أو شاشة بيضاء.",{"type":38,"title":83,"body":84},"ثوابت التشغيل الأول الحرجة","ثلاثة متغيرات بيئة مُقيَّدة نهائيًا عند **أول تشغيل** لـ‎Cal.com‎. تغييرها لاحقًا يُفسد صامتًا جميع التكاملات المخزّنة: يُعيد التطبيق تشغيله بصورة طبيعية ولا يُظهر أي خطأ، لكن ‎Google Calendar‎ و‎Zoom‎ وجميع اتصالات ‎OAuth‎ تتوقف عن العمل — إذ خُزِّنت رموزها المشفَّرة بالمفتاح الأصلي غير المتوافق الآن. هذا السلوك موثَّق في calcom\u002Fdocker \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fcalcom\u002Fdocker\u002Fissues\u002F333\">issue #333\u003C\u002Fa> وcalcom\u002Fcal.diy \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fcalcom\u002Fcal.diy\u002Fissues\u002F13290\">issue #13290\u003C\u002Fa>: فقد مستخدمون جميع تكاملاتهم إثر تحديث أعاد إنشاء ملف `.env`.\n\n**`CALENDSO_ENCRYPTION_KEY`** — يشفّر رموز ‎OAuth‎ المخزّنة في قاعدة البيانات. أي تعديل يُلغي صامتًا جميع التكاملات القائمة.\n\n**`NEXTAUTH_URL`** — يثبّت ملفات تعريف الارتباط للجلسة. أي تغيير يُعطل المصادقة لجميع المستخدمين النشطين.\n\n**`NEXT_PUBLIC_WEBAPP_URL`** — مضمَّن في بناء ‎Next.js‎ وقت الترجمة. تغيير هذه القيمة يستلزم إعادة بناء كاملة وإعادة توصيل جميع التكاملات.\n\nأفضل الممارسات: انسخ هذه القيم الثلاث فورًا إلى مدير الأسرار (‎Bitwarden‎، ‎HashiCorp Vault‎، ‎Ansible Vault‎). وإن كنت تدير خادمك بنهج البنية التحتية كرمز (‎infrastructure-as-code‎)، خزّنها في قبو مشفَّر — لا تجعل ملف `.env` موضعها الوحيد.",{"type":55,"title":86,"steps":87},"تحديث ‎Cal.com‎ بأمان",[88,91,94,97],{"title":89,"body":90},"نسخ قاعدة بيانات ‎PostgreSQL‎ احتياطيًا","قبل أي تحديث: `docker exec cal-docker-db-1 pg_dump -U calcom calcom | gzip > \u002Fopt\u002Fbackup\u002Fcalcom-$(date +%Y%m%d).sql.gz`. عمليات ترحيل ‎Prisma‎ غير قابلة للتراجع — هذه النسخة الاحتياطية هي شبكة الأمان الوحيدة لديك.",{"title":92,"body":93},"التحقق من أن ‎CALENDSO_ENCRYPTION_KEY‎ لم تتغيّر","قارن القيمة الموجودة في ملف `.env` بتلك المحفوظة في مدير الأسرار. إن اختلفتا، **توقّف هنا**: استعِد القيمة الأصلية قبل المتابعة. مفتاح مختلف سيُدمّر صامتًا جميع تكاملات ‎OAuth‎ عند إعادة التشغيل.",{"title":95,"body":96},"تنزيل الصورة الجديدة وإعادة التشغيل","حدِّث بـ`docker compose pull && docker compose up -d`. تابِع بدء التشغيل بـ`docker compose logs -f calcom` — انتظر رسالة تأكيد جاهزية الخادم قبل الاختبار.",{"title":98,"body":99},"التحقق من التكاملات بعد التحديث","افتح الإعدادات → التكاملات وتأكد من أن كل اتصال قائم (‎Google Calendar‎، ‎Zoom‎، إلخ) لا يزال نشطًا. حالة «غير متصل» تعني تغيُّر المفتاح بين تشغيلَين — استعِد النسخة الاحتياطية وملف `.env` الأصلي.",{"type":38,"title":101,"body":102},"تشخيص الأخطاء: ‎CLIENT_FETCH_ERROR‎ وأخطاء ‎Docker‎ الشائعة","**‎CLIENT_FETCH_ERROR‎ عند تحميل الصفحة** — منذ مطلع 2026، تواجه جميع تثبيتات ‎Docker‎ الجديدة هذا الخطأ عند أول تحميل. السبب: تحاول حاوية ‎Next.js‎ حلّ `NEXTAUTH_URL` (نطاقك العام) من داخل شبكة ‎Docker‎، حيث لا يمكن الوصول إلى ‎DNS‎ الخارجي. الحل: أضِف `NEXTAUTH_URL_INTERNAL=http:\u002F\u002Fcalcom:3000` إلى ملف `.env` وأعِد التشغيل بـ`docker compose up -d`. هذا المتغير يُجبر ‎NextAuth‎ على استدعاء واجهته الخاصة داخليًا دون المرور بالنطاق العام. موثَّق في calcom\u002Fcal.diy \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fcalcom\u002Fcal.diy\u002Fissues\u002F27668\">issue #27668\u003C\u002Fa> (فبراير 2026، 8 تعليقات تؤكد الخطأ في جميع توزيعات ‎Docker‎ الحديثة).\n\n**ضياع التكاملات بعد تحديث** — السبب في الغالب `CALENDSO_ENCRYPTION_KEY` مختلفة بين تشغيلَين. تحقق من أن ملف `.env` لم يُستبدَل بـ`.env.example` أثناء التنزيل. قارن القيمة الحالية بتلك المحفوظة في مدير الأسرار. إن اختلفتا: استعِد قاعدة بيانات ‎PostgreSQL‎، أعِد المفتاح الأصلي إلى `.env`، وأعِد التشغيل بـ`docker compose up -d`.\n\n**خطأ «JavaScript heap out of memory» أثناء البناء** — المُجمِّع ‎Next.js‎ يعاني من نقص ‎RAM‎. الحل: `fallocate -l 2G \u002Fswapfile && mkswap \u002Fswapfile && swapon \u002Fswapfile`، ثم أعِد تشغيل `docker compose build`. على خادم ‎VPS‎ بسعة 2 غيغابايت، الـ‎swap‎ ضروري غالبًا للبناء الأول والتحديثات الكبرى. أزِل ملف الـ‎swap‎ بعد اكتمال البناء.\n\n**حلقة إعادة توجيه أو خطأ «Unable to find valid origin»** — `NEXT_PUBLIC_WEBAPP_URL` لا يطابق الرابط الفعلي. تحقق من أن هذا المتغير يساوي بالضبط `https:\u002F\u002Frdv.yourdomain.com` (بدون شرطة مائلة في النهاية، بالنطاق الصحيح وبروتوكول ‎HTTPS‎)، وأن الوكيل العكسي يُعيد توجيه رأس `Host` بصورة صحيحة، ثم أعِد التشغيل بـ`docker compose up -d --build` لإجبار إعادة البناء بالرابط الصحيح.\n\n**عمليات ترحيل ‎Prisma‎ متعلّقة عند بدء التشغيل** — إن أعادت الحاوية تشغيلها باستمرار مع أخطاء ترحيل، قد لا تكون قاعدة البيانات جاهزة بعد. انتظر بضع ثوانٍ وشغّل `docker compose restart calcom`. وإن استمرت المشكلة، تحقق من سجلات ‎PostgreSQL‎ بـ`docker compose logs db`.",{"type":104,"body":105},"tip","أتمِت نسخ قاعدة بيانات ‎PostgreSQL‎ احتياطيًا بمهمة ‎cron‎ يومية. مثال على الأمر المجدوَل: `docker exec cal-docker-db-1 pg_dump -U calcom calcom | gzip > \u002Fopt\u002Fbackup\u002Fcalcom-$(date +%Y%m%d-%H%M).sql.gz`. احتفظ بسبعة أيام على الأقل من النسخ الاحتياطية الدورية وأرسِلها إلى تخزين كائنات خارجي (‎S3‎-متوافق، ‎Backblaze B2‎): في حال فقدان الخادم ‎VPS‎، قاعدة بيانات ‎PostgreSQL‎ هي الجزء الوحيد غير القابل للاستعادة تلقائيًا في نسختك من ‎Cal.com‎.",{"type":38,"title":107,"body":108},"للمزيد","بمجرد تشغيل ‎Cal.com‎، ثمة خطوات لتعزيز التثبيت: تفعيل تنبيهات شهادات ‎SSL‎ لتوقّع انتهاء صلاحيتها، وإعداد مراقبة ‎HTTP‎ (‎Uptime Kuma‎، ‎Better Uptime‎) على `https:\u002F\u002Frdv.yourdomain.com\u002Fapi\u002Fhealth`، وتقييد منفذ الحاوية 3000 على `127.0.0.1` لمنع الوصول المباشر إليه. وللتثبيتات الجماعية، يمكن للوكيل العكسي خدمة عدة نسخ من ‎Cal.com‎ خلف نطاقات فرعية متمايزة من خادم ‎VPS‎ واحد — راجع \u003Ca href=\"\u002Fblog\u002Fdeployer-avec-coolify\">النشر باستخدام ‎Coolify‎\u003C\u002Fa> لإدارة متعددة الخدمات مبسَّطة. تغطّي وثائق ‎Cal.com‎ الرسمية أيضًا إعداد ‎SMTP‎ لرسائل التأكيد وتكامل ‎Stripe‎ للحجوزات المدفوعة.","استضف نظام حجز مواعيدك","يوفّر خادم ‎ServOrbit Cloud VPS‎ ذاكرة ‎RAM‎ و‎Docker‎ اللازمين لبناء ‎Cal.com‎، مع قالب ‎PostgreSQL‎ ووكيل عكسي جاهزين للإعداد. امنح عملاءك رابط حجز تحت نطاقك الخاص.","انشر على خادم Cloud VPS","\u002Fvps-cloud",[114,137,158],{"id":115,"slug":116,"slugs":117,"title":121,"excerpt":122,"readTime":123,"views":18,"isPinned":19,"noindex":19,"publishedAt":124,"updatedAt":125,"category":126,"categories":131,"featuredImage":30,"bgImage":31,"posterImage":133,"relatedSolution":134},41,"نشر-تطبيقاتك-باستخدام-coolify-على-vps",{"fr":118,"en":119,"ar":116,"es":120},"deployer-avec-coolify","deploy-your-applications-with-coolify-on-a-vps","desplegar-aplicaciones-con-coolify-en-un-vps","نشر تطبيقاتك باستخدام ‏Coolify على خادم ‏VPS","دليل شامل لنشر ‏Coolify على خادم ‏VPS: التثبيت، وإعداد ‏HTTPS، وربط ‏Git، ونشر أول تطبيق، وقواعد البيانات، والنسخ الاحتياطية، واستكشاف الأخطاء.",12,"2026-05-10T00:00:00+00:00","2026-10-31T01:54:10+00:00",{"id":127,"name":128,"slug":129,"color":130,"icon":129},3,"النشر","deploiement","bg-success\u002F10 text-success",[132],{"id":127,"name":128,"slug":129,"color":130,"icon":129},"\u002Fblog\u002Fcovers\u002Fdeployer-avec-coolify-poster.svg",{"categorySlug":135,"appSlug":136},"نشر-التطبيقات-وdevops","coolify",{"id":138,"slug":139,"slugs":140,"title":144,"excerpt":145,"readTime":146,"views":147,"isPinned":19,"noindex":19,"publishedAt":148,"updatedAt":149,"category":150,"categories":155,"featuredImage":30,"bgImage":31,"posterImage":157,"relatedSolution":30},116,"شهادات-ssl-مجانية-باستخدام-lets-encrypt-على-خادم-vps",{"fr":141,"en":142,"ar":139,"es":143},"certificats-ssl-lets-encrypt-vps","free-ssl-certificates-with-lets-encrypt-on-a-vps","certificados-ssl-gratis-con-lets-encrypt-en-un-vps","شهادات SSL مجانية باستخدام Let's Encrypt على خادم VPS","دليل شامل لـ Let's Encrypt على VPS: certbot nginx، wildcard عبر DNS-01، تجديد systemd، تصليب TLS، استكشاف أخطاء rate-limits ومقارنة certbot مقابل acme.sh مقابل Caddy.",8,0,"2026-02-24T00:00:00+00:00","2026-09-30T11:20:34+00:00",{"id":146,"name":151,"slug":152,"color":153,"icon":154},"الأمان والمراقبة","securite-monitoring","bg-rose-500\u002F10 text-rose-400","security",[156],{"id":146,"name":151,"slug":152,"color":153,"icon":154},"\u002Fblog\u002Fcovers\u002Fcertificats-ssl-lets-encrypt-vps-poster.svg",{"id":159,"slug":160,"slugs":161,"title":165,"excerpt":166,"readTime":146,"views":167,"isPinned":19,"noindex":19,"publishedAt":168,"updatedAt":169,"category":170,"categories":171,"featuredImage":30,"bgImage":31,"posterImage":173,"relatedSolution":30},228,"تصليب-الخادم-linux-الأولي",{"fr":162,"en":163,"ar":160,"es":164},"durcissement-serveur-linux-initial","initial-linux-server-hardening","hardening-inicial-servidor-linux","تصليب الخادم ‎Linux‎ الأولي","أنشئ مستخدم ‎sudo‎، وكوّن ‎SSH‎ بالمفاتيح، وفعّل ‎UFW‎ و‎fail2ban‎ على ‎Ubuntu‎ أو ‎Debian‎ في أقل من ساعة.",1,"2026-08-06T00:00:00+00:00","2026-10-20T23:18:07+00:00",{"id":146,"name":151,"slug":152,"color":153,"icon":154},[172],{"id":146,"name":151,"slug":152,"color":153,"icon":154},"\u002Fblog\u002Fcovers\u002Fdurcissement-serveur-linux-initial-poster.svg",true,1794270202643]