mirror of
https://github.com/elder-plinius/LEAKHUB.git
synced 2026-02-12 16:52:53 +00:00
103 lines
3.0 KiB
JavaScript
103 lines
3.0 KiB
JavaScript
// LeakHub Backend Configuration
|
|
|
|
const config = {
|
|
// Database settings
|
|
database: {
|
|
// Local storage (default)
|
|
type: 'localStorage',
|
|
|
|
// Backend options (uncomment to enable)
|
|
// type: 'mongodb',
|
|
// url: process.env.MONGODB_URI || 'mongodb://localhost:27017/leakhub',
|
|
|
|
// type: 'supabase',
|
|
// url: process.env.SUPABASE_URL,
|
|
// key: process.env.SUPABASE_ANON_KEY,
|
|
|
|
// type: 'firebase',
|
|
// config: {
|
|
// apiKey: process.env.FIREBASE_API_KEY,
|
|
// authDomain: process.env.FIREBASE_AUTH_DOMAIN,
|
|
// projectId: process.env.FIREBASE_PROJECT_ID,
|
|
// storageBucket: process.env.FIREBASE_STORAGE_BUCKET,
|
|
// messagingSenderId: process.env.FIREBASE_MESSAGING_SENDER_ID,
|
|
// appId: process.env.FIREBASE_APP_ID
|
|
// }
|
|
},
|
|
|
|
// API settings
|
|
api: {
|
|
port: process.env.PORT || 3000,
|
|
cors: {
|
|
origin: process.env.ALLOWED_ORIGINS?.split(',') || ['*'],
|
|
methods: ['GET', 'POST', 'PUT', 'DELETE', 'OPTIONS'],
|
|
allowedHeaders: ['Content-Type', 'Authorization']
|
|
},
|
|
rateLimit: {
|
|
windowMs: 15 * 60 * 1000, // 15 minutes
|
|
max: 100 // limit each IP to 100 requests per windowMs
|
|
}
|
|
},
|
|
|
|
// Security settings
|
|
security: {
|
|
jwtSecret: process.env.JWT_SECRET || (process.env.NODE_ENV === 'production' ? null : 'dev-secret-key'),
|
|
bcryptRounds: 12,
|
|
sessionTimeout: 24 * 60 * 60 * 1000 // 24 hours
|
|
},
|
|
|
|
// Analytics settings
|
|
analytics: {
|
|
enabled: process.env.ANALYTICS_ENABLED === 'true',
|
|
googleAnalyticsId: process.env.GOOGLE_ANALYTICS_ID,
|
|
mixpanelToken: process.env.MIXPANEL_TOKEN
|
|
},
|
|
|
|
// Email settings (for notifications)
|
|
email: {
|
|
enabled: process.env.EMAIL_ENABLED === 'true',
|
|
provider: process.env.EMAIL_PROVIDER || 'smtp',
|
|
smtp: {
|
|
host: process.env.SMTP_HOST,
|
|
port: process.env.SMTP_PORT || 587,
|
|
secure: process.env.SMTP_SECURE === 'true',
|
|
auth: {
|
|
user: process.env.SMTP_USER,
|
|
pass: process.env.SMTP_PASS
|
|
}
|
|
}
|
|
},
|
|
|
|
// Feature flags
|
|
features: {
|
|
userRegistration: true,
|
|
emailVerification: false,
|
|
socialLogin: false,
|
|
realTimeUpdates: false,
|
|
advancedAnalytics: false,
|
|
exportData: true,
|
|
backupRestore: true
|
|
},
|
|
|
|
// Development settings
|
|
development: {
|
|
debug: process.env.NODE_ENV !== 'production',
|
|
mockData: process.env.MOCK_DATA === 'true',
|
|
hotReload: process.env.NODE_ENV === 'development'
|
|
}
|
|
};
|
|
|
|
// Environment-specific overrides
|
|
if (process.env.NODE_ENV === 'production') {
|
|
config.development.debug = false;
|
|
config.development.mockData = false;
|
|
config.development.hotReload = false;
|
|
}
|
|
|
|
if (process.env.NODE_ENV === 'test') {
|
|
config.database.type = 'memory';
|
|
config.security.jwtSecret = 'test-secret';
|
|
}
|
|
|
|
module.exports = config;
|