This is the official backend for beam.cafe, check out the main repository!
The configuration consists of three files, the default.json with default values, a development.json with development-specific values and a production.json version.
A config file consists of the following options, each option is optional and will be merged with the default configuration.
{
"server": {
"port": 8080,
"internalIdSize": 32, // Size of ids used in internal in-memory objects
"mediaStreamChunkSize": 4096000 // Maximum size of a chunk used in streaming
},
"security": {
"fileKeySize": 8, // File-key size, used as part of the download-link - the longer the better
"streamKeySize": 64, // Access-key size for streams - the longer the better
"downloadKeySize": 64, // Access-key size for downloads - the longer the better
"downloadKeyMaxAge": 60000, // Maximum age of a download key until its used - the shorter the better
"clientWebSocketTimeout": 15000, // Timout for a websocket without a session - the shorter the better
"clientWebSocketSessionTimeout": 900000, // Timeout for web-socket connections
"clientWebSocketSessionKeySize": 64, // Size of a session-key - the longer the better
"transferLimit": 50000000000, // Transferlimit for the uploader (ip-based) - used to prevent abuse (50GB)
"transferLimitResetInterval": 86400000 // Expiration date for the transfer-limit (1d)
},
"logs": {
"logUserAgent": true, // If the user-agent of each client should be logged
"logLevels": [ // Log-level filter
"FATAL",
"ERROR",
"WARNING",
"INFO",
"DEBUG"
]
}
}
Logs are saved in ./.logs
relative to the location of where the application got launched.