أداة ويب متعددة المستخدمين لإرسال إيميلات ورسائل تقديم مخصصة لكل شركة تلقائياً عبر Gmail وواتساب، مدعومة بـ Google Gemini AI.
- ✅ مجاني (رصيد $5/شهر — كافي للاستخدام العادي)
- ✅ يدعم Node.js بشكل مثالي
- ✅ يتربط بـ subdomain على Hostinger بسهولة
- ✅ لا يحتاج خبرة في السيرفرات
- اذهب إلى console.cloud.google.com
- اضغط New Project → سمّيه
mrsaal - من القائمة → APIs & Services → Library → ابحث عن Gmail API → Enable
- اذهب إلى Credentials → Create Credentials → OAuth 2.0 Client ID
- Application type: Web application
- في Authorized redirect URIs أضف:
https://mrsaal.yourdomain.com/auth/google/callback - احفظ الـ Client ID و Client Secret
⚠️ في OAuth consent screen: أضف بريد كل مستخدم كـ Test User أو اطلب Publish للوصول العام
- اعمل repository جديد اسمه
mrsaalعلى GitHub - ارفع ملفات المشروع:
cd mrsaal git init git add . git commit -m "first commit" git remote add origin https://github.com/USERNAME/mrsaal.git git push -u origin main
- اذهب إلى railway.app → سجّل دخول بـ GitHub
- اضغط New Project → Deploy from GitHub repo → اختر
mrsaal - Railway سيكتشف Node.js تلقائياً ويبدأ البناء ✅
في لوحة Railway → مشروعك → Variables → أضف هذه المتغيرات:
GEMINI_API_KEY = AIzaSyxxxxxxxxx
GOOGLE_CLIENT_ID = xxxxxxxxx.apps.googleusercontent.com
GOOGLE_CLIENT_SECRET = GOCSPX-xxxxxxxxx
GOOGLE_REDIRECT_URI = https://mrsaal.yourdomain.com/auth/google/callback
BASE_URL = https://mrsaal.yourdomain.com
SESSION_SECRET = نص_عشوائي_طويل_جداً
NODE_ENV = production
PORT = 3000
PUPPETEER_SKIP_CHROMIUM_DOWNLOAD = true
💡 لتوليد SESSION_SECRET آمن:
node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"
- Railway → مشروعك → Settings → Domains
- اضغط Add Custom Domain → اكتب:
mrsaal.yourdomain.com - Railway سيعطيك CNAME مثل:
mrsaal-production.up.railway.app
- اذهب إلى hpanel.hostinger.com
- دومينك → DNS / Nameservers → DNS Records → Add Record
Type: CNAME
Name: mrsaal
Value: mrsaal-production.up.railway.app.
TTL: 3600
- احفظ — انتظر 5-30 دقيقة لانتشار الـ DNS
- Railway سيفعّل SSL تلقائياً (Let's Encrypt مجاني) ✅
ارجع إلى Google Cloud Console → Credentials → OAuth Client:
- تأكد وجود:
https://mrsaal.yourdomain.com/auth/google/callback✅
- افتح
https://mrsaal.yourdomain.com - يجب أن تظهر شاشة تسجيل الدخول بـ Google
- سجّل دخولك → يجب أن تنتقل للأداة مباشرة
- جرّب رفع CV وإيميل تجريبي
| الخدمة | الحد المجاني |
|---|---|
| Railway | $5/شهر رصيد ≈ 500 ساعة تشغيل |
| Gmail API | 100 إيميل/يوم |
| Gemini API | مجاني (حتى 15 طلب/دقيقة) |
| Open Tracking | مجاني (مدمج) |
"redirect_uri_mismatch" → تأكد أن الـ URI في Google Console مطابق حرفياً لـ GOOGLE_REDIRECT_URI في Railway
"Application not verified" → أضف بريد المستخدم كـ Test User في Google OAuth consent screen
الـ subdomain مش شغال → انتظر 30 دقيقة لانتشار DNS، تحقق من CNAME في Hostinger
الإيميلات مش بتتبعت → تأكد أن BASE_URL = https://mrsaal.yourdomain.com (بدون / في النهاية)
mrsaal/
├── server.js # نقطة الدخول
├── railway.json # إعدادات Railway
├── Procfile # أمر التشغيل
├── .gitignore
├── public/
│ └── index.html # الواجهة الكاملة
├── routes/
│ ├── auth.js # Google OAuth
│ ├── companies.js # إدارة الشركات
│ ├── cv.js # السيرة الذاتية والقوالب
│ ├── email.js # Email & WhatsApp Logic
│ └── tracking.js # Open tracking pixel
├── utils/
│ ├── db.js # SQLite
│ ├── gmail.js # Gmail API
│ ├── ai.js # Google Gemini API
│ └── scheduler.js # Cron جدولة
└── middleware/
└── auth.js