Initial V2 commit
This commit is contained in:
20
config/app.php
Normal file
20
config/app.php
Normal file
@@ -0,0 +1,20 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'name' => env('APP_NAME', 'IntaleqV2'),
|
||||
'env' => env('APP_ENV', 'production'),
|
||||
'debug' => (bool) env('APP_DEBUG', false),
|
||||
'url' => env('APP_URL', 'https://api-v2.intaleq.xyz'),
|
||||
'timezone' => 'UTC',
|
||||
'locale' => 'ar',
|
||||
'fallback_locale' => 'en',
|
||||
'faker_locale' => 'ar_SA',
|
||||
'cipher' => 'AES-256-CBC',
|
||||
'key' => env('APP_KEY'),
|
||||
'previous_keys' => [
|
||||
...array_filter(explode(',', env('APP_PREVIOUS_KEYS', ''))),
|
||||
],
|
||||
'maintenance' => [
|
||||
'driver' => 'file',
|
||||
],
|
||||
];
|
||||
21
config/cache.php
Normal file
21
config/cache.php
Normal file
@@ -0,0 +1,21 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'default' => env('CACHE_DRIVER', 'redis'),
|
||||
'stores' => [
|
||||
'redis' => [
|
||||
'driver' => 'redis',
|
||||
'connection' => 'cache',
|
||||
'lock_connection' => 'default',
|
||||
],
|
||||
'file' => [
|
||||
'driver' => 'file',
|
||||
'path' => storage_path('framework/cache/data'),
|
||||
],
|
||||
'array' => [
|
||||
'driver' => 'array',
|
||||
'serialize' => false,
|
||||
],
|
||||
],
|
||||
'prefix' => env('CACHE_PREFIX', 'intaleq_v2'),
|
||||
];
|
||||
25
config/cors.php
Normal file
25
config/cors.php
Normal file
@@ -0,0 +1,25 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'paths' => ['v2/*'],
|
||||
'allowed_methods' => ['GET', 'POST', 'PUT', 'DELETE', 'OPTIONS'],
|
||||
'allowed_origins' => [
|
||||
'https://intaleq.xyz',
|
||||
'https://admin.intaleq.xyz',
|
||||
'https://api-v2.intaleq.xyz',
|
||||
],
|
||||
'allowed_origins_patterns' => [],
|
||||
'allowed_headers' => [
|
||||
'Content-Type',
|
||||
'Authorization',
|
||||
'X-API-Key',
|
||||
'X-Timestamp',
|
||||
'X-Signature',
|
||||
'X-Nonce',
|
||||
'Accept',
|
||||
'X-Requested-With',
|
||||
],
|
||||
'exposed_headers' => [],
|
||||
'max_age' => 86400,
|
||||
'supports_credentials' => false,
|
||||
];
|
||||
104
config/database.php
Normal file
104
config/database.php
Normal file
@@ -0,0 +1,104 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
|
||||
'default' => env('DB_CONNECTION', 'primary'),
|
||||
|
||||
'connections' => [
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Primary Database (intaleqDB1) — Main Server
|
||||
| Tables: driver, passengers, tokens, CarRegistration, ride, wallets, etc.
|
||||
|--------------------------------------------------------------------------
|
||||
*/
|
||||
'primary' => [
|
||||
'driver' => 'mysql',
|
||||
'host' => env('DB_HOST', '127.0.0.1'),
|
||||
'port' => env('DB_PORT', '3306'),
|
||||
'database' => env('DB_DATABASE', 'intaleqDB1'),
|
||||
'username' => env('DB_USERNAME', 'root'),
|
||||
'password' => env('DB_PASSWORD', ''),
|
||||
'unix_socket' => env('DB_SOCKET', ''),
|
||||
'charset' => 'utf8mb4',
|
||||
'collation' => 'utf8mb4_general_ci',
|
||||
'prefix' => '',
|
||||
'strict' => false,
|
||||
'engine' => 'InnoDB',
|
||||
'options' => extension_loaded('pdo_mysql') ? [
|
||||
PDO::ATTR_PERSISTENT => true,
|
||||
PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8mb4 COLLATE utf8mb4_general_ci",
|
||||
] : [],
|
||||
],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Ride Database (intaleq-ridesDB) — Ride Server
|
||||
| Tables: ride, driver, car_locations, driver_orders, etc.
|
||||
|--------------------------------------------------------------------------
|
||||
*/
|
||||
'ride' => [
|
||||
'driver' => 'mysql',
|
||||
'host' => env('DB_RIDE_HOST', '127.0.0.1'),
|
||||
'port' => env('DB_RIDE_PORT', '3306'),
|
||||
'database' => env('DB_RIDE_DATABASE', 'intaleq-ridesDB'),
|
||||
'username' => env('DB_RIDE_USERNAME', 'root'),
|
||||
'password' => env('DB_RIDE_PASSWORD', ''),
|
||||
'unix_socket' => env('DB_RIDE_SOCKET', ''),
|
||||
'charset' => 'utf8mb4',
|
||||
'collation' => 'utf8mb4_general_ci',
|
||||
'prefix' => '',
|
||||
'strict' => false,
|
||||
'engine' => 'InnoDB',
|
||||
'options' => extension_loaded('pdo_mysql') ? [
|
||||
PDO::ATTR_PERSISTENT => true,
|
||||
] : [],
|
||||
],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Tracking Database (locationDB) — Location Server
|
||||
| Tables: car_locations, car_tracks, driver_daily_summary, driver_daily_work
|
||||
|--------------------------------------------------------------------------
|
||||
*/
|
||||
'tracking' => [
|
||||
'driver' => 'mysql',
|
||||
'host' => env('DB_TRACKING_HOST', '127.0.0.1'),
|
||||
'port' => env('DB_TRACKING_PORT', '3306'),
|
||||
'database' => env('DB_TRACKING_DATABASE', 'locationDB'),
|
||||
'username' => env('DB_TRACKING_USERNAME', 'root'),
|
||||
'password' => env('DB_TRACKING_PASSWORD', ''),
|
||||
'unix_socket' => env('DB_TRACKING_SOCKET', ''),
|
||||
'charset' => 'utf8mb4',
|
||||
'collation' => 'utf8mb4_general_ci',
|
||||
'prefix' => '',
|
||||
'strict' => false,
|
||||
'engine' => 'InnoDB',
|
||||
'options' => extension_loaded('pdo_mysql') ? [
|
||||
PDO::ATTR_PERSISTENT => true,
|
||||
] : [],
|
||||
],
|
||||
|
||||
],
|
||||
|
||||
'redis' => [
|
||||
'client' => env('REDIS_CLIENT', 'predis'),
|
||||
'default' => [
|
||||
'host' => env('REDIS_HOST', '127.0.0.1'),
|
||||
'password' => env('REDIS_PASSWORD', null),
|
||||
'port' => env('REDIS_PORT', 6379),
|
||||
'database' => env('REDIS_DB', 0),
|
||||
],
|
||||
'cache' => [
|
||||
'host' => env('REDIS_HOST', '127.0.0.1'),
|
||||
'password' => env('REDIS_PASSWORD', null),
|
||||
'port' => env('REDIS_PORT', 6379),
|
||||
'database' => env('REDIS_CACHE_DB', 1),
|
||||
],
|
||||
],
|
||||
|
||||
'migrations' => [
|
||||
'table' => 'migrations',
|
||||
'update_date_on_publish' => true,
|
||||
],
|
||||
];
|
||||
38
config/intaleq.php
Normal file
38
config/intaleq.php
Normal file
@@ -0,0 +1,38 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Intaleq V2 — Custom configuration
|
||||
* All secrets and paths are externalized to .env
|
||||
*/
|
||||
return [
|
||||
// JWT
|
||||
'jwt_secret' => env('JWT_SECRET'),
|
||||
'hmac_tolerance' => env('HMAC_TOLERANCE_SECONDS', 300),
|
||||
|
||||
// Encryption
|
||||
'legacy_enc_key_path' => env('LEGACY_ENC_KEY_PATH', '/home/intaleq-api/.enckey'),
|
||||
'legacy_iv' => env('LEGACY_IV', ''),
|
||||
|
||||
// FCM
|
||||
'fcm_credentials_path' => env('FCM_CREDENTIALS_PATH', '/home/intaleq-api/firebase-credentials.json'),
|
||||
'fcm_cache_path' => env('FCM_CACHE_PATH', '/home/intaleq-api/fcm_token_cache.json'),
|
||||
|
||||
// Internal Services
|
||||
'location_server_url' => env('LOCATION_SERVER_URL', 'http://localhost:2021'),
|
||||
'ride_socket_url' => env('RIDE_SOCKET_URL', 'http://localhost:3031'),
|
||||
'internal_socket_key_path' => env('INTERNAL_SOCKET_KEY_PATH', '/home/intaleq-api/.internal_socket_key'),
|
||||
|
||||
// Rate Limiting
|
||||
'rate_limit_login' => (int) env('RATE_LIMIT_LOGIN', 5),
|
||||
'rate_limit_login_decay' => (int) env('RATE_LIMIT_LOGIN_DECAY', 60),
|
||||
'rate_limit_api' => (int) env('RATE_LIMIT_API', 60),
|
||||
'rate_limit_api_decay' => (int) env('RATE_LIMIT_API_DECAY', 60),
|
||||
|
||||
// Upload
|
||||
'upload_max_size' => (int) env('UPLOAD_MAX_SIZE', 5242880),
|
||||
'upload_allowed_types' => explode(',', env('UPLOAD_ALLOWED_TYPES', 'jpg,jpeg,png,webp')),
|
||||
'upload_base_url' => env('UPLOAD_BASE_URL', 'https://intaleq.xyz'),
|
||||
|
||||
// Secret Salt
|
||||
'secret_salt_parent' => env('SECRET_SALT_PARENT', ''),
|
||||
];
|
||||
Reference in New Issue
Block a user