Добавить установщик XLX системы и веб-панель

Этот коммит содержится в:
2026-05-18 06:38:31 +09:00
родитель 53bcc6567a
Коммит 7808cc4158
36 изменённых файлов: 2461 добавлений и 78 удалений
+50 -23
Просмотреть файл
@@ -2,47 +2,74 @@
declare(strict_types=1);
$host = getenv('XLX_PUBLIC_HOST') ?: ($_SERVER['HTTP_HOST'] ?? '127.0.0.1');
$scheme = getenv('XLX_PUBLIC_SCHEME') ?: ((!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off') ? 'https' : 'http');
$baseUrl = getenv('XLX_BASE_URL') ?: $scheme . '://' . $host;
$hostWithoutPort = preg_replace('/:\d+$/', '', $host);
return [
'app' => [
'name' => 'XLX Server',
'env' => 'production',
'debug' => false,
'base_url' => 'https://xlx.example.com',
'timezone' => 'Europe/Amsterdam',
'env' => getenv('XLX_APP_ENV') ?: 'production',
'debug' => (bool) (getenv('XLX_DEBUG') ?: false),
'base_url' => $baseUrl,
'timezone' => getenv('XLX_TIMEZONE') ?: 'Europe/Moscow',
],
'database' => [
'host' => '127.0.0.1',
'port' => 3306,
'name' => 'xlx_server',
'user' => 'xlx_user',
'password' => 'change_me',
'host' => getenv('XLX_DB_HOST') ?: '127.0.0.1',
'port' => (int) (getenv('XLX_DB_PORT') ?: 3306),
'name' => getenv('XLX_DB_NAME') ?: 'xlx_server',
'user' => getenv('XLX_DB_USER') ?: 'xlx_user',
'password' => getenv('XLX_DB_PASSWORD') ?: 'change_me',
'charset' => 'utf8mb4',
],
'xlx' => [
'reflector_name' => 'XLX000',
'server_host' => 'xlx.example.com',
'dashboard_port' => 8080,
'dmr_port' => 62030,
'default_module' => 'A',
'config_path' => '/etc/xlx',
'service_name' => 'xlxd',
'reflector_name' => getenv('XLX_REFLECTOR_NAME') ?: 'XLX000',
'server_host' => getenv('XLX_PUBLIC_HOST') ?: $host,
'sysop_callsign' => getenv('XLX_SYSOP_CALLSIGN') ?: 'N0CALL',
'sysop_email' => getenv('XLX_SYSOP_EMAIL') ?: 'admin@' . $hostWithoutPort,
'country' => getenv('XLX_COUNTRY') ?: 'RU',
'dashboard_port' => (int) (getenv('XLX_DASHBOARD_PORT') ?: 8080),
'dmr_port' => (int) (getenv('XLX_DMR_PORT') ?: 62030),
'ysf_port' => (int) (getenv('XLX_YSF_PORT') ?: 42000),
'default_module' => getenv('XLX_DEFAULT_MODULE') ?: 'A',
'modules' => getenv('XLX_MODULES') ?: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ',
'config_path' => getenv('XLX_CONFIG_PATH') ?: '/etc/xlx',
'install_path' => getenv('XLX_INSTALL_PATH') ?: '/xlxd',
'source_path' => getenv('XLX_SOURCE_PATH') ?: '/usr/src/xlxd',
'log_path' => getenv('XLX_LOG_PATH') ?: '/var/log/xlxd.log',
'service_name' => getenv('XLX_SERVICE_NAME') ?: 'xlxd',
],
'id_allocator' => [
'min_id' => 9000001,
'max_id' => 9099999,
'min_id' => (int) (getenv('XLX_MIN_ID') ?: 9000001),
'max_id' => (int) (getenv('XLX_MAX_ID') ?: 9099999),
],
'billing' => [
'mode' => 'manual',
'currency' => 'RUB',
'mode' => getenv('XLX_BILLING_MODE') ?: 'yookassa',
'currency' => getenv('XLX_CURRENCY') ?: 'RUB',
'default_duration_days' => (int) (getenv('XLX_DEFAULT_DURATION_DAYS') ?: 30),
'manual_transfer_enabled' => (bool) (getenv('XLX_MANUAL_TRANSFER_ENABLED') ?: true),
'manual_transfer_instructions' => getenv('XLX_MANUAL_TRANSFER_INSTRUCTIONS') ?: 'Переведите сумму тарифа и отправьте номер или ссылку чека на проверку.',
'yookassa' => [
'shop_id' => getenv('YOOKASSA_SHOP_ID') ?: 'change_me',
'secret_key' => getenv('YOOKASSA_SECRET_KEY') ?: 'change_me',
'return_url' => getenv('YOOKASSA_RETURN_URL') ?: $baseUrl . '/payment/return',
'webhook_secret' => getenv('YOOKASSA_WEBHOOK_SECRET') ?: 'change_this_webhook_token',
'capture' => (bool) (getenv('YOOKASSA_CAPTURE') ?: true),
],
],
'security' => [
'session_name' => 'xlx_session',
'password_min_length' => 10,
'dmr_password_length' => 16,
'session_name' => getenv('XLX_SESSION_NAME') ?: 'xlx_session',
'password_min_length' => (int) (getenv('XLX_PASSWORD_MIN_LENGTH') ?: 10),
'dmr_password_length' => (int) (getenv('XLX_DMR_PASSWORD_LENGTH') ?: 16),
],
'admin' => [
'api_token' => getenv('XLX_ADMIN_TOKEN') ?: 'change_this_long_random_admin_token',
],
];
+15
Просмотреть файл
@@ -0,0 +1,15 @@
XLX_REFLECTOR_NAME=XLX000
XLX_SERVER_HOST=xlx.example.com
XLX_SYSOP_CALLSIGN=N0CALL
XLX_SYSOP_EMAIL=admin@example.com
XLX_COUNTRY=RU
XLX_DASHBOARD_PORT=8080
XLX_DMR_PORT=62030
XLX_YSF_PORT=42000
XLX_DEFAULT_MODULE=A
XLX_MODULES=ABCDEFGHIJKLMNOPQRSTUVWXYZ
XLX_INSTALL_PATH=/xlxd
XLX_SOURCE_PATH=/usr/src/xlxd
XLX_LOG_PATH=/var/log/xlxd.log
XLX_SERVICE_NAME=xlxd
XLX_REPO_URL=https://github.com/LX3JL/xlxd.git