[mirotalksfu] - refactoring

هذا الالتزام موجود في:
Miroslav Pejic
2024-04-17 09:02:37 +02:00
الأصل 6c3a57ada5
التزام 29c68f5791
2 ملفات معدلة مع 117 إضافات و117 حذوفات

عرض الملف

@@ -700,12 +700,12 @@ function startServer() {
app_version: packageJson.version, app_version: packageJson.version,
node_version: process.versions.node, node_version: process.versions.node,
cors_options: corsOptions, cors_options: corsOptions,
middleware: config.middleware,
server_listen: host,
server_tunnel: tunnel,
hostConfig: hostCfg, hostConfig: hostCfg,
jwtCfg: jwtCfg, jwtCfg: jwtCfg,
presenters: config.presenters, presenters: config.presenters,
middleware: config.middleware,
server: host,
server_tunnel: tunnel,
rest_api: restApi, rest_api: restApi,
mediasoup_worker_bin: mediasoup.workerBin, mediasoup_worker_bin: mediasoup.workerBin,
mediasoup_server_version: mediasoup.version, mediasoup_server_version: mediasoup.version,

عرض الملف

@@ -22,6 +22,14 @@ const IPv4 = getIPv4();
const numWorkers = require('os').cpus().length; const numWorkers = require('os').cpus().length;
module.exports = { module.exports = {
console: {
/*
timeZone: Time Zone corresponding to timezone identifiers from the IANA Time Zone Database es 'Europe/Rome' default UTC
*/
timeZone: 'UTC',
debug: true,
colors: true,
},
server: { server: {
listen: { listen: {
// app listen on // app listen on
@@ -51,6 +59,38 @@ module.exports = {
enabled: false, enabled: false,
}, },
}, },
middleware: {
/*
Middleware:
- IP Whitelist: Access to the instance is restricted to only the specified IP addresses in the allowed list. This feature is disabled by default.
- ...
*/
IpWhitelist: {
enabled: false,
allowed: ['127.0.0.1', '::1'],
},
},
api: {
// Default secret key for app/api
keySecret: 'mirotalksfu_default_secret',
// Define which endpoints are allowed
allowed: {
meetings: false,
meeting: true,
join: true,
token: false,
slack: true,
//...
},
},
jwt: {
/*
JWT https://jwt.io/
Securely manages credentials for host configurations and user authentication, enhancing security and streamlining processes.
*/
key: 'mirotalksfu_jwt_secret',
exp: '1h',
},
host: { host: {
/* /*
Host Protection (default: false) Host Protection (default: false)
@@ -75,27 +115,6 @@ module.exports = {
//... //...
], ],
}, },
api: {
// Default secret key for app/api
keySecret: 'mirotalksfu_default_secret',
// Define which endpoints are allowed
allowed: {
meetings: false,
meeting: true,
join: true,
token: false,
slack: true,
//...
},
},
jwt: {
/*
JWT https://jwt.io/
Securely manages credentials for host configurations and user authentication, enhancing security and streamlining processes.
*/
key: 'mirotalksfu_jwt_secret',
exp: '1h',
},
presenters: { presenters: {
list: [ list: [
/* /*
@@ -107,6 +126,20 @@ module.exports = {
], ],
join_first: true, // Set to true for traditional behavior, false to prioritize presenters join_first: true, // Set to true for traditional behavior, false to prioritize presenters
}, },
chatGPT: {
/*
ChatGPT
1. Goto https://platform.openai.com/
2. Create your account
3. Generate your APIKey https://platform.openai.com/account/api-keys
*/
enabled: false,
basePath: 'https://api.openai.com/v1/',
apiKey: '',
model: 'gpt-3.5-turbo',
max_tokens: 1000,
temperature: 0,
},
email: { email: {
/* /*
Configure email settings for notifications or alerts Configure email settings for notifications or alerts
@@ -119,6 +152,66 @@ module.exports = {
password: 'your_password', password: 'your_password',
sendTo: 'sfu.mirotalk@gmail.com', sendTo: 'sfu.mirotalk@gmail.com',
}, },
ngrok: {
/*
Ngrok
1. Goto https://ngrok.com
2. Get started for free
3. Copy YourNgrokAuthToken: https://dashboard.ngrok.com/get-started/your-authtoken
*/
authToken: '',
},
sentry: {
/*
Sentry
1. Goto https://sentry.io/
2. Create account
3. On dashboard goto Settings/Projects/YourProjectName/Client Keys (DSN)
*/
enabled: false,
DSN: '',
tracesSampleRate: 0.5,
},
slack: {
/*
Slack
1. Goto https://api.slack.com/apps/
2. Create your app
3. On Settings - Basic Information - App Credentials, chose your Signing Secret
4. Create a Slash Commands and put as Request URL: https://your.domain.name/slack
*/
enabled: false,
signingSecret: '',
},
IPLookup: {
/*
GeoJS
https://www.geojs.io/docs/v1/endpoints/geo/
*/
enabled: false,
getEndpoint(ip) {
return `https://get.geojs.io/v1/ip/geo/${ip}.json`;
},
},
survey: {
/*
QuestionPro
1. GoTo https://www.questionpro.com/
2. Create your account
3. Create your custom survey
*/
enabled: false,
url: '',
},
redirect: {
/*
Redirect URL on leave room
Upon leaving the room, users who either opt out of providing feedback or if the survey is disabled
will be redirected to a specified URL. If enabled false the default '/newroom' URL will be used.
*/
enabled: false,
url: '',
},
ui: { ui: {
/* /*
Customize your MiroTalk instance Customize your MiroTalk instance
@@ -247,99 +340,6 @@ module.exports = {
//... //...
}, },
}, },
middleware: {
/*
Middleware:
- IP Whitelist: Access to the instance is restricted to only the specified IP addresses in the allowed list. This feature is disabled by default.
- ...
*/
IpWhitelist: {
enabled: false,
allowed: ['127.0.0.1', '::1'],
},
},
console: {
/*
timeZone: Time Zone corresponding to timezone identifiers from the IANA Time Zone Database es 'Europe/Rome' default UTC
*/
timeZone: 'UTC',
debug: true,
colors: true,
},
ngrok: {
/*
Ngrok
1. Goto https://ngrok.com
2. Get started for free
3. Copy YourNgrokAuthToken: https://dashboard.ngrok.com/get-started/your-authtoken
*/
authToken: '',
},
sentry: {
/*
Sentry
1. Goto https://sentry.io/
2. Create account
3. On dashboard goto Settings/Projects/YourProjectName/Client Keys (DSN)
*/
enabled: false,
DSN: '',
tracesSampleRate: 0.5,
},
slack: {
/*
Slack
1. Goto https://api.slack.com/apps/
2. Create your app
3. On Settings - Basic Information - App Credentials, chose your Signing Secret
4. Create a Slash Commands and put as Request URL: https://your.domain.name/slack
*/
enabled: false,
signingSecret: '',
},
chatGPT: {
/*
ChatGPT
1. Goto https://platform.openai.com/
2. Create your account
3. Generate your APIKey https://platform.openai.com/account/api-keys
*/
enabled: false,
basePath: 'https://api.openai.com/v1/',
apiKey: '',
model: 'gpt-3.5-turbo',
max_tokens: 1000,
temperature: 0,
},
IPLookup: {
/*
GeoJS
https://www.geojs.io/docs/v1/endpoints/geo/
*/
enabled: false,
getEndpoint(ip) {
return `https://get.geojs.io/v1/ip/geo/${ip}.json`;
},
},
survey: {
/*
QuestionPro
1. GoTo https://www.questionpro.com/
2. Create your account
3. Create your custom survey
*/
enabled: false,
url: '',
},
redirect: {
/*
Redirect URL on leave room
Upon leaving the room, users who either opt out of providing feedback or if the survey is disabled
will be redirected to a specified URL. If enabled false the default '/newroom' URL will be used.
*/
enabled: false,
url: '',
},
stats: { stats: {
/* /*
Umami: https://github.com/umami-software/umami Umami: https://github.com/umami-software/umami