mirror of
https://github.com/x1xhlol/system-prompts-and-models-of-ai-tools.git
synced 2026-06-18 15:29:36 +00:00
162 lines
4.4 KiB
Markdown
162 lines
4.4 KiB
Markdown
# دليل نشر Dealix على Railway (بالعربي)
|
|
|
|
## لماذا Railway؟
|
|
|
|
- ✅ لا SSH — نشر مباشر من GitHub
|
|
- ✅ PostgreSQL مبني
|
|
- ✅ SSL تلقائي
|
|
- ✅ دومين مجاني
|
|
- ✅ $5 مجاني شهرياً
|
|
- ✅ لا يتأثر بحجب ISP
|
|
|
|
---
|
|
|
|
## الخطوات (15 دقيقة)
|
|
|
|
### 1. إنشاء الحساب
|
|
|
|
افتح [railway.com](https://railway.com) → **Login with GitHub** (بحسابك VoXc2).
|
|
|
|
### 2. إنشاء المشروع
|
|
|
|
- اضغط **New Project**
|
|
- اختر **Deploy from GitHub repo**
|
|
- اختر `VoXc2/dealix`
|
|
- Railway يكتشف Dockerfile تلقائياً ويبدأ البناء
|
|
|
|
### 3. إضافة PostgreSQL
|
|
|
|
داخل المشروع:
|
|
|
|
- اضغط **+ New** → **Database** → **Add PostgreSQL**
|
|
- Railway يولد `DATABASE_URL` تلقائياً ويربطه بالتطبيق
|
|
|
|
### 4. إضافة Environment Variables
|
|
|
|
في service الـ API → **Variables** → **+ New Variable** (أو Raw Editor للصق دفعة واحدة):
|
|
|
|
```
|
|
POSTHOG_API_KEY=<from Computer chat>
|
|
POSTHOG_HOST=https://us.i.posthog.com
|
|
POSTHOG_ENABLED=true
|
|
MOYASAR_PUBLIC_KEY=<from Computer chat>
|
|
MOYASAR_SECRET_KEY=<from Computer chat>
|
|
MOYASAR_WEBHOOK_SECRET=<from Computer chat>
|
|
CALENDLY_WEBHOOK_SECRET=<from Computer chat>
|
|
CALENDLY_OAUTH_CLIENT_ID=<from Computer chat>
|
|
CALENDLY_OAUTH_CLIENT_SECRET=<from Computer chat>
|
|
ENV=production
|
|
APP_ENV=production
|
|
DATABASE_URL=${{Postgres.DATABASE_URL}}
|
|
```
|
|
|
|
> All real values are in the Computer chat message that contains this guide. Paste them into Railway's Raw Editor.
|
|
|
|
|
|
**مهم**: القيمة `${{Postgres.DATABASE_URL}}` هذي مرجع ديناميكي لقاعدة البيانات اللي ضفتها.
|
|
|
|
### 5. تشغيل alembic migrations
|
|
|
|
بعد أول نشر ناجح:
|
|
|
|
- Service → **Settings** → **Deploy** → **Start Command**
|
|
- تأكد إنه: `alembic upgrade head && uvicorn api.main:app --host 0.0.0.0 --port $PORT`
|
|
|
|
أو استخدم **Deploy Triggers** → أضف pre-deploy command: `alembic upgrade head`
|
|
|
|
### 6. توليد رابط عام
|
|
|
|
- Service → **Settings** → **Networking** → **Generate Domain**
|
|
- Railway يعطيك شي مثل: `dealix-production-abc.up.railway.app`
|
|
- احفظ الرابط
|
|
|
|
### 7. اختبار API
|
|
|
|
```
|
|
https://dealix-production-abc.up.railway.app/healthz
|
|
https://dealix-production-abc.up.railway.app/readyz
|
|
```
|
|
|
|
لازم يرجع `200 OK`.
|
|
|
|
### 8. ربط الدومين dealix.me
|
|
|
|
**Railway**:
|
|
|
|
- Settings → Networking → **Custom Domain** → `dealix.me`
|
|
- Railway يعطيك CNAME مثل: `abc123.up.railway.app`
|
|
|
|
**GoDaddy**:
|
|
|
|
- Domain dealix.me → **DNS Records** → أضف:
|
|
- Type: `CNAME`
|
|
- Name: `@` (أو `www`)
|
|
- Value: `abc123.up.railway.app`
|
|
- TTL: 600
|
|
|
|
ملاحظة: CNAME على root domain أحياناً يسمى **ALIAS** أو **ANAME** في GoDaddy.
|
|
|
|
### 9. تحديث Webhooks
|
|
|
|
**Moyasar** ([dashboard.moyasar.com/webhooks](https://dashboard.moyasar.com/webhooks)):
|
|
|
|
- URL: `https://dealix.me/api/v1/webhooks/moyasar`
|
|
- Secret: قيمة `MOYASAR_WEBHOOK_SECRET` من Railway Variables
|
|
|
|
**Calendly** (webhook مسجل مسبقاً بـ PAT — نحدث URL):
|
|
|
|
- تلقائي إذا URL الـ endpoint ما تغير (`/api/v1/webhooks/calendly`)
|
|
|
|
### 10. اختبار Pilot Payment (1 SAR)
|
|
|
|
```bash
|
|
curl -X POST https://dealix.me/api/v1/checkout \
|
|
-H "Content-Type: application/json" \
|
|
-d '{"plan": "pilot_1sar"}'
|
|
```
|
|
|
|
---
|
|
|
|
## المراقبة
|
|
|
|
### Logs حية
|
|
|
|
داخل Service → **Deployments** → اختر آخر deployment → **View Logs**
|
|
|
|
### Restart
|
|
|
|
Service → **Settings** → **Restart**
|
|
|
|
### Rollback
|
|
|
|
Deployments → اختر deployment قديم → **Redeploy**
|
|
|
|
---
|
|
|
|
## التكلفة
|
|
|
|
- **Free trial**: $5 رصيد
|
|
- **Hobby plan**: $5/شهر بعد انتهاء Free trial
|
|
- **PostgreSQL**: محسوبة من نفس الرصيد (~$1-2/شهر للاستخدام البسيط)
|
|
|
|
---
|
|
|
|
## استكشاف الأخطاء
|
|
|
|
| المشكلة | الحل |
|
|
|---------|------|
|
|
| Build failed | افحص logs → غالباً requirements.txt |
|
|
| 503 Service Unavailable | API لم يبدأ — افحص Variables |
|
|
| Healthcheck failing | غيّر path في railway.json لـ `/health` |
|
|
| Database connection failed | تأكد إن `DATABASE_URL=${{Postgres.DATABASE_URL}}` |
|
|
|
|
---
|
|
|
|
## الخطوات التالية
|
|
|
|
1. ✅ نشر على Railway
|
|
2. ✅ ربط dealix.me
|
|
3. ✅ تسجيل webhooks (Moyasar + Calendly)
|
|
4. ✅ اختبار pilot payment
|
|
5. ⏳ تحديث gates من 18/30 إلى 22/30
|