# 🚀 Dealix — حزمة الإطلاق النهائية (نفّذ هذه الآن) **هدف الجلسة:** من Partially Ready → REVENUE VERIFIED خلال 90 دقيقة. **ترتيب التنفيذ:** من أعلى لأسفل — لا تتجاوز خطوة. --- ## ⏰ الجدول الزمني (90 دقيقة) | الوقت | الخطوة | المدة | |-------|---------|--------| | 0–5 دقائق | Security (Phase 0) | 5 | | 5–25 دقيقة | Railway deploy (Phase 1) | 20 | | 25–40 دقيقة | Moyasar setup (Phase 2) | 15 | | 40–55 دقيقة | 1 SAR test (Phase 3) | 15 | | 55–70 دقيقة | UptimeRobot + Sentry (Phase 5) | 15 | | 70–90 دقيقة | First LinkedIn DM (Phase 7) | 20 | --- ## 🔴 PHASE 0 — SECURITY (5 دقائق) ### A) احذف GitHub Token المكشوف 1. افتح: https://github.com/settings/tokens 2. ابحث عن `ghp_SEFH2559EQpaqZ6...` 3. اضغط عليه → **Delete** 4. ✅ تم ### B) Rotate PostHog API Key 1. افتح: https://app.posthog.com/settings/project 2. Project API Keys → **Rotate** (أو Generate New) 3. **انسخ الـ key الجديد** (سنضعه في Railway في Phase 1) 4. ✅ تم --- ## 🟡 PHASE 1 — RAILWAY DEPLOY (20 دقيقة) ### A) Generate Production Secrets (من طرفك، 3 دقائق) افتح Terminal أي جهاز Python فيه، ولّد 3 secrets: ```bash python3 -c "import secrets; print('APP_SECRET_KEY=' + secrets.token_hex(32))" python3 -c "import secrets; print('MOYASAR_WEBHOOK_SECRET=' + secrets.token_hex(32))" python3 -c "import secrets; print('ADMIN_TOKEN=' + secrets.token_hex(16))" ``` احفظهم في ملف محلي آمن (ليس في chat). ### B) Railway Dashboard (15 دقيقة) 1. افتح: https://railway.com/project/54bb60b4-d059-4dd1-af57-bc44c702b9f0 2. **Settings → Deploy:** - Start Command: **امسحه تماماً** (اتركه فارغ) - Watch Paths: يتركه الافتراضي - احفظ 3. **Settings → Networking:** - Generate Public Domain (إذا لم يولّد) - انسخ الـ URL الناتج: سيكون بشكل `https://dealix-production-XXXX.up.railway.app` 4. **Variables → Raw Editor → الصق هذا (عدّل القيم):** ```env # ── Runtime ──────────────────────────────────────────── ENVIRONMENT=production APP_ENV=production LOG_LEVEL=INFO # ── Security (use the 3 values you just generated) ───── APP_SECRET_KEY=<الـ hex من الخطوة A> ADMIN_TOKEN=<الـ hex من الخطوة A> # ── Database (Railway auto-adds this if Postgres service added) ─ DATABASE_URL=${{Postgres.DATABASE_URL}} # ── Public URL (ضع URL الـ Railway من خطوة 3) ──────── APP_URL=https://dealix-production-XXXX.up.railway.app PUBLIC_BASE_URL=https://dealix-production-XXXX.up.railway.app # ── Moyasar (سنحدّثها في Phase 2) ──────────────────── MOYASAR_SECRET_KEY=sk_live_REPLACE_IN_PHASE_2 MOYASAR_WEBHOOK_SECRET=<الـ hex من الخطوة A> # ── PostHog (الـ key الجديد من Phase 0-B) ───────────── POSTHOG_API_KEY=phc_<الـ key الجديد> POSTHOG_HOST=https://us.i.posthog.com # ── CORS (لـ GitHub Pages + future domain) ──────────── CORS_ORIGINS=https://voxc2.github.io,https://dealix.sa,https://www.dealix.sa,http://localhost:3000 # ── Calendly ────────────────────────────────────────── CALENDLY_URL=https://calendly.com/sami-assiri11/dealix-demo # ── Sentry (optional لكن موصى به) ───────────────────── SENTRY_DSN= # ── CI/Deploy markers ───────────────────────────────── GIT_COMMIT=f0a97677c1 BUILD_VERSION=3.1.0 ``` 5. **احفظ** → Review changes → **Deploy** 6. **راقب Deployments tab:** - انتظر Status = `Active` (2–4 دقائق) - إذا `Failed`: افتح Logs، ابعث screenshot لي 7. **رد بـ:** ``` RAILWAY DEPLOYED URL: https://dealix-production-XXXX.up.railway.app ``` ### C) Smoke Test (من طرفي فوراً بعد استلام URL) سأشغّل: ```bash curl -i https:///healthz curl -i https:///api/v1/pricing/plans ``` **توقع:** 200 + JSON في كلاهما. --- ## 🟠 PHASE 2 — MOYASAR (15 دقيقة) **قبل أن تبدأ:** Phase 1 يجب أن يكون Active ✅. 1. افتح: https://dashboard.moyasar.com 2. **API Keys (Settings → API Keys):** - انسخ الـ `secret_key` (يبدأ بـ `sk_live_...`) - ⚠️ إذا لديك secret قديم مسرّب: اضغط **Rotate/Regenerate** - **لا تلصق الـ secret هنا** — مباشرة إلى Railway 3. **Railway → Variables → RAW Editor:** - بدّل `MOYASAR_SECRET_KEY=sk_live_REPLACE_IN_PHASE_2` - بالـ secret الحقيقي `sk_live_xxxxxxxxxxxxx` - احفظ → سيُعيد deploy تلقائياً 4. **Moyasar Dashboard → Developers → Webhooks → Add Webhook:** - URL: `https:///api/v1/webhooks/moyasar` - Secret: **نفس قيمة** `MOYASAR_WEBHOOK_SECRET` في Railway (الـ hex اللي ولّدته في Phase 1-A) - Events: ✅ `payment_paid` ✅ `payment_failed` ✅ `payment_refunded` - **Save** 5. Moyasar Webhooks → اضغط **Send Test Event** على الـ webhook اللي أنشأته 6. **رد بـ:** ``` MOYASAR WEBHOOK SAVED TEST EVENT SENT ``` --- ## 🟢 PHASE 3 — 1 SAR E2E TEST (15 دقيقة) ### A) Create Invoice (من Terminal) ```bash # استبدل بـ URL الفعلي RAILWAY_URL="https://dealix-production-XXXX.up.railway.app" curl -X POST "$RAILWAY_URL/api/v1/checkout" \ -H "Content-Type: application/json" \ -d '{ "plan": "pilot_1sar", "email": "sami.assiri11@gmail.com" }' ``` **توقع:** ```json { "invoice_id": "inv_xxxx", "status": "initiated", "amount_sar": 1.0, "payment_url": "https://invoice.moyasar.com/invoices/inv_xxxx", "plan": "pilot_1sar" } ``` ### B) Pay 1 SAR 1. افتح `payment_url` في المتصفح 2. ادفع ببطاقتك الحقيقية (Visa/Mada — 1 ريال فقط) 3. **أو** استخدم بطاقة اختبار Moyasar: - Card: `4111 1111 1111 1111` - CVV: `123` | Expiry: `12/30` | OTP: `1234` ### C) Verify Round-Trip (من Terminal) ```bash # 1. Check Moyasar dashboard → payment status = paid # 2. Check Railway logs: # Railway → Deployments → View Logs → look for "moyasar_webhook_processed" ``` ### D) رد بـ: ``` PAID 1 SAR MOYASAR STATUS: paid WEBHOOK LOGGED: yes/no ``` --- ## 🔵 PHASE 5 — MONITORING (15 دقيقة) ### A) UptimeRobot (5 دقائق) 1. افتح: https://uptimerobot.com (signup مجاني إذا ما عندك حساب) 2. Dashboard → **+ Add New Monitor** 3. املأ: - **Monitor Type:** HTTP(s) - **Friendly Name:** `Dealix Backend Health` - **URL:** `https:///healthz` - **Monitoring Interval:** 5 minutes 4. **Alert Contacts:** Email + SMS (رقم جوالك) 5. **Create Monitor** 6. Test: اضغط **Send Test Alert** على الـ contact 7. **رد:** `UPTIME MONITOR ACTIVE` ### B) Sentry (10 دقائق) 1. افتح: https://sentry.io → Project settings → **SDK Setup** 2. انسخ الـ DSN (يبدأ بـ `https://...@...ingest.sentry.io/...`) 3. **Railway → Variables:** بدّل `SENTRY_DSN=` بـ الـ DSN الحقيقي → Redeploy 4. افتح Sentry → **Settings → Integrations → Slack** → Install 5. Authorize → اختر channel `#dealix-alerts` (أو أنشئه) 6. **Alerts → Create Alert Rule:** - When: Event level ≥ error - Then: Send Slack notification 7. Test: ```bash curl -H "X-Admin-Token: " \ https:///_test_sentry ``` (يجب أن يرجع 500 error) 8. انتظر 60 ثانية — يجب أن يصل alert في Slack 9. **رد:** `SENTRY ALERT RECEIVED` --- ## 📋 PHASE 6 — Manual CRM (3 دقائق) 1. افتح Google Sheets جديد 2. اسم الـ sheet: `Dealix Pipeline — 2026` 3. الصق هذه الأعمدة: ``` Lead | Company | Segment | Source | LinkedIn | Email | Phone | Status | Last Touch | Next Touch | Demo Date | Plan | Expected Value | Payment Status | Notes ``` 4. احفظ → شاركه مع نفسك (bookmark) 5. **رد:** `CRM SHEET READY` --- ## 🟣 PHASE 7 — First LinkedIn DM (20 دقيقة) ### A) Open LinkedIn + find Abdullah 1. افتح: https://linkedin.com 2. ابحث في الـ search bar: `Abdullah Al-Assiri Lucidya` 3. افتح profile الـ CEO ### B) Send This Exact Message (Arabic, ≤ 300 chars) **إذا Connect + Note:** ``` السلام عليكم أستاذ عبدالله، أنا سامي العسيري — مؤسس Dealix. بنيت أول AI sales rep بالعربي الخليجي الحقيقي. يرد على leads خلال 45 ثانية، يؤهّل BANT، يحجز demos. Lucidya رائدة CXM — فريقك يستحق هذا الدعم. عرض: pilot بـ 1 ريال × 7 أيام. voxc2.github.io/dealix تستحق 20 دقيقة demo؟ ``` **إذا متصلين أصلاً (Direct DM):** ``` السلام عليكم أستاذ عبدالله، أنا سامي العسيري من الرياض — مؤسس Dealix. قرابة الاسم جعلتني أبدأ بك قبل أي أحد. بنيت Dealix كأول AI sales rep بالعربي الخليجي الحقيقي — مش ترجمة. يرد على leads خلال 45 ثانية، يؤهّل BANT، يحجز demos 24/7. Lucidya تقود سوق CXM في المنطقة، وفريق BDR عندكم يستحق هذا المستوى من الأتمتة. عرض خاص: Pilot بـ 1 ريال × 7 أيام (استرداد كامل لو ما أعجبك). تستحق 20 دقيقة demo الأسبوع؟ الثلاثاء 10 ص أو الخميس 2 ظ؟ 📅 https://calendly.com/sami-assiri11/dealix-demo 🌐 https://voxc2.github.io/dealix/ شاكر وقتك، سامي ``` ### C) Send → Log → Schedule Follow-ups 1. اضغط Send على LinkedIn 2. افتح CRM sheet → أضف صف: - Lead: عبدالله العسيري - Company: Lucidya - Segment: SaaS Enterprise - Source: LinkedIn — Surname affinity - Status: DM Sent - Last Touch: [تاريخ اليوم] - Next Touch: [تاريخ +2 يوم] 3. أضف Calendar reminders: - **+2 days:** Follow-up #1 (bump) - **+5 days:** Follow-up #2 (value-add) - **+10 days:** Follow-up #3 (breakup) 4. **رد:** `DM SENT` ### D) Follow-up Messages (جاهزين — ارسلهم حسب الجدول) **+2 days (if no reply):** ``` أستاذ عبدالله، رسالتي قبل يومين. أفترض الانشغال. سؤال واحد: في Lucidya، كم متوسط زمن الرد الأولي على leads جديدة؟ أي إجابة تساعدني. سامي ``` **+5 days:** ``` أستاذ عبدالله، إحصائية Gartner 2025: 42% من B2B leads في السعودية تُفقد بسبب تأخر الرد. في شركة بحجم Lucidya، كل lead ضائع = عشرات الآلاف سنوياً. Dealix يحل هذا تحديداً — 45 ثانية، 24/7. رابط الباقات: voxc2.github.io/dealix/pricing.html سامي ``` **+10 days (final):** ``` أستاذ عبدالله، آخر رسالة مني. إذا تغيرت الظروف خلال السنة، رد على أي رسالة سابقة، سأعود في نفس اليوم. بالتوفيق لـ Lucidya، سامي ``` --- ## 📊 Running Checklist ``` PHASE 0 — Security [ ] GitHub token deleted [ ] PostHog key rotated PHASE 1 — Railway [ ] Secrets generated [ ] Start Command cleared [ ] Env vars pasted [ ] Deploy Active [ ] URL captured: _______________ [ ] /healthz = 200 [ ] /api/v1/pricing/plans = 200 PHASE 2 — Moyasar [ ] Moyasar secret_key rotated (if needed) [ ] Railway var updated [ ] Webhook added with URL + secret [ ] Test event sent PHASE 3 — 1 SAR Test [ ] Checkout invoice created [ ] Payment link opened [ ] 1 SAR paid [ ] Moyasar shows paid [ ] Webhook logged in Railway PHASE 5 — Monitoring [ ] UptimeRobot monitor active [ ] Test alert received [ ] Sentry DSN in Railway [ ] Sentry → Slack configured [ ] Test error triggered [ ] Slack alert received PHASE 6 — CRM [ ] Google Sheet created [ ] Columns set PHASE 7 — First DM [ ] LinkedIn DM sent to Abdullah Al-Assiri [ ] Logged in CRM [ ] Calendar reminders set ``` --- ## 🚨 إذا علقت في أي خطوة أرسل لي: 1. **اسم الخطوة** (Phase X.Y) 2. **Screenshot من الـ error** 3. **الرسالة بالضبط** أحلّها في دقائق. --- ## ✅ Definition of DONE **LAUNCH READY** عند: - Railway domain captured - /healthz = 200 + /api/v1/pricing/plans = 200 **REVENUE READY** عند: - إضافة Moyasar webhook + secret rotated + checkout يعمل **REVENUE VERIFIED** عند: - 1 SAR paid + webhook logged + Moyasar shows paid **ACQUISITION STARTED** عند: - DM مُرسل + CRM مُحدّث + Follow-ups مُجدولة --- **الوقت الكلي: 90 دقيقة. ابدأ من Phase 0. أنا جاهز للـ smoke tests فور استلام Railway URL.**