204 lines
9.2 KiB
Bash
204 lines
9.2 KiB
Bash
# ============================================================
|
|
# Siro Docker Environment Variables
|
|
# ============================================================
|
|
|
|
# --- 1. Core Settings ---
|
|
PHP_VERSION=8.2
|
|
HTTP_PORT=8181
|
|
APP_DOMAIN=jordan-siro.intaleqapp.com
|
|
APP_ISSUER=SiroApp
|
|
# ⚠️ يجب أن تبقى false في الإنتاج.
|
|
# bootstrap.php يفعّل display_errors عندما تكون true، فتُطبع تحذيرات PHP
|
|
# داخل جسم الاستجابة: تكشف مسارات الملفات للعملاء، وتُفسد الردود بـ
|
|
# "headers already sent" لأن الإخراج يسبق الرؤوس (رُصد فعلاً في الإنتاج).
|
|
APP_DEBUG=false
|
|
APP_COUNTRY=Jordan
|
|
APP_CURRENCY=JOD
|
|
|
|
# --- 2. Databases (Hosts must be 'mysql' in Docker) ---
|
|
MYSQL_ROOT_PASSWORD=3w71Qacjl3kh1pOgJUeD5jRBnG3jRVpf
|
|
|
|
DB_PAYMENT_HOST=mysql
|
|
DB_PAYMENT_NAME=payment
|
|
DB_PAYMENT_USER=root
|
|
DB_PAYMENT_PASS=3w71Qacjl3kh1pOgJUeD5jRBnG3jRVpf
|
|
|
|
DB_PRIMARY_HOST_V2=mysql
|
|
DB_PRIMARY_NAME_V2=jorSiroDB
|
|
DB_PRIMARY_USER_V2=intaleqapp-jordan-siro
|
|
DB_PRIMARY_PASS_V2=7B7skfibrexQrGCUG1Y8
|
|
|
|
DB_PRIMARY_HOST=mysql
|
|
DB_PRIMARY_NAME=intaleqDB1
|
|
DB_PRIMARY_USER=intaleqUserDB1
|
|
DB_PRIMARY_PASS=NANatr7j4d8HzZjAcp00bbsjkdhfjsn
|
|
|
|
DB_TRACKING_HOST=mysql
|
|
DB_TRACKING_NAME=locationDB
|
|
DB_TRACKING_USER=intaleqLocation
|
|
DB_TRACKING_PASS=9otdMyiExMTXwnoA32sP
|
|
|
|
DB_RIDE_HOST=mysql
|
|
DB_RIDE_NAME=intaleq-ridesDB
|
|
DB_RIDE_USER=intaleq-rides
|
|
DB_RIDE_PASS=0bHHMALEj4sqSmdT0avT
|
|
|
|
DB_TRANSIT_HOST=mysql
|
|
DB_TRANSIT_PORT=3306
|
|
DB_TRANSIT_NAME=siroTransitDb
|
|
DB_TRANSIT_USER=siroTransitUser
|
|
DB_TRANSIT_PASS=eZiDYxCJ2yyGfC32zG0Z
|
|
|
|
DB_FOOD_HOST=mysql
|
|
DB_FOOD_PORT=3306
|
|
DB_FOOD_NAME=siro_food
|
|
DB_FOOD_USER=siro_food
|
|
DB_FOOD_PASS=CHANGE_ME_STRONG_PASSWORD
|
|
|
|
# --- 3. Redis ---
|
|
REDIS_HOST=redis
|
|
REDIS_PORT=6379
|
|
REDIS_LOCATION_HOST=redis
|
|
REDIS_LOCATION_PORT=6379
|
|
REDIS_MAIN_HOST=redis
|
|
REDIS_MAIN_PORT=6379
|
|
REDIS_MAIN_PASSWORD=
|
|
|
|
# --- 3.5 Android Scraper Bot ---
|
|
# backend/bot/worker.php يرفض كل طلب بخطأ 500 إذا كان BOT_SECRET_KEY فارغاً.
|
|
# يجب أن تطابق القيمة BOT_SECRET_KEY في android_bot/app/build.gradle.kts
|
|
# (تُبنى داخل الـ APK عبر BuildConfig).
|
|
BOT_SECRET_KEY=<CHANGE_ME_BOT_SECRET>
|
|
# معرّفات الأجهزة المسموح لها (ANDROID_ID) مفصولة بفواصل. اتركها فارغة
|
|
# لاستخدام القائمة الافتراضية المدمجة في worker.php.
|
|
BOT_ALLOWED_DEVICES=
|
|
|
|
# --- 4. Internal Sockets (Docker Network Names) ---
|
|
LOCATION_SERVER_URL=http://socket_driver:2021
|
|
RIDE_SOCKET_URL=http://socket_passenger:3031
|
|
# ⚠️ إجباري في Docker: بدونه يستخدم driver_socket.php الافتراضي 127.0.0.1:3031
|
|
# وهو داخل حاوية socket_driver يشير لنفسها، فلا يصل الراكب أي تحديث موقع.
|
|
PASSENGER_SOCKET_INTERNAL_URL=http://socket_passenger:3031
|
|
|
|
# --- 5. External Sockets & URLs ---
|
|
LOCATION_SOCKET_URL=http://socket_driver:2021
|
|
PASSENGER_SOCKET_URL=http://socket_passenger:3031
|
|
LOCATION_API_URL=http://nginx/loction_server/api_get_nearby.php
|
|
WALLET_SERVER_JORDAN=http://nginx
|
|
WALLET_SERVER_EGYPT=http://nginx
|
|
WALLET_SERVER_SYRIA=http://nginx
|
|
|
|
# --- 6. JWT, Encryption & Secrets ---
|
|
# JWT_SECRET_KEY=
|
|
# JWT_SECRET=
|
|
# INTERNAL_KEY=
|
|
TRACKING_SECRET_SALT=RaIt3bznBXIHJAtpaBz7JHFwcec9JFyzOXaoIZKG
|
|
secretSaltParent=Q4g2XFGMY2aSTp1kq6RaIt3bznBXIHJAtpaBz7JHFwcec
|
|
MIGRATION_ADMIN_KEY=iuyweiruinakjbfkajkjlkmalkcxnlahd
|
|
FP_PEPPER=cd0b94f349c292bf93c63e798b903bb4b3b3738a049654441d6524ba603d614147fbc24b2721090d713d4fe3fbe833985c9a4473233963ac544045da5cd4wef
|
|
SECRET_KEY_HMAC=WnzEwFNArO0YlTapvfhtmguKWsXJSKqg_NZSjHBYVXMZK1yUK88SobdckV0KuPaBh0c2721090d713d4fe3fbe833985c9a4473233963ac544045da5cd41bd5
|
|
SECRET_KEY=cd0b94f349c292bf93c63e798b903bb4b3b3738a049654441d6524ba603d614147fbc24b2721090d713d4fe3fbe833985c9a4473233963ac544045da5cd41bd5
|
|
passwordnewpassenger=$2y$10$0WYS/2Fz9BTtoyCbTusudOG9JgTO3DqCPWBhS2Cf9gIu3H9KoSZKC
|
|
initializationVector=abcdefghijklmnop
|
|
|
|
# ⚠️ تحذير مسارات الملفات السرية:
|
|
# في اللايف كانت هذه الملفات خارج مجلد htdocs. في الدوكر يجب وضع هذه الملفات داخل مجلد منفصل لتبقى آمنة.
|
|
# لقد قمت ببرمجة الدوكر ليقرأ مجلد docker/keys ويربطه بالمسار /keys/ المعزول تماماً عن الويب (لأن مسار الويب هو /var/www).
|
|
# (عليك إنشاء المجلد docker/keys ونسخ المفاتيح إليه)
|
|
SECRET_KEY_PATH=/keys/.secret_key
|
|
SECRET_KEY_PAY_PATH=/keys/.secret_key_pay
|
|
INTERNAL_SOCKET_KEY_PATH=/keys/.internal_socket_key
|
|
JWT_SECRET_KEY_PATH=/keys/.secret_key
|
|
WALLET_SECRET_KEY_PATH=/keys/.secret_key_pay
|
|
ENCRYPTION_KEY_PATH=/keys/.enckey
|
|
PAYMENT_INTERNAL_KEY_PATH=/keys/.internal_socket_key
|
|
|
|
# --- 6.b خادم TURN (مكالمات الصوت: الرحلات + توصيل الطعام) ---
|
|
# TURN_HOST يجب أن يكون اسم نطاق أو IP عاماً يصل إليه التطبيق مباشرة.
|
|
# TURN_EXTERNAL_IP هو IP الخادم العام كما يراه العالم (coturn يُعلنه في ICE).
|
|
# السرّ يُقرأ من /keys/turn_secret أولاً؛ وقيمة .env احتياط للتطوير فقط.
|
|
# توليده: openssl rand -hex 32 > docker/keys/turn_secret
|
|
TURN_HOST=turn.siromove.com
|
|
TURN_EXTERNAL_IP=
|
|
TURN_REALM=siromove.com
|
|
TURN_PORT=3478
|
|
# لا تجعلها true إلا بعد تركيب شهادة TLS فعلياً على coturn (انظر turnserver.conf)
|
|
TURN_TLS_ENABLED=false
|
|
TURN_TLS_PORT=5349
|
|
TURN_SECRET_PATH=/keys/turn_secret
|
|
TURN_STATIC_AUTH_SECRET=
|
|
TURN_CREDENTIAL_TTL=43200
|
|
|
|
# --- 7. Third-Party APIs ---
|
|
GEMINI_API_KEY=AIzaSyDHp0yXCGWqnd4ynlCCWzDz9Un1EJOKeW8
|
|
SMS_API_ENDPOINT=https://sms.kazumi.me/api/sms/send-sms
|
|
VOICE_CALL_API_KEY=405e47af5fff47a4b2f5e6acb7ec8960e4d7fe0d1cf3544552b978231f864285
|
|
HERE_API0=g_WNUb5L-7-F8oHpUmgIzH7ETeH9xZ8RwGG9_G8zX9A
|
|
HERE_API=-u3ySR74FH46wS-7IP59BP-Ih6pTx47CwKx_aQw0Sp4
|
|
keyOfApp=nqryjp@1737wqnmqqsjyzjujC1jYRSgh
|
|
PAYMENT_KEY=f4b29e139e7287109bcdd755882a3002
|
|
payMobApikey=S40PAVPQiTp+nOL4UQ4g2XFGMY2aSTp1kq6RaIt3bznBXIHJAtpaBz7JHFwcec9JFyzOXaoIZKGPfE5jyfnIlj/A90Kes1qwmwJdOKz0gINtVZcgX9dd0KIgiE34RC5eRn9co3PFpGENlxXUVZOXkQ5c00tBRsOIRXSedSs8L4u+YSQwfMQZLOX18vrLWh4yEGQPLLm3cUglC65DmkyiLPvwdBST53eFlqj4GD/L5qgBLw8zPPnUMZ2VIvAsTKIzLBxq3QmvSzU1bZ6gqscEHwwwDjfxD6j0Z8hlRgUfrOfVgGD9prY2SFzdeZxRSMqjBuwPrva+51/OxT4yf3uxozJs+HEVhl5AJ2CsSZ+k4Po=
|
|
PASSWORDPAYMOB=g@nkD2#99!hD_.wXrXlBl
|
|
PAYMOBOUTCLIENTSECRET=xyjjRlahJM0Xc38WjApCOh8bvgL9slFpNdM9YeCu9AhLqboKMPtmSvc2N9O4tXxFLV2JAV6stBSTAGFGCVubGe6MNpc7MzJnZ3SiT6GpavBoCLWkUvVbdSDaM0zHvuBOXrXlBl
|
|
PAYMOBOUTCLIENT_ID=Z05ut48dVkS2gI2zenFFcKsfDKfHAU0WELqKyJ0LXrXlBl
|
|
PayPalClientIdLive=QZFjAoZfGtngNserll6r3cC56Xl1sVLQkn5dMbyebhzJY59EQ3hz7YxaEqEDYPTUFcQWqvePaQ5UJJVRXrXlBl
|
|
SMSPASSWORDEGYPT=J)Vh=qb/@MXrXlBl
|
|
CLAUDAISEFER=zg-qbc-qvo39-vCB-WnzEwFNArO0YlTapvfhtmguKWsXJSKqg_NZSjHBYVXMZK1yUK88SobdckV0KuPaBh0c_WHtGsRO_439PBk-e2QqgkQQXrXlBl
|
|
FIREBASE_SERVICE_ACCOUNT_PATH=/var/www/backend/keys/service-account.json
|
|
RASEEL_DRIVER_INSTANCE_ID=686510D4C41E0
|
|
RASEEL_DRIVER_ACCESS_TOKEN=68617b9b8fe53
|
|
|
|
# --- 8. App Signatures & Versions ---
|
|
APP_SIGNATURE_SERVICE_DEBUG=08c3a281699d01bda0473c5dd33536f89dec2f77da8d45c3ba5285959066fa0e
|
|
APP_SIGNATURE_SERVICE_RELEASE=4f10b4e929e05e0a3eaeb0314cc13adbcbe6ffdf6af585fc68fec1e4b6296b6f
|
|
APP_SIGNATURE_SERVICE_IOS=com.example.serviceIntaleq
|
|
|
|
# --- 9. Nabeh & Transit & Commisions ---
|
|
NABEH_EMAIL=hamza@test.com
|
|
NABEH_PASSWORD=Test1234!
|
|
NABEH_API_KEY=siro_integration_key_789
|
|
NABEH_OTP_APP_KEY=f3a9e7c1b8d5f2a4c6e9b1d3f5a7c9e1b3d5f7a9c1e3b5d7f9a1c3e5b7d9f1
|
|
|
|
VITE_API_BASE=https://jordan-siro.intaleqapp.com/backend/transit
|
|
TRANSIT_STUDENT_ID_KEY=zH34tS6xMMSamq6uqv1WZWlDrmjAbnMk
|
|
TRANSIT_ADMIN_ORIGINS=https://transit.siromove.com,https://admin.siromove.com
|
|
APP_DEEP_LINK_BASE=https://siromove.com/driver/transit-activate
|
|
|
|
SIRO_COMMISSION_JO=0.15
|
|
SIRO_COMMISSION_SY=0.12
|
|
|
|
# --- 10. Food Orders (طلبات الطعام) ---
|
|
FOOD_ENABLED=true
|
|
FOOD_SOCKET_URL=http://socket_food:4041
|
|
FOOD_SOCKET_PORT=14040
|
|
FOOD_MERCHANT_ORIGINS=https://food-merchant.siromove.com,https://admin.siromove.com
|
|
FOOD_COMMISSION_PERCENT=15
|
|
FOOD_DELIVERY_BASE_FEE=
|
|
FOOD_MAX_ACTIVE_ORDERS_PER_USER=3
|
|
SIRO_COMMISSION_EG=0.10
|
|
SIRO_COMMISSION_IQ=0.14
|
|
|
|
# --- 10. Admin & Access ---
|
|
ADMIN_TOOL_IPS=92.241.36.211,92.241.36.165,92.241.37.3
|
|
ALLOWED_UPLOAD_HOST=siromove.com
|
|
ALLOWED_TESTER_EMAILS=driver_tester@siromove.com,passenger_tester@siromove.com
|
|
# ⚠️ لازم يغطّي كل قيمة في القسم 4/5 أعلاه: isAllowedSocketUrl() تعمل
|
|
# str_starts_with، وأي عنوان غير مغطّى تُسقَط رسائله (بلا أي أثر قبل هذا الإصلاح).
|
|
# أسماء حاويات Docker إجبارية هنا — لا تحذفها واستبدلها بالـ IP فقط.
|
|
ALLOWED_SOCKET_URLS=http://socket_driver,http://socket_passenger,http://nginx,http://188.68.36.205:2021,http://188.68.36.205:3031,https://location.intaleq.xyz
|
|
ALLOWED_ORIGIN=https://siromove.com
|
|
ADMIN_PHONE_NUMBERS=963992952235,963942542053,962772735902
|
|
SERVICE_PHONE1=963952475740
|
|
SERVICE_PHONE2=963952475742
|
|
TRIPZ_SMTP_PASSWORD=malDEV@2101
|
|
|
|
# --- 11. Platform Access Keys ---
|
|
allowed1=passenger-app:android
|
|
allowed2=passenger-app:ios
|
|
allowedDriver1=driver-app:android
|
|
allowedDriver2=driver-app:ios
|
|
allowedService1=service-app:android
|
|
allowedService2=service-app:ios
|
|
allowedWallet1=wallet-app:android
|
|
allowedWallet2=wallet-app:ios
|