mirror of
https://github.com/manualdousuario/marreta.git
synced 2025-04-09 15:19:09 +00:00
74 lines
2.6 KiB
PHP
74 lines
2.6 KiB
PHP
<?php
|
|
|
|
/**
|
|
* System configuration manager
|
|
* - Loads and validates environment variables
|
|
* - Defines global constants for system settings
|
|
* - Manages security rules and external service configs
|
|
*/
|
|
|
|
require_once __DIR__ . '/vendor/autoload.php';
|
|
|
|
try {
|
|
// Load environment variables
|
|
$dotenv = Dotenv\Dotenv::createImmutable(__DIR__);
|
|
$dotenv->load();
|
|
|
|
// Validate required fields
|
|
$dotenv->required([
|
|
'SITE_NAME',
|
|
'SITE_DESCRIPTION',
|
|
'SITE_URL'
|
|
])->notEmpty();
|
|
|
|
// Validate URL format
|
|
if (!filter_var($_ENV['SITE_URL'], FILTER_VALIDATE_URL)) {
|
|
throw new Exception('SITE_URL must be a valid URL');
|
|
}
|
|
|
|
// Core system settings
|
|
define('SITE_NAME', $_ENV['SITE_NAME']);
|
|
define('SITE_DESCRIPTION', $_ENV['SITE_DESCRIPTION']);
|
|
define('SITE_URL', $_ENV['SITE_URL']);
|
|
define('CLEANUP_DAYS', $_ENV['CLEANUP_DAYS'] ?? 0);
|
|
|
|
// Optional settings with defaults
|
|
define('DNS_SERVERS', $_ENV['DNS_SERVERS'] ?? '1.1.1.1, 8.8.8.8');
|
|
define('DISABLE_CACHE', isset($_ENV['DISABLE_CACHE']) ? filter_var($_ENV['DISABLE_CACHE'], FILTER_VALIDATE_BOOLEAN) : false);
|
|
define('SELENIUM_HOST', $_ENV['SELENIUM_HOST'] ?? 'localhost:4444');
|
|
define('CACHE_DIR', __DIR__ . '/cache');
|
|
define('LANGUAGE', $_ENV['LANGUAGE'] ?? 'pt-br');
|
|
|
|
// Logging configuration
|
|
define('LOG_LEVEL', $_ENV['LOG_LEVEL'] ?? 'WARNING'); // DEBUG, INFO, WARNING, ERROR, CRITICAL
|
|
define('LOG_DAYS_TO_KEEP', 7);
|
|
|
|
// S3 cache configuration
|
|
define('S3_CACHE_ENABLED', isset($_ENV['S3_CACHE_ENABLED']) ? filter_var($_ENV['S3_CACHE_ENABLED'], FILTER_VALIDATE_BOOLEAN) : false);
|
|
|
|
if (S3_CACHE_ENABLED) {
|
|
$dotenv->required([
|
|
'S3_ACCESS_KEY',
|
|
'S3_SECRET_KEY',
|
|
'S3_BUCKET'
|
|
])->notEmpty();
|
|
|
|
define('S3_ACCESS_KEY', $_ENV['S3_ACCESS_KEY']);
|
|
define('S3_SECRET_KEY', $_ENV['S3_SECRET_KEY']);
|
|
define('S3_BUCKET', $_ENV['S3_BUCKET']);
|
|
define('S3_REGION', $_ENV['S3_REGION'] ?? 'us-east-1');
|
|
define('S3_FOLDER', $_ENV['S3_FOLDER'] ?? 'cache/');
|
|
define('S3_ACL', $_ENV['S3_ACL'] ?? 'private');
|
|
define('S3_ENDPOINT', $_ENV['S3_ENDPOINT'] ?? null);
|
|
}
|
|
|
|
// Load security rules
|
|
define('BLOCKED_DOMAINS', require __DIR__ . '/data/blocked_domains.php');
|
|
define('DOMAIN_RULES', require __DIR__ . '/data/domain_rules.php');
|
|
define('GLOBAL_RULES', require __DIR__ . '/data/global_rules.php');
|
|
|
|
} catch (Dotenv\Exception\ValidationException $e) {
|
|
die('Environment Error: ' . $e->getMessage());
|
|
} catch (Exception $e) {
|
|
die('Configuration Error: ' . $e->getMessage());
|
|
}
|