# ============================================================ # 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= # معرّفات الأجهزة المسموح لها (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 # --- 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