mirror of
https://github.com/x1xhlol/system-prompts-and-models-of-ai-tools.git
synced 2026-06-17 23:09:35 +00:00
docs(ops): Railway existing-project checklist and troubleshooting
Made-with: Cursor
This commit is contained in:
parent
832469956b
commit
16e8ba2383
@ -2,6 +2,26 @@
|
||||
|
||||
نفّذ في [لوحة Railway](https://railway.app) بعد أن يكون الفرع [`ai-company`](https://github.com/VoXc2/system-prompts-and-models-of-ai-tools/tree/ai-company) مرفوعاً على GitHub.
|
||||
|
||||
## 0) عندك بالفعل Project على Railway — قائمة إكمال (لا تبدأ من صفر)
|
||||
|
||||
افتح **نفس المشروع** وامشِ بالترتيب؛ علّم كل بند عند الانتهاء.
|
||||
|
||||
1. **أي خدمة هي التطبيق؟** حدّد بطاقة **Web / Service** اللي تشغّل الـ API (مو Postgres وحدها).
|
||||
2. **المصدر (Git):** داخل الخدمة → **Settings** → **Source** (أو Connect repo):
|
||||
- الريبو: `VoXc2/system-prompts-and-models-of-ai-tools`.
|
||||
- **Branch:** `ai-company` (وليس فرعاً قديماً إن غيّرت سياسة النشر).
|
||||
3. **Root Directory:** لازم يكون **`dealix`**. إن كان فارغاً أو `.` أو جذر المونوريبو، البناء قد ينجح والتشغيل يفشل أو العكس — عدّله واحفظ ثم **Redeploy**.
|
||||
4. **Start Command:** بالضبط
|
||||
`uvicorn api.main:app --host 0.0.0.0 --port ${PORT:-8000}`
|
||||
واحذف أي أمر قديم (مثلاً `python main.py` من جذر خاطئ).
|
||||
5. **Postgres:** إن وُجدت في المشروع → تأكد أن **`DATABASE_URL`** (أو المرجع منه) **موجود في متغيرات خدمة التطبيق**، ليس فقط داخل خدمة DB.
|
||||
6. **Variables:** راجع قائمة المتغيرات في **خدمة التطبيق** مقابل [`.env.staging.example`](../../.env.staging.example) — خصوصاً `APP_SECRET_KEY`, `APP_URL`, `APP_ENV`, `CORS_ORIGINS`, `DAILY_EMAIL_LIMIT`, `WHATSAPP_ALLOW_LIVE_SEND`.
|
||||
7. **Networking:** فعّل **Public URL** / دومين؛ حدّث `APP_URL` و`CORS_ORIGINS` ليطابقا الرابط الظاهر.
|
||||
8. **Deployments:** آخر نشر — إن كان أحمر، Build Logs ثم Deploy Logs (انظر قسم 8 أدناه).
|
||||
9. **اختبار:** `/health` ثم `smoke_staging` من جهازك (قسم 5).
|
||||
|
||||
إن كان المشروع فيه **أكثر من خدمة** (قديمة + جديدة)، إمّا تعطيل النشر للقديمة أو حذفها لتتجنب لبس الدومين والمتغيرات.
|
||||
|
||||
## 1) المشروع والخدمة
|
||||
|
||||
1. **New Project** → **Deploy from GitHub** → اختر `VoXc2/system-prompts-and-models-of-ai-tools`.
|
||||
@ -37,3 +57,37 @@
|
||||
## 6) مسار Git الكامل
|
||||
|
||||
[`GITHUB_AI_COMPANY_TRACK.md`](GITHUB_AI_COMPANY_TRACK.md)
|
||||
|
||||
---
|
||||
|
||||
## 7) مسار لوحة Railway بالتفصيل (أين تضغط)
|
||||
|
||||
1. **Account** → تأكد أن GitHub مربوط (للاستيراد من GitHub).
|
||||
2. **New Project** → **Deploy from GitHub repo** → اختر `system-prompts-and-models-of-ai-tools`.
|
||||
3. إن أنشأ Railway خدمة تلقائياً، افتح **الخدمة** (البطاقة) → **Settings**:
|
||||
- **Source** → **Branch** = `ai-company`.
|
||||
- **Root Directory** = `dealix` (إن لم يظهر، ابحث في نفس الصفحة عن Root / Watch paths حسب واجهة Railway).
|
||||
4. **Settings** → **Deploy** (أو Build):
|
||||
- **Start Command** كما في الجدول أعلاه.
|
||||
- إن وُجد **Builder** أو **Nixpacks**: غالباً يكفي أن يوجد `requirements.txt` داخل `dealix` بعد ضبط Root.
|
||||
5. أضف **PostgreSQL** من نفس المشروع (**+ New** → **Database** → **PostgreSQL**).
|
||||
6. في خدمة Postgres: **Variables** → انسخ **`DATABASE_URL`** (أو استخدم **Connect** واربط المرجع بخدمة الويب عبر **Reference Variable** إن ظهرت لك الخاصية).
|
||||
7. في **خدمة الويب** → **Variables**: أضف باقي المتغيرات يدوياً (لا تلصقها في شات).
|
||||
8. **Networking** (أو **Settings** → Public Networking): فعّل **Generate Domain** أو اربط دومينك؛ هذا هو الـ host لـ `APP_URL` و`CORS_ORIGINS` و`STAGING_BASE_URL` في GitHub.
|
||||
9. **Deployments**: راقب آخر build — إن فشل، افتح **Build Logs** ثم **Deploy Logs**.
|
||||
|
||||
## 8) أين «توقف» غالباً — تشخيص سريع (بدون أسرار)
|
||||
|
||||
| العرض في Railway | ماذا تفعل |
|
||||
|-------------------|-----------|
|
||||
| Build failed / `pip install` error | تأكد **Root Directory** = `dealix` وأن `requirements.txt` يظهر في سجل البناء تحت `dealix/`. |
|
||||
| Deploy OK لكن **502 / Application failed** | Deploy Logs: غالباً خطأ استيراد أو `DATABASE_URL` فارغ أو `APP_SECRET_KEY` ناقص. |
|
||||
| Container exits immediately | غالباً أمر التشغيل خطأ أو المنفذ؛ استخدم الأمر في الجدول و`PORT` من Railway. |
|
||||
| `/health` لا يفتح | Networking غير مفعّل أو الخدمة ليست Web على المنفذ الصحيح. |
|
||||
| `/health` 200 لكن smoke يفشل على مسارات | راجع `API_KEYS` على السيرفر وطابق `STAGING_API_KEY` في الدخان أو GitHub Secrets. |
|
||||
| DB connection error | تأكد أن `DATABASE_URL` **مرتبط بخدمة التطبيق** وليس فقط داخل Postgres؛ وشكل الرابط متوافق مع async (التطبيق يطبيع `postgres://`). |
|
||||
|
||||
## 9) بعد النجاح
|
||||
|
||||
- حدّث [`LAUNCH_DAY_VERIFICATION_LOG.md`](../LAUNCH_DAY_VERIFICATION_LOG.md) بصف staging.
|
||||
- راجع [`BETA_PRIVATE_GATES_CHECKLIST.md`](../BETA_PRIVATE_GATES_CHECKLIST.md) قبل أول عميل.
|
||||
|
||||
Loading…
Reference in New Issue
Block a user