منصة احترافية لرصد منشورات صفحات فيسبوك العامة · نظام حسابات · MySQL · متوافق مع cPanel
- 🔐 نظام حسابات كامل - تسجيل دخول + إدارة مستخدمين (admin + users)
- 🗄️ MySQL - بدل JSON files، جاهز للاستضافة
- 🌐 متوافق cPanel - passenger_wsgi.py + دليل نشر شامل
- ⚙️ كل الإعدادات من الواجهة - لا حاجة لتعديل ملفات
- 🗑️ إدارة المنشورات - حذف فردي / متعدد / كامل / تصدير+حذف (أرشفة)
- 🎯 ربط المصادر مبسّط - فعّل/عطّل بكبسة، الصق token محفوظ مشفّراً
- 🧩 كل مستخدم بياناته - صفحات، منشورات، إعدادات، tokens منفصلة
على ويندوز:
نقر مزدوج على start.bat
على Mac / Linux:
./start.shالمتصفح يفتح على http://localhost:5050 → سجّل أول مستخدم = admin → ابدأ.
راجع CPANEL_DEPLOYMENT.md - دليل 7 خطوات مفصّل (15-30 دقيقة).
MySQL 5.7+ أو MariaDB 10+
أي cPanel يوفرها. محلياً استخدم Laragon / XAMPP / MySQL Community.
ملف .env (انسخ من .env.example):
MARSAD_DB_HOST=localhost
MARSAD_DB_PORT=3306
MARSAD_DB_NAME=marsad
MARSAD_DB_USER=root
MARSAD_DB_PASSWORD=الجداول تُنشأ تلقائياً في أول تشغيل.
- أول مستخدم يسجّل = admin تلقائياً
- admin يرى كل المستخدمين في الإعدادات
- كل مستخدم يرى بياناته فقط (صفحاته، منشوراته، token ه)
- كلمات السر مشفّرة بـ PBKDF2-SHA256
- API tokens مشفّرة بـ Fernet في DB
| المصدر | التكلفة | يعمل cPanel؟ | التفاعلات |
|---|---|---|---|
| 💎 Apify |
|
✅ | ✅ كاملة + تعليقات |
| 🪶 FetchRSS | $9.95/شهر | ✅ | ❌ |
| ⚡ RSS.app | $16.64/شهر | ✅ | ❌ |
| 🏠 RSSHub | مجاني (VPS) | ✅ | ❌ |
| 🎭 Playwright | مجاني | ❌ | جزئي |
لـ cPanel: استخدم Apify أو FetchRSS. Playwright يحتاج Chromium وهو غير متاح على الاستضافة المشتركة.
- سجّل حساب (أول مستخدم = admin)
- الإعدادات ⚙️ → فعّل مصدر (Apify / FetchRSS...) → الصق token
- إدارة الصفحات 📄 → أضف صفحة فيسبوك → اختبرها 🧪
- سحب الآن
▶️ → شاهد التقدم مباشرة - استكشف المنشورات - فلتر، ابحث، انقر لتفاصيل التعليقات
- إدارة - احذف منشور/عدة/صفحة/كل شي - أو صدّر+احذف (أرشفة)
marsad/
├── server.py ← Flask + API (16 endpoint)
├── database.py ← MySQL ORM layer
├── auth.py ← Flask-Login + user management
├── passenger_wsgi.py ← cPanel entry point
├── .htaccess ← cPanel / Apache config
├── start.bat / start.sh ← مشغّل محلي
├── .env.example ← قالب إعدادات DB
├── requirements.txt ← تبعيات Python
│
├── web/ ← الواجهة
│ ├── index.html ← auth screen + app
│ ├── auth.js ← تسجيل / دخول / خروج
│ ├── app.js ← التطبيق الرئيسي
│ └── style.css
│
├── scrapers/ ← 5 مصادر قابلة للتبديل
│ ├── base.py
│ ├── apify_source.py
│ ├── fetchrss_source.py
│ ├── rssapp_source.py
│ ├── rsshub_source.py
│ └── playwright_source.py
│
├── scripts/
│ └── run.py / local_run.py
│
├── database/ ← (لا يُرفع - يحتوي secrets)
│ ├── .secret ← مفتاح Fernet لتشفير tokens
│ └── .app_secret ← Flask session key
│
├── CPANEL_DEPLOYMENT.md ← دليل النشر
├── TROUBLESHOOTING.md ← حل المشاكل
└── README.md
كل endpoints تحت /api/ تتطلب تسجيل دخول (cookie session).
POST /api/auth/register- تسجيل (أول = admin)POST /api/auth/loginPOST /api/auth/logoutGET /api/auth/mePOST /api/auth/change-password
GET /api/pages- صفحات المستخدمPOST /api/pages- حفظDELETE /api/pages/:slug
GET /api/posts- مع فلاتر (page, source, date, search, limit)DELETE /api/posts/:id- حذف واحدPOST /api/posts/bulk-delete- حذف متعددPOST /api/posts/clear-page/:slug- حذف كل منشورات صفحةPOST /api/posts/clear-all- حذف الكلGET /api/posts/export- CSVPOST /api/posts/export-and-delete- أرشفة
POST /api/scrape- بدء jobGET /api/scrape/:id/stream- SSE progressGET /api/history
GET /api/sources- حالة + metadataPATCH /api/sources/:name- فعّل / priority / token / config
GET /api/admin/usersPOST /api/admin/usersPATCH /api/admin/users/:idDELETE /api/admin/users/:id
GET /api/status- صحة النظام (public)
- كلمات السر: PBKDF2-SHA256 · 100,000 iterations
- API tokens: Fernet symmetric encryption
- Session cookies: HttpOnly + SameSite=Lax
- CORS مُفعّل مع credentials
.htaccessيمنع الوصول لـ.envوdatabase/
- 🚫 سحب فيسبوك يخالف شروط الخدمة - للأغراض البحثية فقط
- 🚫 Playwright لا يعمل على cPanel (لا Chromium)
- ✅ Apify / FetchRSS / RSS.app يعملون على كل استضافة
MIT · مفتوح المصدر بالكامل
صُنع بـ ❤️ للصحافة والبحث الإعلامي · v4.0