[{"data":1,"prerenderedAt":162},["ShallowReactive",2],{"seo-verification":3,"blog-استضافة-elasticsearch-على-خادم-vps-ma-ar":6,"promo-bar-likely":161},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"key":7,"data":8},"blog-استضافة-elasticsearch-على-خادم-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":100,"ctaBody":101,"ctaButton":102,"ctaUrl":103,"relatedPosts":104},69,"استضافة-elasticsearch-على-خادم-vps",{"fr":12,"en":13,"ar":10,"es":14},"heberger-elasticsearch-vps","hosting-elasticsearch-on-a-vps","alojar-elasticsearch-en-un-vps","استضافة Elasticsearch على VPS: الأمان واستكشاف الأخطاء","ثبّت وأمّن Elasticsearch على خادم VPS: متطلبات JVM بالأرقام، نشر Docker، xpack.security، ILM، لقطات S3 ومراقبة الكومة.",13,2,false,"2026-04-12T00:00:00+00:00","2026-09-08T22:00:01+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},6,"قواعد البيانات","bases-de-donnees","bg-teal-500\u002F10 text-teal-400","database",[29],{"id":23,"name":24,"slug":25,"color":26,"icon":27},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fheberger-elasticsearch-vps-poster.svg","يبقى Elasticsearch المرجعَ في البحث المتقدّم بالنص الكامل والتجميعات المتداخلة ومركزة السجلات على نطاق واسع. تفرض حلول السحاب المُدار رسومًا على الحجم المُفهرَس وحركة البيانات الصادرة؛ وعلى خادم VPS مُحجَّم بشكل مناسب، أنت من يتحكّم في الإصدار والإضافات والتكلفة. يشرح هذا الدليل النشر خطوة بخطوة عبر Docker، وإعدادات الأمان xpack، وتصلّب الشبكة، وإدارة دورة حياة الفهارس (ILM)، واللقطات التلقائية إلى S3، ومراقبة كومة JVM، وأكثر خمس أعطال شيوعًا عند التشغيل الأول.",[35,39,50,53,75,78,82,85,88,91,94,97],{"type":36,"title":37,"body":38},"h2","لماذا تختار استضافة Elasticsearch ذاتيًا على خادم VPS","يتألق Elasticsearch حيث لا يعود البحث البسيط كافيًا: تسجيل BM25 قابل للضبط، والمرادفات، والمحلّلات اللغوية المخصّصة (الفرنسية والعربية ICU)، والاستعلامات الجغرافية، وحزمة ELK الكاملة لمركزة سجلات تطبيقاتك. تصبح عروض Elastic Cloud وOpenSearch Service باهظة بسرعة بمجرد أن يتجاوز الحجم المُفهرَس بضعة غيغابايتات، مع إضافة رسوم البيانات الصادرة. وعلى خادم VPS الخاص بك، أنت من يقرّر الإصدار المُنشَر والإضافات المُفعَّلة ومدة الاحتفاظ بالبيانات وسياسة اللقطات. وهو أيضًا السبيل الوحيد للاحتفاظ بالبيانات الحساسة داخل بنيتك التحتية الخاصة، دون أي تبعية لطرف سحابي خارجي.\n\nعلى صعيد الترخيص، **عاد Elasticsearch مفتوح المصدر في أغسطس 2024**: منذ الإصدار 8.16، تُوزَّع الشفرة المصدرية بموجب ترخيص AGPLv3 (معتمد من OSI)، إلى جانب Elastic License وSSPL. الإصدارات الحالية الموصى بها هي **8.19.x** (الفرع 8 ذو الصيانة الطويلة) و**9.x** (الفرع الرئيسي منذ 2025).",{"type":40,"title":41,"items":42},"ul","ما الذي تكسبه باستضافة Elasticsearch ذاتيًا",[43,44,45,46,47,48,49],"بحث متقدّم بالنص الكامل: تسجيل BM25 والمرادفات ومحلّلات لغوية مخصّصة (الفرنسية والعربية ICU)","تجميعات وأوجه (facets) معقّدة للتجارة الإلكترونية أو ذكاء الأعمال أو مركزة السجلات","حزمة ELK كاملة (Logstash وBeats وKibana) دون رسوم برمجيات إضافية","تحكّم كامل في الإصدار والإضافات وسياسات دورة حياة الفهارس (ILM)","لا فوترة لكل حجم مُفهرَس ولا رسوم للبيانات الصادرة عبر الشبكة","لقطات تلقائية إلى تخزينك الكائني المتوافق مع S3 عبر SLM","البيانات الحساسة محفوظة داخل بنيتك التحتية الخاصة، تحت اختصاصك القضائي وحدك",{"type":36,"title":51,"body":52},"المتطلبات بالأرقام قبل تشغيل أول حاوية","**الحدّ الأدنى من ذاكرة RAM: 4 غيغابايت** لبيئة اختبار، **8 غيغابايت (2-4 vCPU)** لاستخدام إنتاجي خفيف، **16 غيغابايت** بمجرد إضافة Kibana أو فهرسة عدة ملايين من المستندات. المعامل الرئيسي هو كومة JVM: اضبط `-Xms` و`-Xmx` على **50% من ذاكرة RAM المتاحة، دون تجاوز 31 غيغابايت** (فوق ذلك، تنتقل JVM إلى وضع ضغط المؤشرات الأقل كفاءة؛ الحدّ الدقيق هو 31 غيغابايت مع G1GC، وليس 32). **اضبط دائمًا `-Xms` مساوية لـ `-Xmx`**: كومة مُخصَّصة بأقل من طاقتها عند الإقلاع ثم تمتد أثناء التشغيل تسبّب توقفات طويلة في GC.\n\nعلى مستوى الشبكة، يستخدم Elasticsearch منفذين: **9200** (HTTP، واجهة API REST) و**9300** (النقل بين العقد). **لا تعرض** المنفذ 9200 مباشرةً على الواجهة العامة — فهذا المصدر الأول للاختراق على الأنظمة غير المؤمَّنة. أما على مستوى التخزين، فـ**SSD NVMe موصى به**: يُجري Elasticsearch عمليات قراءة عشوائية كثيرة على شرائح Lucene. خطّط أيضًا لتثبيت Docker وDocker Compose، ونطاق فرعي `es.yourdomain.com` يشير إلى الخادم.",{"type":54,"title":55,"steps":56},"steps","النشر خطوة بخطوة",[57,60,63,66,69,72],{"title":58,"body":59},"تجهيز نواة Linux","قبل تشغيل الحاوية، طبّق ضبطَين إلزاميَّين على مستوى النظام. أولًا، ارفع حدّ مناطق الذاكرة المُعيَّنة: `sysctl -w vm.max_map_count=262144`. ثبّت هذا الإعداد بإضافة `vm.max_map_count=262144` إلى `\u002Fetc\u002Fsysctl.conf`. ثم عطّل التبديل (swap) على الخادم (`swapoff -a`)، أو اضبط `bootstrap.memory_lock=true` في `elasticsearch.yml` لمنع JVM من الترحيل إلى القرص.",{"title":61,"body":62},"كتابة ملف docker-compose.yml","أنشئ دليل عمل، ثم ملف `docker-compose.yml` يحتوي على خدمة Elasticsearch: الصورة `docker.elastic.co\u002Felasticsearch\u002Felasticsearch:8.19.4`، ومتغير البيئة `ES_JAVA_OPTS=-Xms4g -Xmx4g`، وحجم تخزين مُسمَّى مثبَّت على `\u002Fusr\u002Fshare\u002Felasticsearch\u002Fdata`، والمنفذ **9200 مربوط بـ `127.0.0.1` فقط**. أضف أيضًا `discovery.type=single-node` لنشر أحادي العقدة.",{"title":64,"body":65},"تفعيل xpack.security وتشغيل الخدمة","في `elasticsearch.yml`، تحقّق من أن `xpack.security.enabled: true` و`xpack.security.http.ssl.enabled: true` مُفعَّلان. منذ الإصدار 8.x، يكون الأمان مُفعَّلًا افتراضيًا. شغّل المجموعة: `docker compose up -d`. عند التشغيل الأول، انتظر من 2 إلى 3 دقائق. راجع السجلات: `docker compose logs -f elasticsearch`.",{"title":67,"body":68},"إنشاء المستخدمين واسترجاع كلمة مرور elastic","بعد تشغيل الحاوية، أعد تعيين كلمة مرور المستخدم المتميّز `elastic`: `docker exec -it elasticsearch bin\u002Felasticsearch-reset-password -u elastic`. احتفظ بهذه الكلمة في مدير أسرار. ثم أنشئ مستخدم النظام `kibana_system` إن أضفت Kibana. يجب ألّا يُستخدم هذا الحساب في استعلامات التطبيقات.",{"title":70,"body":71},"التحقّق من المجموعة باستخدام curl","اختبر الاتصال من الخادم: `curl -u elastic:\u003Cكلمة_المرور> https:\u002F\u002Flocalhost:9200 --cacert \u002Fusr\u002Fshare\u002Felasticsearch\u002Fconfig\u002Fcerts\u002Fhttp_ca.crt`. استجابة JSON تحتوي على `cluster_name` و`status: green` أو `yellow` تؤكّد أن المجموعة تعمل. الحالة `yellow` على مجموعة أحادية العقدة طبيعية.",{"title":73,"body":74},"الكشف عبر وكيل عكسي HTTPS مع Nginx","ثبّت Nginx على الخادم وعيّن مضيفًا افتراضيًا لـ `es.yourdomain.com`. يُعيد الوكيل العكسي توجيه الطلبات إلى `https:\u002F\u002F127.0.0.1:9200` ويُقدّم شهادة Let's Encrypt للعميل. أضف مصادقة أساسية Nginx كطبقة حماية إضافية.",{"type":36,"title":76,"body":77},"أمان xpack: TLS والأدوار وعزل الشبكة","يغطّي أمان xpack في Elasticsearch ثلاث طبقات. **TLS بين العقد** (`xpack.security.transport.ssl.enabled: true`) يشفّر حركة البيانات بين العقد على المنفذ 9300. **TLS على HTTP** (`xpack.security.http.ssl.enabled: true`) يشفّر المنفذ 9200؛ بدونه تنتقل كلمات المرور بنصّ واضح. **التحكّم في الأدوار**: خصّص الدور الأدنى المطلوب لكل تطبيق. تجنّب استخدام حساب `elastic` في الإنتاج. معامل `network.host` الافتراضي هو `_local_` (loopback فقط) — لا تُغيّره إلى `0.0.0.0` دون تهيئة الأمان.",{"type":79,"title":80,"body":81},"tip","تصليب الوصول إلى الشبكة باستخدام UFW","بعد التحقّق من أن Elasticsearch يستمع على `127.0.0.1` فقط، أغلق جدار الحماية: `ufw deny 9200\u002Ftcp` و`ufw deny 9300\u002Ftcp`. يجب أن يكون الوكيل العكسي Nginx (المنفذ 443) هو الوحيد المتاح. إن تواصلت عدة عقد، اسمح صراحةً لعناوين IP العقد على المنفذ 9300. يمنحك الأمر `ufw status` بعد الضبط صورة دقيقة عمّا هو مفتوح.",{"type":36,"title":83,"body":84},"إدارة دورة حياة الفهارس (ILM): التحكّم في عمر البيانات","تُؤتمت ILM دورة حياة فهارسك بحسب العمر أو الحجم، مانعةً إشباع القرص وحافظةً على سرعة الاستعلامات على البيانات الحديثة. تتضمّن سياسة ILM النموذجية أربع مراحل:\n\n**المرحلة الساخنة (hot)**: يستقبل الفهرس البيانات الجديدة. اضبط rollover تلقائيًا عند بلوغ حجم معيّن (`max_size: 50gb`) أو عمر معيّن (`max_age: 7d`). تعيش الفهارس الساخنة على أسرع أقراص NVMe لديك.\n\n**المرحلة الدافئة (warm)**: الفهرس للقراءة فقط. يُقلّص Elasticsearch النسخ المتماثلة ويُجري force-merge لشرائح Lucene — مما يقلّل الذاكرة ويُسرّع القراءات.\n\n**المرحلة الباردة (cold)**: بيانات نادرة الاستعلام. تنخفض النسخ إلى 0 ويمكن تركيب الفهرس من تخزين كائني (searchable snapshots).\n\n**مرحلة الحذف (delete)**: حذف تلقائي بعد فترة الاحتفاظ المحدّدة (مثال: 90 يومًا للسجلات).\n\n```bash\nPUT _ilm\u002Fpolicy\u002Flogs-policy\n{\n  \"policy\": {\n    \"phases\": {\n      \"hot\":  { \"actions\": { \"rollover\": { \"max_age\": \"7d\", \"max_size\": \"50gb\" } } },\n      \"warm\": { \"min_age\": \"7d\",  \"actions\": { \"forcemerge\": { \"max_num_segments\": 1 }, \"shrink\": { \"number_of_shards\": 1 } } },\n      \"cold\": { \"min_age\": \"30d\", \"actions\": { \"freeze\": {} } },\n      \"delete\": { \"min_age\": \"90d\", \"actions\": { \"delete\": {} } }\n    }\n  }\n}\n```\n\nعلى خادم VPS تكون فيه مساحة القرص محدودة، هذا ما يمنع سجلاتك من إشباع قرص SSD ويُبقي الاستعلامات سريعة على البيانات الساخنة.",{"type":36,"title":86,"body":87},"اللقطات إلى S3: النسخ الاحتياطي والتعافي من الكوارث","تتيح لك لقطات Elasticsearch نسخ الحالة الكاملة لفهارسك احتياطيًا نحو تخزين كائني متوافق مع S3. ادمجها مع **سياسة دورة حياة اللقطات (SLM)** لأتمتة النسخ الاحتياطية والاحتفاظ بها دون تدخّل يدوي.\n\n**1. تثبيت إضافة S3 وإعداد المستودع:**\n\n```bash\ndocker exec -it elasticsearch bin\u002Felasticsearch-plugin install repository-s3\n```\n\nأضف مفاتيح الوصول إلى keystore Elasticsearch (أبدًا في نصّ واضح):\n\n```bash\ndocker exec -it elasticsearch bin\u002Felasticsearch-keystore add s3.client.default.access_key\ndocker exec -it elasticsearch bin\u002Felasticsearch-keystore add s3.client.default.secret_key\n```\n\nسجّل المستودع:\n\n```bash\nPUT _snapshot\u002Fs3-backup\n{\n  \"type\": \"s3\",\n  \"settings\": {\n    \"bucket\": \"my-elasticsearch-bucket\",\n    \"region\": \"eu-west-1\",\n    \"base_path\": \"snapshots\u002Fproduction\"\n  }\n}\n```\n\n**2. إنشاء سياسة دورة حياة اللقطات:**\n\n```bash\nPUT _slm\u002Fpolicy\u002Fdaily-snapshots\n{\n  \"schedule\": \"0 30 2 * * ?\",\n  \"name\": \"\u003Cdaily-snap-{now\u002Fd}>\",\n  \"repository\": \"s3-backup\",\n  \"config\": { \"indices\": [\"*\"], \"ignore_unavailable\": true },\n  \"retention\": { \"expire_after\": \"30d\", \"min_count\": 5, \"max_count\": 50 }\n}\n```\n\nتُطلق هذه السياسة لقطة يوميًا عند 2:30 صباحًا وتحذف ما هو أقدم من 30 يومًا مع الإبقاء على 5 نسخ كحدٍّ أدنى. اختبر الاستعادة من بيئة التطوير قبل أن تحتاجها.",{"type":36,"title":89,"body":90},"مراقبة كومة JVM: اكتشاف OOM قبل وقوعه","على خادم VPS، يمكن لـ OOM Killer في نواة Linux إنهاء عملية Elasticsearch دون تحذير. المراقبة الاستباقية لكومة JVM تمنع 80% من حوادث الإنتاج.\n\n**المقاييس التي يجب مراقبتها** عبر واجهة API `_nodes\u002Fstats`:\n\n- **`jvm.mem.heap_used_percent`**: أطلق تنبيهًا فوق 75% في المتوسط، وتنبيهًا حرجًا فوق 85% على مدى 5 دقائق. الإشباع المتواصل عند 90%+ يشير إلى تسرّب ذاكرة أو كومة غير كافية الحجم.\n- **`jvm.gc.collectors.old.collection_count`** و**`collection_time_in_millis`**: ارتفاع سريع في عدد GC old-gen وأوقات تتجاوز 2 ثانية للمجموعة الواحدة يعني أن JVM تقضي وقتًا أطول في التجميع من وقتها في العمل.\n\n**القواعد التشغيلية:**\n\n1. إن تجاوز `heap_used_percent` نسبة 75% في الوضع المستقر، زِد الكومة (أو RAM الخادم) قبل مواجهة أول OOM.\n2. لا تزد الكومة فوق 31 غيغابايت — بعد هذا الحدّ تُعطّل JVM ضغط المؤشرات (compressed oops) وتستهلك ذاكرة أكثر لكل كائن.\n3. تحقّق بانتظام من أن `bootstrap.memory_lock: true` مُفعَّل: `GET _nodes?filter_path=**.mlockall` — قيمة `false` تعني أن التبديل (swap) لا يزال نشطًا.",{"type":36,"title":92,"body":93},"Kibana: استكشاف الفهارس ولوحات المعلومات (اختياري)","Kibana هي الواجهة الرسومية الرسمية لـ Elasticsearch لاستكشاف الفهارس وبناء لوحات المعلومات وضبط التنبيهات. ليست إلزامية للاستخدام البرمجي، لكنها تُبسّط إدارة ILM وSLM.\n\nأضف Kibana في ملف Compose نفسه:\n\n```bash\nkibana:\n  image: docker.elastic.co\u002Fkibana\u002Fkibana:8.19.4\n  environment:\n    - ELASTICSEARCH_HOSTS=https:\u002F\u002Felasticsearch:9200\n    - ELASTICSEARCH_USERNAME=kibana_system\n    - ELASTICSEARCH_PASSWORD=\u003Cكلمة_مرور_kibana_system>\n    - ELASTICSEARCH_SSL_CERTIFICATEAUTHORITIES=\u002Fusr\u002Fshare\u002Fkibana\u002Fconfig\u002Fcerts\u002Fhttp_ca.crt\n  volumes:\n    - \u002Fمسار\u002Fإلى\u002Fhttp_ca.crt:\u002Fusr\u002Fshare\u002Fkibana\u002Fconfig\u002Fcerts\u002Fhttp_ca.crt:ro\n  depends_on:\n    - elasticsearch\n```\n\naعرض Kibana خلف وكيل Nginx على `kibana.yourdomain.com` مع مصادقة. **لا تعرض Kibana مباشرةً على الإنترنت دون مصادقة**: فهي تمنح وصولًا كاملًا لإدارة المجموعة. من Kibana، ادخل إلى **Stack Management → Index Lifecycle Policies** و**Snapshot and Restore** لإدارة ILM وSLM بشكل مرئي.",{"type":36,"title":95,"body":96},"استكشاف الأخطاء: الأعطال الخمسة الأكثر شيوعًا","**1. OOM Killer يوقف عملية Elasticsearch.** العرَض: تتوقف الحاوية دون رسالة خطأ، ويكشف `dmesg | grep -i killed` عن `Killed process`. الحلّ: قلّص `-Xmx` إلى 50% من ذاكرة RAM المتاحة (بحدّ أقصى 31 غيغابايت)، وراقب الاستهلاك بـ `docker stats`.\n\n**2. `max_map_count` منخفض جدًا.** العرَض: يرفض Elasticsearch الإقلاع برسالة `max virtual memory areas vm.max_map_count [65530] is too low`. الحلّ: `sysctl -w vm.max_map_count=262144` ثم أضف `vm.max_map_count=262144` إلى `\u002Fetc\u002Fsysctl.conf`.\n\n**3. `Permission denied` على `\u002Fusr\u002Fshare\u002Felasticsearch\u002Fdata`.** العرَض: رسالة `AccessDeniedException` في السجلات. السبب: دليل المضيف يملكه `root` لكن الحاوية تعمل بالمعرّف UID `1000`. الحلّ: `chown -R 1000:1000 \u003Cمسار_حجم_المضيف>`.\n\n**4. رفض الاتصال على المنفذ 9200.** العرَض: `curl localhost:9200` يُعيد `Connection refused`. السبب الشائع: `network.host` مُضبوط بشكل خاطئ. اترك `network.host` بقيمته الافتراضية (`_local_`) وادخل عبر `127.0.0.1:9200`. تحقّق أيضًا من أن الحاوية تعمل: `docker ps`.\n\n**5. بطء الإقلاع: طبيعي عند التهيئة الأولى.** العرَض: تستغرق المجموعة من 2 إلى 3 دقائق للاستجابة. هذا ليس عطلًا. انتظر ظهور `Cluster health status changed from [RED] to [GREEN]` في السجلات.",{"type":36,"title":98,"body":99},"هل تريد بديلًا مفتوح المصدر بالكامل؟","**OpenSearch** هو التفريع المجتمعي من Elasticsearch، وُلد عام 2021 حين غيّرت شركة Elastic ترخيصها إلى SSPL. يحافظ OpenSearch على ترخيص Apache 2.0 ويتضمّن ميزات أمان متقدّمة في توزيعته المجانية. منذ أن أعادت Elastic إدراج AGPLv3 في أغسطس 2024 مع الإصدار 8.16، كلا المشروعَين بات تحت ترخيص معتمد من OSI — يعتمد الاختيار الآن على النظام البيئي أكثر من اعتباره قيدًا على الترخيص. يتّبع نشر Docker نفس النمط باستخدام الصورة `opensearchproject\u002Fopensearch`.","خادم VPS مصمّم لأجل Elasticsearch","ذاكرة RAM سخية، وقرص SSD، وإعدادات نواة قابلة للتعديل منذ اليوم الأول: يمنحك خادم VPS Cloud من ServOrbit الأساس الذي تتطلبه آلة JVM لـ Elasticsearch في الإنتاج.","هيّئ خادمي VPS Cloud","\u002Fvps-cloud",[105,125,143],{"id":106,"slug":107,"slugs":108,"title":112,"excerpt":113,"readTime":114,"views":115,"isPinned":19,"noindex":19,"publishedAt":116,"updatedAt":117,"category":118,"categories":119,"featuredImage":30,"bgImage":31,"posterImage":121,"relatedSolution":122},56,"postgresql-على-خادم-vps-قاعدة-بيانات-موثوقة-ومتحكم-بها",{"fr":109,"en":110,"ar":107,"es":111},"heberger-postgresql-vps","postgresql-on-a-vps-a-reliable-and-controlled-database","alojar-postgresql-en-un-vps","‎PostgreSQL على خادم VPS: قاعدة بيانات موثوقة ومتحكَّم بها","‎استضف PostgreSQL على VPS: إعداد الإنتاج، نسخ pgBackRest، HA بالبث، مقارنة RDS\u002FSupabase\u002FNeon واستكشاف أخطاء OOM.",9,1,"2026-04-25T00:00:00+00:00","2026-10-21T15:21:37+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[120],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fheberger-postgresql-vps-poster.svg",{"categorySlug":123,"appSlug":124},"قواعد-البيانات","postgresql-stack",{"id":126,"slug":127,"slugs":128,"title":132,"excerpt":133,"readTime":114,"views":134,"isPinned":19,"noindex":19,"publishedAt":135,"updatedAt":136,"category":137,"categories":138,"featuredImage":30,"bgImage":31,"posterImage":140,"relatedSolution":141},57,"استضافة-mysql-على-خادم-vps",{"fr":129,"en":130,"ar":127,"es":131},"heberger-mysql-vps","hosting-mysql-on-a-vps","alojar-mysql-en-un-vps","استضافة MySQL على خادم VPS: دليل شامل","ثبّت ‎MySQL 8.4 LTS‎ على خادم ‎VPS‎: المتطلبات، التأمين، أداء ‎InnoDB‎، الوصول عن بُعد الآمن، النسخ الاحتياطية التلقائية، واستكشاف الأخطاء.",0,"2026-04-24T00:00:00+00:00","2026-11-09T20:55:18+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[139],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fheberger-mysql-vps-poster.svg",{"categorySlug":123,"appSlug":142},"mysql-stack",{"id":144,"slug":145,"slugs":146,"title":150,"excerpt":151,"readTime":152,"views":134,"isPinned":19,"noindex":19,"publishedAt":153,"updatedAt":154,"category":155,"categories":156,"featuredImage":30,"bgImage":31,"posterImage":158,"relatedSolution":159},58,"استضافة-redis-على-خادم-vps",{"fr":147,"en":148,"ar":145,"es":149},"heberger-redis-vps","hosting-redis-on-a-vps","alojar-redis-en-un-vps","استضافة ‎Redis‎ على خادم ‎VPS‎: الدليل الشامل","انشر ‎Redis‎ على خادم ‎VPS‎ السحابي: متطلبات ‎RAM‎ و‎CPU‎، الأمان (‎ACL‎ و‎TLS‎)، استمرارية ‎RDB\u002FAOF‎، استكشاف الأخطاء والتوافر العالي.",10,"2026-04-23T00:00:00+00:00","2026-09-08T21:59:59+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[157],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fheberger-redis-vps-poster.svg",{"categorySlug":123,"appSlug":160},"redis-stack",true,1794270219487]