'host', 'CONFIG_DB_USER' => 'user', 'CONFIG_DB_PASSWORD' => 'password', 'CONFIG_DB_DATABASE' => 'database', 'DEBUG' => 'DEBUG', 'ENCRYPTION_KEY' => 'ENCRYPTION_KEY', 'CORS' => 'CORS', 'ECONOMIC_API_APP_ACCESS_GRANT' => 'app_access_grant', 'ECONOMIC_API_APP_ACCESS_GRANT2' => 'app_access_grant2', 'ECONOMIC_API_APP_SECRET_TOKEN' => 'app_secret_token', 'WORDPRESS_STATIC_TOKEN' => 'WORDPRESS_STATIC_TOKEN', 'EMAIL_WASH_CERTIFICATE_TOKEN' => 'EMAIL_WASH_CERTIFICATE_TOKEN', 'WORDPRESS_API_URL' => 'WORDPRESS_API_URL', 'MINIO_ENDPOINT' => 'endpoint', 'MINIO_ACCESS_KEY' => 'access_key', 'MINIO_SECRET_KEY' => 'secret_key', 'SLACK_DEFAULT_WEBHOOK' => 'SLACK_DEFAULT_WEBHOOK', 'REDIS_CONFIG_HOST' => 'host', 'REDIS_CONFIG_DATABASE' => 'database', 'REDIS_CONFIG_PASSWORD' => 'password' ]; $dbTarget = strtolower(trim((string)($_ENV['CONFIG_DB_TARGET'] ?? 'live'))); if ($dbTarget !== 'live' && $dbTarget !== 'debug') { $dbTarget = 'live'; } $resolveDbValue = function (string $key) use ($dbTarget): string { $liveKey = 'CONFIG_DB_' . $key; $debugKey = 'CONFIG_DB_DEBUG_' . $key; $liveValue = (string)($_ENV[$liveKey] ?? ''); $debugValue = (string)($_ENV[$debugKey] ?? ''); if ($dbTarget === 'debug' && $debugValue !== '') { return $debugValue; } return $liveValue; }; /** * Set the db configuration from selected target (live/debug) */ $CONFIG_DB = [ 'host' => $resolveDbValue('HOST'), 'user' => $resolveDbValue('USER'), 'password' => $resolveDbValue('PASSWORD'), 'database' => $resolveDbValue('DATABASE') ]; /** * Set the debug configuration */ $DEBUG = $_ENV['DEBUG']; /** * Set the encryption key */ $ENCRYPTION_KEY = $_ENV['ENCRYPTION_KEY']; /** * Set the CORS configuration */ $CORS = $_ENV['CORS']; /** * Set the economic API configuration */ $ECONOMIC_API = [ 'app_access_grant' => $_ENV['ECONOMIC_API_APP_ACCESS_GRANT'], 'app_access_grant2' => $_ENV['ECONOMIC_API_APP_ACCESS_GRANT2'], 'app_secret_token' => $_ENV['ECONOMIC_API_APP_SECRET_TOKEN'] ]; /** * Set the WordPress static token */ $WORDPRESS_STATIC_TOKEN = $_ENV['WORDPRESS_STATIC_TOKEN']; /** * Set the email wash certificate token */ $EMAIL_WASH_CERTIFICATE_TOKEN = $_ENV['EMAIL_WASH_CERTIFICATE_TOKEN']; /** * Set the WordPress API URL */ $WORDPRESS_API_URL = $_ENV['WORDPRESS_API_URL']; /** * Set the Minio configuration */ $MINIO = [ 'endpoint' => $_ENV['MINIO_ENDPOINT'], 'access_key' => $_ENV['MINIO_ACCESS_KEY'], 'secret_key' => $_ENV['MINIO_SECRET_KEY'] ]; /** * Set the Slack default webhook */ $SLACK_DEFAULT_WEBHOOK = $_ENV['SLACK_DEFAULT_WEBHOOK']; /** * Set the Redis configuration */ $REDIS_CONFIG = [ 'host' => $_ENV['REDIS_CONFIG_HOST'], 'database' => $_ENV['REDIS_CONFIG_DATABASE'], 'password' => $_ENV['REDIS_CONFIG_PASSWORD'] ]; // Set the timezone date_default_timezone_set($_ENV['CONFIG_TIMEZONE']) ?? 'Europe/Copenhagen'; // Set the all config $ALL_CONFIG = $_ENV; // This is used by the backup job. } else { // Throw an error if the environment variables are not set throw new Exception('Environment variables are not set'); }