39 lines
1.3 KiB
JavaScript
39 lines
1.3 KiB
JavaScript
/**
|
|
* GMP-Agent 配置加载器
|
|
* 零硬编码 · 环境变量驱动 · 合理默认值
|
|
*/
|
|
|
|
const path = require('path');
|
|
|
|
function loadConfig() {
|
|
const baseDir = process.env.GMP_BASE_DIR || process.cwd();
|
|
|
|
return {
|
|
// 服务配置
|
|
port: parseInt(process.env.GMP_PORT || '9800', 10),
|
|
version: process.env.GMP_VERSION || '0.1.0',
|
|
|
|
// 目录配置
|
|
baseDir: baseDir,
|
|
modulesDir: process.env.GMP_MODULES_DIR || path.join(baseDir, 'modules'),
|
|
logsDir: process.env.GMP_LOGS_DIR || path.join(baseDir, 'logs'),
|
|
tempDir: process.env.GMP_TEMP_DIR || path.join(baseDir, 'tmp'),
|
|
|
|
// GitHub配置
|
|
defaultRepoUrl: process.env.GMP_REPO_URL || 'https://github.com/qinfendebingshuo/guanghulab.git',
|
|
targetBranch: process.env.GMP_TARGET_BRANCH || 'main',
|
|
webhookSecret: process.env.GMP_WEBHOOK_SECRET || '',
|
|
|
|
// 安全配置
|
|
apiKey: process.env.GMP_API_KEY || '',
|
|
allowedOrigins: (process.env.GMP_ALLOWED_ORIGINS || '*').split(','),
|
|
|
|
// 超时配置 (毫秒)
|
|
cloneTimeout: parseInt(process.env.GMP_CLONE_TIMEOUT || '120000', 10),
|
|
installTimeout: parseInt(process.env.GMP_INSTALL_TIMEOUT || '180000', 10),
|
|
selfCheckTimeout: parseInt(process.env.GMP_SELFCHECK_TIMEOUT || '60000', 10)
|
|
};
|
|
}
|
|
|
|
module.exports = { loadConfig };
|