@thugdacake/operante
Version:
Cérebro Operante — o núcleo IA que invade e domina assistentes, criando uma mente única com Thug Developer
64 lines (52 loc) • 1.78 kB
JavaScript
const path = require('path');
const dotenv = require('dotenv');
// Carrega o arquivo .env baseado no ambiente
const envFile = process.env.NODE_ENV ? `.env.${process.env.NODE_ENV}` : '.env';
dotenv.config({ path: path.resolve(process.cwd(), envFile) });
const config = {
// Configurações do projeto
env: process.env.NODE_ENV || 'development',
port: parseInt(process.env.PORT, 10) || 3000,
// Configurações do banco de dados
mongodb: {
uri: process.env.MONGODB_URI || 'mongodb://localhost:27017/operante',
},
// Configurações de autenticação
auth: {
jwtSecret: process.env.JWT_SECRET || 'your-secret-key',
jwtExpiration: process.env.JWT_EXPIRATION || '1d',
},
// Configurações de API
api: {
version: process.env.API_VERSION || 'v1',
prefix: process.env.API_PREFIX || '/api',
},
// Configurações de logs
logs: {
level: process.env.LOG_LEVEL || 'debug',
format: process.env.LOG_FORMAT || 'dev',
},
// Configurações de cache
cache: {
redisUrl: process.env.REDIS_URL || 'redis://localhost:6379',
},
// Configurações de email
email: {
host: process.env.SMTP_HOST || 'smtp.example.com',
port: parseInt(process.env.SMTP_PORT, 10) || 587,
user: process.env.SMTP_USER || 'user@example.com',
pass: process.env.SMTP_PASS || 'your-password',
},
// Configurações de armazenamento
storage: {
type: process.env.STORAGE_TYPE || 'local',
path: process.env.STORAGE_PATH || './uploads',
},
// Configurações de segurança
security: {
corsOrigin: process.env.CORS_ORIGIN || 'http://localhost:3000',
rateLimitWindow: process.env.RATE_LIMIT_WINDOW || '15m',
rateLimitMax: parseInt(process.env.RATE_LIMIT_MAX, 10) || 100,
},
};
module.exports = config;