42 lines
1.3 KiB
TypeScript
42 lines
1.3 KiB
TypeScript
import dotenv from 'dotenv';
|
|
|
|
dotenv.config();
|
|
|
|
export const config = {
|
|
port: parseInt(process.env.API_PORT || '3000'),
|
|
host: process.env.API_HOST || 'localhost',
|
|
nodeEnv: process.env.NODE_ENV || 'development',
|
|
|
|
// Database
|
|
databaseUrl: process.env.DATABASE_URL || 'postgresql://cloneweb_user:cloneweb_password@localhost:5432/cloneweb',
|
|
|
|
// Redis
|
|
redisUrl: process.env.REDIS_URL || 'redis://localhost:6379',
|
|
|
|
// JWT
|
|
jwtSecret: process.env.JWT_SECRET || 'your-super-secret-jwt-key-change-in-production',
|
|
jwtExpiresIn: process.env.JWT_EXPIRES_IN || '7d',
|
|
|
|
// Rate Limiting
|
|
rateLimitWindowMs: 15 * 60 * 1000, // 15 minutes
|
|
rateLimitMax: 100, // limit each IP to 100 requests per windowMs
|
|
|
|
// CORS
|
|
corsOrigins: process.env.CORS_ORIGINS?.split(',') || ['http://localhost:3000', 'http://localhost:3001'],
|
|
|
|
// Logging
|
|
logLevel: process.env.LOG_LEVEL || 'info',
|
|
|
|
// Security
|
|
bcryptRounds: 12,
|
|
|
|
// Services URLs (for microservices communication)
|
|
services: {
|
|
crawler: process.env.CRAWLER_SERVICE_URL || 'http://localhost:3001',
|
|
scraper: process.env.SCRAPER_SERVICE_URL || 'http://localhost:3002',
|
|
generator: process.env.GENERATOR_SERVICE_URL || 'http://localhost:3003',
|
|
assets: process.env.ASSETS_SERVICE_URL || 'http://localhost:3004',
|
|
}
|
|
};
|
|
|
|
export default config; |