36 lines
1.0 KiB
TypeScript
36 lines
1.0 KiB
TypeScript
|
|
// Configuration for MacroPad Relay Server
|
||
|
|
|
||
|
|
import dotenv from 'dotenv';
|
||
|
|
import path from 'path';
|
||
|
|
|
||
|
|
dotenv.config();
|
||
|
|
|
||
|
|
export const config = {
|
||
|
|
port: parseInt(process.env.PORT || '3000', 10),
|
||
|
|
host: process.env.HOST || '0.0.0.0',
|
||
|
|
|
||
|
|
// Data storage
|
||
|
|
dataDir: process.env.DATA_DIR || path.join(__dirname, '..', 'data'),
|
||
|
|
|
||
|
|
// Session settings
|
||
|
|
sessionIdLength: parseInt(process.env.SESSION_ID_LENGTH || '6', 10),
|
||
|
|
|
||
|
|
// Security
|
||
|
|
bcryptRounds: parseInt(process.env.BCRYPT_ROUNDS || '10', 10),
|
||
|
|
|
||
|
|
// Rate limiting
|
||
|
|
rateLimitWindowMs: parseInt(process.env.RATE_LIMIT_WINDOW_MS || '900000', 10), // 15 minutes
|
||
|
|
rateLimitMax: parseInt(process.env.RATE_LIMIT_MAX || '100', 10),
|
||
|
|
|
||
|
|
// WebSocket
|
||
|
|
pingInterval: parseInt(process.env.PING_INTERVAL || '30000', 10), // 30 seconds
|
||
|
|
requestTimeout: parseInt(process.env.REQUEST_TIMEOUT || '30000', 10), // 30 seconds
|
||
|
|
|
||
|
|
// Logging
|
||
|
|
logLevel: process.env.LOG_LEVEL || 'info',
|
||
|
|
|
||
|
|
// Environment
|
||
|
|
nodeEnv: process.env.NODE_ENV || 'development',
|
||
|
|
isDevelopment: process.env.NODE_ENV !== 'production',
|
||
|
|
};
|