Files
CloudSearch/source_clean/src/config/index.ts
admin 1e0d408dd2 v0.3.12: 统一环境变量管理 + 去重
- CHROMIUM_PATH 从3处散落移到 config/index.ts 统一管理
- startup-validator 移除冗余 CORS_ORIGIN 检查 (main.ts 已处理)
- docker run 补充 JWT_SECRET/ADMIN_PASSWORD/COOKIE_ENCRYPTION_KEY
- 云盘常量统一到 cloud-constants.ts (图标/标签/颜色)
2026-05-17 14:13:51 +08:00

43 lines
1.5 KiB
TypeScript
Executable File

export interface Config {
port: number;
nodeEnv: string;
redisUrl: string;
pansouUrl: string;
pansouAuthToken: string;
videoParserUrl: string;
jwtSecret: string;
adminUsername: string;
adminPassword: string;
validation: {
concurrency: number;
timeout: number;
cacheTtlValid: number;
cacheTtlInvalid: number;
};
chromiumPath: string;
dbPath: string;
}
const config: Config = {
port: parseInt(process.env.PORT || '9527', 10),
nodeEnv: process.env.NODE_ENV || 'development',
redisUrl: process.env.REDIS_URL || 'redis://localhost:6379',
pansouUrl: process.env.PANSOU_URL || 'http://localhost:8888',
pansouAuthToken: process.env.PANSOU_AUTH_TOKEN || '',
videoParserUrl: process.env.VIDEO_PARSER_URL || 'http://localhost:3001',
jwtSecret: process.env.JWT_SECRET || 'cloudsearch-jwt-secret-dev',
adminUsername: process.env.ADMIN_USERNAME || 'admin',
adminPassword: process.env.ADMIN_PASSWORD || 'admin123',
validation: {
concurrency: parseInt(process.env.VALIDATION_CONCURRENCY || '10', 10),
timeout: parseInt(process.env.VALIDATION_TIMEOUT || '5000', 10),
cacheTtlValid: parseInt(process.env.CACHE_TTL_VALID || '14400', 10), // 4小时
cacheTtlInvalid: parseInt(process.env.CACHE_TTL_INVALID || '3600', 10), // 1小时
},
chromiumPath: process.env.CHROMIUM_PATH || "/usr/bin/chromium-browser",
dbPath: process.env.DB_PATH || './data/cloudsearch.db',
};
// Startup validation done by startup-validator
export default config;