settings.php 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. <?php
  2. declare(strict_types=1);
  3. use Monolog\Level;
  4. $appEnv = getenv('APP_ENV') ?: 'production';
  5. if ($appEnv === 'development' && file_exists(__DIR__ . '/../.env')) {
  6. $dotenv = Dotenv\Dotenv::createImmutable(__DIR__ . '/..');
  7. $dotenv->safeLoad();
  8. }
  9. $logLevelName = strtoupper((string) (getenv('LOG_LEVEL') ?: 'info'));
  10. $logLevel = match ($logLevelName) {
  11. 'DEBUG' => Level::Debug,
  12. 'NOTICE' => Level::Notice,
  13. 'WARNING' => Level::Warning,
  14. 'ERROR' => Level::Error,
  15. 'CRITICAL' => Level::Critical,
  16. 'ALERT' => Level::Alert,
  17. 'EMERGENCY' => Level::Emergency,
  18. default => Level::Info,
  19. };
  20. return [
  21. 'app_env' => $appEnv,
  22. 'log_level' => $logLevel,
  23. 'app_secret' => getenv('APP_SECRET') ?: '',
  24. 'db' => [
  25. 'driver' => getenv('DB_DRIVER') ?: 'sqlite',
  26. 'sqlite_path' => getenv('DB_SQLITE_PATH') ?: '/data/irdb.sqlite',
  27. 'mysql_host' => getenv('DB_MYSQL_HOST') ?: '',
  28. 'mysql_port' => (int) (getenv('DB_MYSQL_PORT') ?: 3306),
  29. 'mysql_database' => getenv('DB_MYSQL_DATABASE') ?: '',
  30. 'mysql_username' => getenv('DB_MYSQL_USERNAME') ?: '',
  31. 'mysql_password' => getenv('DB_MYSQL_PASSWORD') ?: '',
  32. ],
  33. 'ui_service_token' => getenv('UI_SERVICE_TOKEN') ?: '',
  34. 'internal_job_token' => getenv('INTERNAL_JOB_TOKEN') ?: '',
  35. 'ui_origin' => getenv('UI_ORIGIN') ?: 'http://localhost:8080',
  36. ];