chore: أرشفة باك إند NestJS إلى backend-archive
قرار المالك 2026-07-27: الباك إند المعتمد صار باك إند سيرو PHP، ويُنقل إلى هذا المستودع كنسخة جديدة باسم «انطلق» على api.intaleqapp.com. backend/ → backend-archive/ (305 ملفاً، إعادة تسمية بلا تعديل محتوى) + README-ARCHIVE.md يوضّح سبب الأرشفة وسبب عدم الحذف: scripts/e2e-test.mjs هو أدق توثيق سلوكي لدورة الرحلة كاملة، ويبقى مرجعاً عند بناء الوحدات الناقصة في باك إند PHP (المحفظتان · الاستحقاقات · محرّك التسعير · الوحدات). مسارات backend/ في docs/*.md لم تُعدَّل عمداً — سجلّ تاريخي. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
75b80bd299
commit
fff76c949f
@@ -1,113 +0,0 @@
|
||||
# ==== Tripz backend env (شغّل: cp .env.example .env) ====
|
||||
# ملاحظة: السيرفر مشترك — كل شيء معزول ببادئة tripz و Redis DB غير الافتراضي (راجع docs/14)
|
||||
|
||||
NODE_ENV=development
|
||||
API_PORT=4010 # يُنشر على 127.0.0.1 فقط — Nginx (CloudPanel) ينهي الـTLS. راجع docs/20
|
||||
DB_EXPOSE_PORT=55432 # 127.0.0.1 فقط. للوصول من الماك: نفق SSH (docs/20 §4)
|
||||
|
||||
# ---- PostgreSQL (قاعدة مستقلة + بادئة جداول) ----
|
||||
DB_HOST=postgres
|
||||
DB_PORT=5432
|
||||
DB_NAME=tripz
|
||||
DB_USER=tripz
|
||||
DB_PASSWORD=change_me_strong
|
||||
DB_TABLE_PREFIX=tripz_
|
||||
DB_SYNC=false # لا synchronize في الإنتاج — هجرات فقط
|
||||
|
||||
# ---- Redis (DB رقم 3 غير الافتراضي 0 + بادئة مفاتيح) ----
|
||||
REDIS_HOST=redis
|
||||
REDIS_PORT=6379
|
||||
REDIS_DB=3
|
||||
REDIS_KEY_PREFIX=tripz:
|
||||
|
||||
# ---- BullMQ ----
|
||||
QUEUE_PREFIX=tripz_
|
||||
|
||||
# ---- Auth ----
|
||||
JWT_SECRET=change_me_jwt_secret
|
||||
|
||||
# ---- تشفير الحقول الحساسة at-rest (AES-256-GCM) ----
|
||||
# 32 بايت بصيغة hex (64 محرف). ولّده: openssl rand -hex 32
|
||||
# إلزامي للإنتاج — بدونه يُستخدم مفتاح تطوير غير آمن
|
||||
ENCRYPTION_KEY=
|
||||
JWT_EXPIRES=15m
|
||||
JWT_REFRESH_EXPIRES=30d
|
||||
|
||||
# ---- Maps (انطلق / map-saas) ----
|
||||
MAPS_TILES_URL=http://martin:3000
|
||||
MAPS_PROVIDER=antlaq
|
||||
MAPS_BASE_URL=https://map-saas.intaleqapp.com
|
||||
# مفاتيح انطلق لكل دولة (ضع القيم الحقيقية في .env على السيرفر — لا تُرفع لـ git)
|
||||
MAPS_API_KEY_JO=
|
||||
MAPS_API_KEY_SY=
|
||||
MAPS_PLACES_API_KEY=
|
||||
|
||||
# ---- OTP: توجيه متعدد المزوّدين حسب دولة المستأجر (docs/17 — D5) ----
|
||||
# اتركه dev لتفعيل الرمز الثابت 1234 بلا إرسال؛ اجعله false للإرسال الحقيقي
|
||||
OTP_DEV_MODE=true
|
||||
OTP_SMS_TEMPLATE=Your Tripz code is {code}
|
||||
|
||||
# سوريا/الأردن — Nabeh (واتساب)
|
||||
NABEH_BASE_URL=https://nabeh.intaleqapp.com
|
||||
NABEH_EMAIL=
|
||||
NABEH_PASSWORD=
|
||||
NABEH_OTP_TYPE=text
|
||||
|
||||
# مصر — Kazumi (SMS)، مع failover تلقائي إلى Nabeh لو فشل
|
||||
SMS_USERNAME=
|
||||
SMS_PASSWORD_EGYPT=
|
||||
SMS_SENDER=
|
||||
|
||||
# ---- FCM push (ملف الـ JSON الخاص بـ Service Account) ----
|
||||
GOOGLE_APPLICATION_CREDENTIALS=./firebase-service-account.json
|
||||
# ---- Gemini (رؤية: قراءة وثائق + مطابقة وجه + تحليل رسائل التحويل P2) ----
|
||||
GEMINI_API_KEY=
|
||||
GEMINI_MODEL=gemini-2.0-flash
|
||||
|
||||
# ---- PayMob (مصر) — احتياط تطوير فقط (docs/24 — P1) ----
|
||||
# الإنتاج: كل مستأجر مفاتيحه الخاصة في tenant.settings.payments.paymob
|
||||
# (PATCH /payments/settings من لوحة أدمن المستأجر) — حساب تاجر مستقل لكل
|
||||
# مستأجر، فمالُه يصل لحسابه هو. هذه المتغيّرات تُستعمل فقط إن كان المستأجر
|
||||
# بلا إعداد خاص، لحساب تجريبي مشترك وقت التطوير.
|
||||
PAYMOB_API_KEY=
|
||||
PAYMOB_PUBLIC_KEY=
|
||||
PAYMOB_HMAC_SECRET=
|
||||
PAYMOB_INTEGRATION_ID_RIDER_CARD=
|
||||
PAYMOB_INTEGRATION_ID_RIDER_WALLET=
|
||||
PAYMOB_INTEGRATION_ID_DRIVER_CARD=
|
||||
PAYMOB_INTEGRATION_ID_DRIVER_WALLET=
|
||||
PAYMOB_IFRAME_ID=
|
||||
|
||||
# ---- CliQ (الأردن) — بوابة الدفع الإلكتروني ----
|
||||
# الإنتاج: كل مستأجر مفاتيحه الخاصة في tenant.settings.payments.cliq
|
||||
CLIQ_BASE_URL=https://api.cliq.jo
|
||||
CLIQ_MERCHANT_ID=
|
||||
CLIQ_API_KEY=
|
||||
CLIQ_SECRET_KEY=
|
||||
CLIQ_TERMINAL_ID=
|
||||
|
||||
# ---- SyriaTel (سوريا) — بوابة الدفع الإلكتروني ----
|
||||
SYRIATEL_BASE_URL=https://e-payment.syriatel.com/api
|
||||
SYRIATEL_MERCHANT_CODE=
|
||||
SYRIATEL_API_KEY=
|
||||
SYRIATEL_SECRET_KEY=
|
||||
SYRIATEL_SERVICE_ID=
|
||||
|
||||
# ---- خدمة المواصلات (microservice مستقل) ----
|
||||
TRANSIT_SERVICE_URL=http://transit:4020
|
||||
|
||||
# ---- MTN (Mobile Money) — بوابة الدفع الإلكتروني ----
|
||||
MTN_BASE_URL=https://proxy.momoapi.mtn.com
|
||||
MTN_API_KEY=
|
||||
MTN_API_USER=
|
||||
MTN_SUBSCRIPTION_KEY=
|
||||
MTN_ENVIRONMENT=sandbox
|
||||
|
||||
# ---- L4: التسعير الديناميكي (Dynamic Pricing) ----
|
||||
# ملاحظة: فاصل كرون SURGE_RECALCULATE ثابت بالكود (180 ثانية) في cron-registry.ts
|
||||
# TRIP_SURGE_COOLDOWN_MS و TRIP_SURGE_SENSITIVITY يُقرأان فعلاً من SurgeService
|
||||
TRIP_SURGE_COOLDOWN_MS=300000 # 5 دقائق بين تغييرين متتاليين
|
||||
TRIP_SURGE_SENSITIVITY=0.3 # 0.1 خفيفة، 0.3 متوسطة، 0.5 حادة
|
||||
|
||||
# ---- سرّ المنصة (لتعيين أول أدمن) — ولّده: openssl rand -hex 24 ----
|
||||
PLATFORM_SECRET=
|
||||
Reference in New Issue
Block a user