[{"data":1,"prerenderedAt":197},["ShallowReactive",2],{"seo-verification":3,"blog-استضافة-freshrss-على-خادمك-الافتراضي-الخاص-vps-ma-ar":6,"promo-bar-likely":196},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"key":7,"data":8},"blog-استضافة-freshrss-على-خادمك-الافتراضي-الخاص-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":137,"ctaBody":138,"ctaButton":139,"ctaUrl":140,"relatedPosts":141},86,"استضافة-freshrss-على-خادمك-الافتراضي-الخاص-vps",{"fr":12,"en":13,"ar":10,"es":14},"heberger-freshrss","host-freshrss-on-your-own-vps","alojar-freshrss-en-un-vps","استضافة FreshRSS على خادمك الافتراضي الخاص (VPS)","استعِد السيطرة على متابعتك الإخبارية: انشر FreshRSS على خادمك الافتراضي (VPS) مع Docker وSSL ووصول من الجوال. دليل استضافة ذاتية كامل.",10,2,false,"2026-03-26T00:00:00+00:00","2026-10-13T14:10:29+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-freshrss-poster.svg",{"categorySlug":25,"appSlug":34},"freshrss","مجمِّعات RSS التجارية تُغلَق أو تغيّر أسعارها أو تبيع اهتماماتك. يقلب FreshRSS المنطق: قارئ خلاصات خفيف متعدد المستخدمين تستضيفه بنفسك. إليك كيفية نشره بشكل نظيف على خادم VPS، مع قاعدة بيانات ووكيل عكسي وشهادة HTTPS.",[37,41,51,54,85,88,91,94,128,131,134],{"type":38,"title":39,"body":40},"h2","لماذا تستضيف ‎FreshRSS‎ ذاتيًا على خادم ‎VPS‎","FreshRSS مجمِّع خلاصات RSS\u002FAtom مكتوب بلغة PHP، مصمَّم ليكون خفيف الموارد مع إدارة آلاف المقالات. تحلّ الاستضافة الذاتية على خادم VPS ثلاث مشكلات لا تعالجها الخدمات المغلقة: الاستدامة (لا تختفي متابعتك بين ليلة وضحاها)، والخصوصية (لا أحد يحلّل اشتراكاتك)، والحداثة (تحدّد أنت وتيرة التحديث عبر cron، دون حصة مفروضة). خادم VPS، خلافًا للاستضافة المشتركة، يمنحك وصولاً كاملاً عبر SSH وحقّ تشغيل حاوية Docker وجدولة المهام — وهو بالضبط ما يحتاجه FreshRSS لتحديث الخلاصات في الخلفية.",{"type":42,"title":43,"items":44},"ul","فوائد ملموسة لـ‎FreshRSS‎ المُستضاف ذاتيًا",[45,46,47,48,49,50],"واجهة برمجية أصلية متوافقة مع ‎Fever‎ و‎Google Reader‎: زامِن مع ‎Reeder‎ أو ‎FeedMe‎ أو ‎Fluent Reader‎ على الجوال.","امتداد ‎GReader‎ \u002F الكشط (scraping): استرجع المحتوى الكامل للمقالات المبتورة بفضل مرشّحات ‎XPath‎.","متعدد المستخدمين مع حصص لكل حساب: مثالي لمشاركة نسخة داخل وكالة.","بصمة ذاكرة ضئيلة (200 إلى 300 ميغابايت): يعمل على أصغر خادم ‎VPS‎ دون تعثّر.","تحديث مُدار بـ‎cron‎: أنت تقرّر ما إذا كانت الخلاصات تُحدَّث كل 5 دقائق أو كل ساعة.","نسخ احتياطي بسيط: قاعدة بيانات ‎SQLite‎\u002F‎MySQL‎ ومجلد بيانات يكفيان لاستعادة كل شيء.",{"type":38,"title":52,"body":53},"المتطلبات التقنية","FreshRSS من أكثر تطبيقات الاستضافة الذاتية اقتصادًا في الموارد. احسب 1 vCPU و1 غيغابايت من RAM لنسخة شخصية بعدد قليل من المستخدمين؛ ويكفي 10 غيغابايت من القرص بسعة كبيرة، إذ يشغل معظمه سجلّ المقالات. على الجانب البرمجي: Docker وإضافة Docker Compose مثبّتتان على الخادم VPS، واسم نطاق (أو نطاق فرعي من نوع `rss.yourdomain.com`) موجَّه بسجل A إلى عنوان IP الخادم، ومنفذ 80\u002F443 مفتوح للوكيل العكسي. لا حاجة لتثبيت PHP على المضيف: تتضمّن الصورة الرسمية `freshrss\u002Ffreshrss` كل شيء.",{"type":55,"title":56,"steps":57},"steps","نشر ‎FreshRSS‎ خطوة بخطوة",[58,61,64,67,70,73,76,79,82],{"title":59,"body":60},"تجهيز الخادم ‎VPS‎ و‎Docker‎","اتّصل عبر SSH، وحدّث النظام (`apt update && apt upgrade -y`)، ثم ثبّت Docker: `curl -fsSL https:\u002F\u002Fget.docker.com | sh`. أضف مستخدمك إلى مجموعة docker: `usermod -aG docker $USER`. تحقّق بـ`docker compose version`. أنشئ مجلد المشروع: `mkdir -p \u002Fopt\u002Ffreshrss && cd \u002Fopt\u002Ffreshrss`.",{"title":62,"body":63},"كتابة ملف ‎docker-compose.yml‎","أنشئ الملف `docker-compose.yml` بالمحتوى التالي:\n\n```yaml\nservices:\n  freshrss:\n    image: freshrss\u002Ffreshrss:latest\n    container_name: freshrss\n    restart: unless-stopped\n    environment:\n      CRON_MIN: \"*\u002F20\"\n      TZ: \"Africa\u002FCasablanca\"\n    volumes:\n      - .\u002Fdata:\u002Fvar\u002Fwww\u002FFreshRSS\u002Fdata\n      - .\u002Fextensions:\u002Fvar\u002Fwww\u002FFreshRSS\u002Fextensions\n    ports:\n      - \"127.0.0.1:8080:80\"\n```\n\nالمنفذ مرتبط بـ`127.0.0.1` فقط: الوكيل العكسي المحلي وحده يمكنه الوصول إليه.",{"title":65,"body":66},"تهيئة ‎nginx‎ كوكيل عكسي","ثبّت nginx: `apt install -y nginx`. أنشئ الملف `\u002Fetc\u002Fnginx\u002Fsites-available\u002Ffreshrss`:\n\n```nginx\nserver {\n    listen 80;\n    server_name rss.yourdomain.com;\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فعّل الـvhost: `ln -s \u002Fetc\u002Fnginx\u002Fsites-available\u002Ffreshrss \u002Fetc\u002Fnginx\u002Fsites-enabled\u002F && nginx -t && systemctl reload nginx`.",{"title":68,"body":69},"الحصول على شهادة ‎TLS‎ عبر ‎Certbot‎","ثبّت Certbot وإضافة nginx: `apt install -y certbot python3-certbot-nginx`. أصدر الشهادة: `certbot --nginx -d rss.yourdomain.com`. يعدّل Certbot تلقائيًا وضع vhost الـnginx للاستماع على المنفذ 443 وإعادة توجيه HTTP إلى HTTPS. يُمكَّن التجديد التلقائي افتراضيًا عبر مؤقت systemd الخاص بـcertbot.",{"title":71,"body":72},"تشغيل الحاوية","شغّل المكدّس من `\u002Fopt\u002Ffreshrss`: `docker compose up -d`. تابِع التهيئة: `docker compose logs -f`. تطبّق الحاوية عمليات الترحيل وتنشئ شجرة البيانات عند التشغيل الأول. تحقّق بعد ذلك من أن FreshRSS يستجيب: `curl -I https:\u002F\u002Frss.yourdomain.com`.",{"title":74,"body":75},"إكمال التثبيت عبر الويب","افتح `https:\u002F\u002Frss.yourdomain.com` في متصفحك. يطلب منك المساعد اختيار خلفية قاعدة البيانات: حدّد **SQLite** للاستخدام الشخصي (ملف واحد، لا خدمة للإدارة)، أو **MySQL** إذا كان متوقعًا عشرات المستخدمين. أنشئ حساب المسؤول بكلمة مرور قوية.",{"title":77,"body":78},"تفعيل الواجهة البرمجية (‎API‎)","انتقل إلى **ملف التعريف ← إدارة API**. اختر «تفعيل GReader\u002FFever API» وعيّن كلمة مرور API منفصلة عن كلمة مرورك الرئيسية. لاحظ عنوان URL الأساسي لـAPI: `https:\u002F\u002Frss.yourdomain.com\u002Fapi\u002Fgreader.php`.",{"title":80,"body":81},"استيراد ملف ‎OPML‎","صدّر اشتراكاتك من قارئك القديم (Feedly، Inoreader…) بصيغة OPML. في FreshRSS، انتقل إلى **اشتراكات ← استيراد\u002Fتصدير ← استيراد ملف OPML**. تُعاد إنشاء فئاتك وخلاصاتك في ثوانٍ. تحقّق من أول تحديث يدوي: `docker compose exec freshrss php .\u002Fcli\u002Factualize.php`.",{"title":83,"body":84},"التحقق من ‎cron‎ التلقائي","تُهيّئ المتغيّر `CRON_MIN=*\u002F20` الـcron الداخلي للحاوية لتحديث جميع الخلاصات كل 20 دقيقة. تأكد من تشغيله: `docker compose exec freshrss crontab -l`. إذا كانت النتيجة فارغة، أضف `CRON_MIN: \"*\u002F20\"` تحت `environment:` وأعد إنشاء الحاوية.",{"type":86,"body":87},"tip","بالنسبة للمواقع التي تنشر مقتطفًا فقط في خلاصتها، ثبّت الامتداد الرسمي «FreshRSS Content Selector»: اضبط محدِّد CSS (مثل `article.post-content`) لكل اشتراك، وسيجلب FreshRSS النص الكامل عند كل تحديث. ادمجه مع امتداد المرشّحات لإخفاء المقالات المموَّلة المكتشَفة بالكلمة المفتاحية تلقائيًا.",{"type":38,"title":89,"body":90},"الإعداد المتقدم لـ‎FreshRSS‎","بمجرد تشغيل النسخة الأساسية، تحوّل ثلاثة محاور تحسينية FreshRSS من قارئ بسيط إلى أداة مراقبة احترافية:\n\n**الامتدادات: RSS-Bridge وFullTextRss.** انسخ الامتداد إلى `\u002Fopt\u002Ffreshrss\u002Fextensions\u002F`، ثم فعّله في قسم **الامتدادات** بالواجهة. يُولِّد RSS-Bridge خلاصة RSS للمواقع التي لا توفرها (Twitter\u002FX العام، Instagram، LinkedIn). تُكمل FullTextRss المقالات المبتورة بواسطة قواعد مواقع محددة مسبقًا — أكثر من 2000 موقع مُهيَّأة بالفعل في قاعدة القواعد المجتمعية.\n\n**وتيرة التحديث.** تناسب القيمة `CRON_MIN=*\u002F20` معظم احتياجات المراقبة. للمصادر الحرجة (تنبيهات الأمان، أسعار الأسهم)، انزل إلى `*\u002F5`. لتقليل الحمل على خادمك مع كثير من الاشتراكات غير النشطة، ارتفع إلى `*\u002F60`.\n\n**SQLite مقابل MySQL.** يكفي SQLite لبضع مئات الآلاف من المقالات وعدد قليل من المستخدمين. عند تجاوز 5 مستخدمين متزامنين أو 500,000 مقال، يوفر MySQL أداءً أفضل. الترحيل من SQLite إلى MySQL ممكن عبر أداة CLI `convert-db.php` المضمّنة في الحاوية.",{"type":38,"title":92,"body":93},"واجهة ‎FreshRSS‎ البرمجية لعملاء الذكاء الاصطناعي والأتمتة","FreshRSS من المجمِّعات النادرة التي تطبّق واجهتين برمجيتين قياسيتين: **واجهة Google Reader** (`\u002Fapi\u002Fgreader.php`) و**واجهة Fever** (`\u002Fapi\u002Ffever.php`). هذه الواجهات الموثّقة علنيًا تُتيح التكامل السلس مع عشرات أدوات الأتمتة.\n\n**تكامل n8n.** في سير عمل n8n، استخدم عقدة HTTP Request مع مصادقة Basic (بيانات اعتماد API الخاصة بـFreshRSS). استدعِ نقطة نهاية GReader لجلب المقالات غير المقروءة الجديدة، ثم سلسل مع عقدة OpenAI لتلخيص كل مقالة وإرسال الملخص إلى Slack أو بريد إلكتروني.\n\n**تكامل Make (سابقًا Integromat).** يُتيح وحدة HTTP في Make نفس استدعاءات REST. سيناريو نموذجي: كل ساعة، جلب المقالات المميّزة بنجمة، إثراؤها بنموذج لغوي كبير عبر webhook، ودفعها إلى Notion أو Airtable لبناء قاعدة معرفة منظَّمة.\n\n**عملاء الذكاء الاصطناعي.** يمكن لأطر العمل مثل LangChain أو LlamaIndex الاستعلام مباشرةً عن واجهة FreshRSS البرمجية لتغذية خط أنابيب RAG على مراقبتك الشخصية. تصبح نسختك مصدر بيانات خاصًا ومنظَّمًا وحديثًا، بعيدًا عن النماذج العامة.",{"type":95,"title":96,"rows":97,"headers":123},"comparison","‎FreshRSS‎ مقابل ‎Miniflux‎ مقابل ‎Tiny Tiny RSS‎",[98,103,108,113,118],[99,100,101,102],"اللغة \u002F المكدّس","PHP + SQLite\u002FMySQL","Go (ثنائي واحد)","PHP + PostgreSQL",[104,105,106,107],"الذاكرة العشوائية الدنيا","~50 ميغابايت (بدون Docker)","~20 ميغابايت","~100 ميغابايت",[109,110,111,112],"الواجهة البرمجية القياسية","Google Reader + Fever","Miniflux REST + Fever","Google Reader (إضافة)",[114,115,116,117],"الامتدادات \u002F الإضافات","غنية (أكثر من 30 رسمية)","محدودة (مرشّحات أصلية)","إضافات طرف ثالث كثيرة",[119,120,121,122],"الرخصة","AGPL-3.0","Apache-2.0","GPL-3.0",[124,125,126,127],"المعيار","FreshRSS","Miniflux","Tiny Tiny RSS",{"type":38,"title":129,"body":130},"النسخ الاحتياطي وترحيل ‎FreshRSS‎","من مزايا الاستضافة الذاتية السيطرة الكاملة على بياناتك. مستويان من النسخ الاحتياطي يغطيان جميع السيناريوهات:\n\n**تصدير OPML (الاشتراكات).** من **اشتراكات ← استيراد\u002Fتصدير ← تصدير OPML**، تُنشئ ملف XML يحمل جميع خلاصاتك وفئاتك. أتمتِ ذلك عبر crontab: `0 3 * * * docker exec freshrss php \u002Fvar\u002Fwww\u002FFreshRSS\u002Fcli\u002Fexport-opml-file.php > \u002Fopt\u002Fbackups\u002Ffreshrss-opml-$(date +%F).xml`.\n\n**نسخ احتياطي كامل (قاعدة البيانات + البيانات).** للاحتفاظ بسجل القراءة والنجوم، انسخ وحدة Docker بالكامل: `rsync -a \u002Fopt\u002Ffreshrss\u002Fdata\u002F \u002Fopt\u002Fbackups\u002Ffreshrss-data-$(date +%F)\u002F`.\n\n**الترحيل بين خوادم VPS.** العملية خطية: (1) أوقف الحاوية المصدر (`docker compose stop`)؛ (2) انسخ مجلد `data\u002F` إلى الخادم الجديد عبر rsync أو scp؛ (3) انشر نفس `docker-compose.yml` على الخادم الجديد وابدأ التشغيل؛ (4) حدّث سجل DNS A إلى عنوان IP الجديد. الوقت الإجمالي لنسخة شخصية: أقل من 10 دقائق، دون فقدان أي بيانات.",{"type":38,"title":132,"body":133},"استكشاف الأخطاء: 4 أخطاء شائعة","**1. Cron غير نشط — الخلاصات لا تتحدث.** العَرَض: يبقى عمود «آخر تحديث» ثابتًا. تحقّق أولاً من تشغيل cron الداخلي: `docker compose exec freshrss crontab -l`. إذا كانت النتيجة فارغة، أضف `CRON_MIN: \"*\u002F20\"` تحت `environment:` وأعد إنشاء الحاوية.\n\n**2. خلاصة لا تتحدث أبدًا رغم نشاط cron.** السبب الأكثر شيوعًا: الخلاصة ترجع باستمرار خطأ HTTP 429 (تحديد المعدل) أو 403. تحقّق في **اشتراكات ← إدارة ← آخر خطأ**. لموقع يحجب الطلبات دون User-Agent، أضف User-Agent صريحًا في الإعدادات المتقدمة للخلاصة.\n\n**3. خطأ SSL «certificate verify failed».** يحدث حين تحاول الحاوية الوصول إلى خلاصة HTTPS بشهادة موقَّعة ذاتيًا أو منتهية الصلاحية. الخيارات: تعطيل التحقق من SSL لهذه الخلاصة تحديدًا، أو تحديث قاعدة بيانات CA للحاوية (`docker compose exec freshrss update-ca-certificates`).\n\n**4. امتداد FullTextRss صامت — المحتوى لا يزال مبتورًا.** تحقّق من تفعيل الامتداد في **الامتدادات** وصحّة عنوان URL لخدمة FullTextRss في إعداداته. إذا كنت تستخدم النسخة المستضافة ذاتيًا، اختبر الرابط مباشرةً في المتصفح. استجابة JSON فارغة تعني أن محدِّد الموقع غير موجود في قاعدة القواعد — أنشئ ملف قواعد مخصصة في `site_patterns\u002F` وأضِفه كحجم Docker.",{"type":38,"title":135,"body":136},"حالة استخدام: خلاصة مراقبة تقنية للمطور","أضف خلاصات إصدار GitHub لكل تبعية في مشروعك (`https:\u002F\u002Fgithub.com\u002F\u003Cowner>\u002F\u003Crepo>\u002Freleases.atom`)، وخلاصة Hacker News (`https:\u002F\u002Fnews.ycombinator.com\u002Frss`)، ومدونات المشرفين الرئيسيين في منظومتك، وخلاصات CVE لبيئة التشغيل ونظام التشغيل.\n\nيقدم FreshRSS الجدول الزمني الخام — بدون ترتيب خوارزمي ولا منشورات مروّجة. أنشئ قاعدة إضافة نجمة تلقائية: أي مقالة تحتوي 'تنبيه أمني' أو 'تغيير جذري' تحصل على نجمة وتُطلق إشعار ntfy على هاتفك. تحصل على الإشارة، دون ضجيج المنصات الاجتماعية.","أطلق متابعتك الإخبارية في دقائق","يأتي خادم ServOrbit Cloud VPS مع Docker مُثبَّت مسبقًا ووكيل عكسي جاهز للاستخدام: انشر قالب FreshRSS واستعِد التحكم بخلاصاتك، دون الاعتماد على أي خدمة طرف ثالث.","انشر على خادم Cloud VPS","\u002Fvps-cloud",[142,161,178],{"id":143,"slug":144,"slugs":145,"title":149,"excerpt":150,"readTime":151,"views":152,"isPinned":19,"noindex":19,"publishedAt":153,"updatedAt":154,"category":155,"categories":156,"featuredImage":30,"bgImage":31,"posterImage":158,"relatedSolution":159},71,"استضافة-nextcloud-على-خادمك-الـvps-الخاص",{"fr":146,"en":147,"ar":144,"es":148},"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},[157],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fheberger-nextcloud-poster.svg",{"categorySlug":25,"appSlug":160},"nextcloud",{"id":162,"slug":163,"slugs":164,"title":168,"excerpt":169,"readTime":17,"views":152,"isPinned":19,"noindex":19,"publishedAt":170,"updatedAt":171,"category":172,"categories":173,"featuredImage":30,"bgImage":31,"posterImage":175,"relatedSolution":176},72,"استضافة-ghost-على-خادمك-الـvps-الخاص",{"fr":165,"en":166,"ar":163,"es":167},"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 العكسي والتحديثات واستكشاف أخطاء البدء الشائعة.","2026-04-09T00:00:00+00:00","2026-11-04T16:30:25+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[174],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fheberger-ghost-poster.svg",{"categorySlug":25,"appSlug":177},"ghost",{"id":179,"slug":180,"slugs":181,"title":185,"excerpt":186,"readTime":23,"views":187,"isPinned":19,"noindex":19,"publishedAt":188,"updatedAt":189,"category":190,"categories":191,"featuredImage":30,"bgImage":31,"posterImage":193,"relatedSolution":194},73,"استضافة-wordpress-على-خادم-vps-الخاص-بك",{"fr":182,"en":183,"ar":180,"es":184},"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},[192],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fheberger-wordpress-poster.svg",{"categorySlug":25,"appSlug":195},"wordpress",true,1794270220369]