لماذا قارئ RSS ذاتي الاستضافة في 2026
اتجاه منصات البث نحو الأسعار المرتفعة يجعل الاستضافة الذاتية خياراً اقتصادياً. يستعيد RSS — المعيار المفتوح، اللامركزي، الخالي من الخوارزميات — زخمه. يُدرج تقرير HN State of Homelab 2026 ثماني إشارات إلى FreshRSS ضمن الأدوات الأكثر نشراً على خوادم VPS الشخصية، مما يدل على أن الحركة تتجاوز دائرة المتحمسين التاريخيين.
إلى جانب التكلفة، تُشكّل الخصوصية حجةً قوية: قارئ RSS ذاتي الاستضافة لا يشارك أي بيانات قراءة مع أطراف ثالثة. تتحكمون في تكرار الاستقصاء، وتخزين المقالات، وقواعد الاحتفاظ بها.
ما يجمع FreshRSS وMiniflux
- استيراد/تصدير OPML — يقرأ الأداتان ويكتبان تنسيق OPML المعياري، ما يجعل الترحيل قابلاً للعكس في أي وقت
- توافق Google Reader وFever API — تتصل تقريباً جميع تطبيقات الهاتف (Reeder، NetNewsWire، FeedMe) دون إعداد خاص
- نشر Docker رسمي — صورة يصونها الفريق الأساسي مع تحديثات منتظمة وعلامات مُصدَّرة بأرقام الإصدارات
- متعدد المستخدمين — كل نسخة تخدم حسابات متعددة باشتراكات وتفضيلات مستقلة
- استقصاء قابل للضبط — فترة تحديث قابلة للتعديل لكل خلاصة أو عالمياً مع دعم ترويسات ETag وLast-Modified للحد من النطاق الترددي
- برمجيات حرة — الكود المصدري متاح وقابل للتدقيق، بلا قياس عن بُعد ولا اعتماد على خدمة خارجية مملوكة
- HTTPS مدمج — يعمل الاثنان خلف وسيط عكسي (nginx أو Caddy أو Traefik) لتقديم الخدمة عبر HTTPS دون إعداد إضافي
FreshRSS مقابل Miniflux — مقارنة تقنية
| المعيار | FreshRSS | Miniflux |
|---|---|---|
| استخدام الذاكرة العشوائية | ~50-80 ميغابايت (PHP-FPM + خادم الويب) | < 20 ميغابايت (ملف ثنائي ثابت بـGo) |
| الترخيص | AGPL-3.0 | Apache-2.0 |
| واجهة الويب | غنية وقابلة للتخصيص وتدعم ثيمات متعددة | بسيطة ونظيفة، مُحسَّنة للوحة المفاتيح |
| الواجهة البرمجية | Google Reader + REST جزئية | REST كاملة + Fever + Google Reader |
| الإضافات والموصّلات | إضافات PHP خارجية متاحة | لا إضافات — الميزات مدمجة |
| المصادقة الخارجية | HTTP Basic وOpenID Connect عبر إضافة | HTTP Basic وproxy auth وOAuth2 مدمج |
| الثيمات | ثيمات متعددة مدمجة وثيمات مجتمعية | ثيم واحد (فاتح/داكن) |
| قاعدة البيانات | SQLite وMySQL وPostgreSQL | PostgreSQL فقط |
FreshRSS — حين تكون الواجهة أساسية
FreshRSS مشروع PHP أُطلق عام 2012، مستضاف على GitHub بموجب رخصة AGPL-3.0. بأكثر من 10,000 نجمة على GitHub، يستفيد من مجتمع نشط يُنتج إضافات وثيمات ووثائق وافية. إنه الخيار الطبيعي حين تكون واجهة القراءة محورية — للاستخدام اليومي المكثف أو للنشر المشترك بين مستخدمين ذوي عادات مختلفة.
- إضافات PHP — نظام بيئي من الإضافات يتيح إضافة مصادر غير RSS (Twitter عبر Nitter، وReddit، وYouTube) وقواعد تصفية متقدمة وتكاملات (Wallabag، Instapaper)
- ثيمات بصرية — عدة ثيمات مدمجة (تشمل الوضع الداكن) وثيمات CSS مجتمعية تُثبَّت بنقرات قليلة من واجهة الإدارة
- Google Reader API الكاملة — توافق مُثبَت مع أشهر تطبيقات الهاتف دون أي إعداد خاص من جانب العميل
- استيراد OPML مجمّع — استيراد قوائم خلاصات بآلاف الإدخالات بلا حد معلن مع اكتشاف التكرارات
- وضع القراءة المدمج — استخراج المحتوى الكامل للمقالات عبر المكتبة الداخلية دون اعتماد على خدمة خارجية
- إدارة دقيقة للفئات — تنظيم هرمي للخلاصات مع قواعد وسم تلقائية ومرشحات دائمة لكل فئة
- مرونة قاعدة البيانات — SQLite للبدء الفوري، وPostgreSQL أو MySQL للتوسع مع مستخدمين متعددين
تثبيت FreshRSS على VPS بـDocker
تحضير دليل البيانات
أنشئوا دليلاً ثابتاً لبيانات FreshRSS:
إنشاء ملف docker-compose.yml
yaml
services:
freshrss:
image: freshrss/freshrss:latest
container_name: freshrss
restart: unless-stopped
ports:
- "8080:80"
volumes:
- /opt/freshrss/data:/var/www/FreshRSS/data
- /opt/freshrss/extensions:/var/www/FreshRSS/extensions
environment:
TZ: Europe/Paris
CRON_MIN: "*/15"
تشغيل الحاوية
انتظروا ظهور السطر AH00558: apache2 لتأكيد الإقلاع.
إتمام التثبيت عبر المتصفح
افتحوا http://عنوان-IP:8080 واتبعوا مساعد التثبيت: اختاروا SQLite للاستخدام الشخصي أو PostgreSQL لعدة مستخدمين. أنشئوا حساب المسؤول.
ضبط الوسيط العكسي nginx
أضيفوا كتلة server في إعداد nginx الخاص بكم مع proxy_pass http://127.0.0.1:8080; والترويسات المعتادة. فعّلوا HTTPS عبر Let's Encrypt.
استيراد خلاصاتكم OPML
في الواجهة، اذهبوا إلى الإعدادات > إدارة الاشتراكات > استيراد. حمّلوا ملف .opml — يكتشف FreshRSS التكرارات ويستورد الفئات الموجودة.
Miniflux — حين يكون الأداء أولوية
Miniflux قارئ RSS مكتوب بـGo، موزَّع بموجب رخصة Apache-2.0، مصمَّم من الأساس ليكون ملفاً ثنائياً وحيداً بلا تبعيات — باستثناء PostgreSQL. يبلغ استهلاكه للذاكرة في الحمل الاعتيادي أقل من 20 ميغابايت وفق التوثيق الرسمي في miniflux.app، ما يجعله الخيار المرجعي لـVPS ذات الذاكرة المحدودة أو لمن يستضيفون خدمات كثيرة بالتوازي.
- ملف ثنائي ثابت بـGo — لا تبعيات نظام (لا PHP، لا خادم ويب منفصل): ملف تنفيذي واحد يكفي، مما يبسّط التحديثات والنسخ الاحتياطية
- أقل من 20 ميغابايت ذاكرة عشوائية — بصمة مقاسة في الحمل الاعتيادي، مثالية لـVPS بـ512 ميغابايت أو لخوادم تستضيف خدمات متعددة
- PostgreSQL حصراً — محرك قاعدة بيانات واحد لإتقانه، مع ترحيلات مخطط مُصدَّرة بأرقام تُطبَّق تلقائياً عند الإقلاع
- REST API كاملة — توثيق OpenAPI مضمَّن، مثالي لدمج Miniflux في مهام سير العمل الآلية (n8n، Make، سكريبتات مخصصة)
- تنقل بلوحة المفاتيح — اختصارات شبيهة بـvi (j/k للتنقل، v لفتح المصدر) تجعل القراءة سريعة دون فأرة
- OAuth2 وproxy auth مدمجان — تكامل مباشر مع Authelia وKeycloak وأي مزوّد OpenID Connect دون إضافات
- دعم Fever API — توافق مع العملاء الذين لا يزالون يستخدمون هذا البروتوكول، إضافةً إلى Google Reader API
تثبيت Miniflux على VPS بـDocker
تحضير بيئة PostgreSQL
أنشئوا ملف .env بمتغيرات الاتصال:
إنشاء ملف docker-compose.yml
yaml
services:
db:
image: postgres:16-alpine
restart: unless-stopped
environment:
POSTGRES_USER: miniflux
POSTGRES_PASSWORD: changeme
POSTGRES_DB: miniflux
volumes:
- /opt/miniflux/postgres:/var/lib/postgresql/data
miniflux:
image: miniflux/miniflux:latest
restart: unless-stopped
depends_on:
- db
ports:
- "8080:8080"
environment:
DATABASE_URL: postgres://miniflux:changeme@db/miniflux?sslmode=disable
RUN_MIGRATIONS: "1"
CREATE_ADMIN: "1"
ADMIN_USERNAME: admin
ADMIN_PASSWORD: changeme
تطبيق ترحيلات المخطط عند الإقلاع الأول
يُشغّل المتغير RUN_MIGRATIONS=1 ترحيلات PostgreSQL تلقائياً عند الإقلاع. يرفض Miniflux الإقلاع إذا كانت قاعدة البيانات في حال غير متسقة — يحمي هذا السلوك من التحديثات الجزئية.
التحقق من استجابة الخدمة
الاستجابة المتوقعة هي 200. يكشف Miniflux هذه النقطة النهائية بلا مصادقة لفحوصات الصحة.
ضبط الوسيط العكسي
يتضمن Miniflux خادم HTTP الخاص به — يكفي توجيه المنفذ 8080. مثال nginx:
استيراد اشتراكاتكم OPML
في الإعدادات > استيراد، حمّلوا ملف OPML. تُحوَّل فئات OPML إلى مجموعات Miniflux. بعد الاستيراد، شغّلوا تحديثاً يدوياً لملء قاعدة البيانات فوراً.
كيف تختارون بين FreshRSS وMiniflux
نادراً ما يكون معيار الحسم قائمة الميزات — بل فلسفة الاستخدام. إليكم شبكة قرار سريعة.
- اختاروا FreshRSS إذا أولويتكم واجهة قراءة مريحة بثيمات، أو إضافات لاستيعاب مصادر غير RSS، أو إذا كان عدة مستخدمين بعادات مختلفة يشاركون النسخة
- اختاروا Miniflux إذا كان VPS الخاص بكم بأقل من 1 غيغابايت ذاكرة، أو تستضيفون خدمات كثيرة، أو تفضلون واجهة مُحسَّنة للوحة المفاتيح خالية من المشتتات
- تستخدمون SQLite (بلا PostgreSQL على VPS الخاص بكم): FreshRSS هو الخيار الوحيد العملي من الاثنين
- تحتاجون OAuth2 مدمجاً بلا إضافات خارجية: يوفّر Miniflux هذه الميزة افتراضياً
- تخططون لأتمتة مكثفة (خطافات ويب، تكامل n8n، سكريبتات): REST API المُوثَّقة لـMiniflux أشمل وأكثر ثباتاً
- قدمتم من Feedly أو Inoreader وتريدون تجربة مماثلة: FreshRSS بثيماته ووضع قراءته سيقلّل منحنى التعلم
للحصول على تجربة مثلى على الهاتف: يكشف FreshRSS واجهة Fever API (متوافقة مع Reeder وUnread وNetNewsWire) وواجهة Google Reader API (لـCapy وFeedMe وReadKit). أما Miniflux فيُنفّذ Fever API ونقطة نهائية REST/GraphQL الخاصة به. يعمل كلاهما مع غالبية عملاء RSS الأكثر شعبية على الهاتف.
خلاصة: الاختيار وفق ملفكم الشخصي
اختاروا FreshRSS إذا كنتم بحاجة إلى قارئ متعدد الاستخدامات تستخدمه أطراف متعددة ذات تفضيلات واجهة مختلفة، وتريدون توافقاً أقصى مع الإضافات والعملاء الخارجيين. اختاروا Miniflux إذا كنتم تُولون الأولوية للأداء وخفة استهلاك الموارد وواجهة REST API حديثة يمكنكم استخدامها في سكريبتاتكم أو تكاملاتكم الخاصة. يمكن تثبيت كلا الأداتين في 15 دقيقة على VPS بـ1 غيغابايت ذاكرة عشوائية.
تتضمن خططنا لـVPS السحابي صوراً مُعدَّة مسبقاً للاستضافة الذاتية، مع نسخ احتياطية يومية واتصال SSH آمن. للمزيد، راجعوا دليلنا حول النسخ الاحتياطي لنسختكم من FreshRSS بـRestic، ومقارنتنا لأدوات إدارة كلمات المرور ذاتية الاستضافة لاستكمال مكدّسكم السيادي.