39 lines
1.3 KiB
JavaScript
Raw Normal View History

/**
* 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 };