[mirotalk] - update email defaults to Mailpit and bump dependencies

This commit is contained in:
Miroslav Pejic
2026-03-26 10:28:57 +01:00
parent 7c6a6e6cd8
commit cb5711f1c7
8 changed files with 115 additions and 65 deletions
+10 -9
View File
@@ -1,5 +1,5 @@
# ====================================================
# MiroTalk P2P v.1.7.60 - Environment Configuration
# MiroTalk P2P v.1.7.61 - Environment Configuration
# ====================================================
# App environment
@@ -193,16 +193,17 @@ CHATGPT_MODEL=gpt-3.5-turbo
CHATGPT_MAX_TOKENS=1000
CHATGPT_TEMPERATURE=0
# Configure email settings for notifications or alerts
# Refer to the documentation for Gmail configuration: https://support.google.com/mail/answer/185833?hl=en
# Email configuration for notifications and alerts
# For testing, you can use Mailpit: run `npm run mailpit:up` or `npm run mailpit:down`
# For Gmail, refer to: https://support.google.com/mail/answer/185833?hl=en
EMAIL_ALERT=false # true or false
EMAIL_HOST=smtp.gmail.com
EMAIL_PORT=587
EMAIL_USERNAME=your_username
EMAIL_PASSWORD=your_password
EMAIL_FROM=
EMAIL_SEND_TO=p2p.mirotalk@gmail.com
EMAIL_HOST=localhost
EMAIL_PORT=1025
EMAIL_USERNAME=test
EMAIL_PASSWORD=test
EMAIL_FROM=test@mirotalk.com
EMAIL_SEND_TO=test@mirotalk.com
# Stats
# Umami: https://github.com/umami-software/umami
+1 -1
View File
@@ -2,7 +2,7 @@
/**
* ==============================================
* MiroTalk P2P v.1.7.60 - Configuration File
* MiroTalk P2P v.1.7.61 - Configuration File
* ==============================================
*
* This file is the central configuration source.
+1 -1
View File
@@ -45,7 +45,7 @@ dependencies: {
* @license For commercial use or closed source, contact us at license.mirotalk@gmail.com or purchase directly from CodeCanyon
* @license CodeCanyon: https://codecanyon.net/item/mirotalk-p2p-webrtc-realtime-video-conferences/38376661
* @author Miroslav Pejic - miroslav.pejic.85@gmail.com
* @version 1.7.60
* @version 1.7.61
*
*/
+17
View File
@@ -0,0 +1,17 @@
services:
mailpit:
image: axllent/mailpit:latest
container_name: mirotalkmailpit
restart: unless-stopped
ports:
- '${MAILPIT_HTTP_PORT:-8025}:8025'
- '${MAILPIT_SMTP_PORT:-1025}:1025'
volumes:
- './.mailpit_data:/data'
environment:
MP_DATABASE: /data/mailpit.db
MP_MAX_MESSAGES: 5000
volumes:
mailpit_data:
driver: local
+68 -38
View File
@@ -1,17 +1,17 @@
{
"name": "mirotalk",
"version": "1.7.60",
"version": "1.7.61",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "mirotalk",
"version": "1.7.60",
"version": "1.7.61",
"license": "AGPL-3.0",
"dependencies": {
"@mattermost/client": "11.4.0",
"@ngrok/ngrok": "1.7.0",
"@sentry/node": "^10.45.0",
"@sentry/node": "^10.46.0",
"axios": "^1.13.6",
"chokidar": "^5.0.0",
"colors": "^1.4.0",
@@ -30,7 +30,7 @@
"jsdom": "^29.0.1",
"jsonwebtoken": "^9.0.3",
"nodemailer": "^8.0.4",
"openai": "^6.32.0",
"openai": "^6.33.0",
"qs": "^6.15.0",
"socket.io": "^4.8.3",
"swagger-ui-express": "^5.0.1",
@@ -681,9 +681,9 @@
}
},
"node_modules/@opentelemetry/context-async-hooks": {
"version": "2.6.0",
"resolved": "https://registry.npmjs.org/@opentelemetry/context-async-hooks/-/context-async-hooks-2.6.0.tgz",
"integrity": "sha512-L8UyDwqpTcbkIK5cgwDRDYDoEhQoj8wp8BwsO19w3LB1Z41yEQm2VJyNfAi9DrLP/YTqXqWpKHyZfR9/tFYo1Q==",
"version": "2.6.1",
"resolved": "https://registry.npmjs.org/@opentelemetry/context-async-hooks/-/context-async-hooks-2.6.1.tgz",
"integrity": "sha512-XHzhwRNkBpeP8Fs/qjGrAf9r9PRv67wkJQ/7ZPaBQQ68DYlTBBx5MF9LvPx7mhuXcDessKK2b+DcxqwpgkcivQ==",
"license": "Apache-2.0",
"engines": {
"node": "^18.19.0 || >=20.6.0"
@@ -1101,12 +1101,12 @@
}
},
"node_modules/@opentelemetry/resources": {
"version": "2.6.0",
"resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-2.6.0.tgz",
"integrity": "sha512-D4y/+OGe3JSuYUCBxtH5T9DSAWNcvCb/nQWIga8HNtXTVPQn59j0nTBAgaAXxUVBDl40mG3Tc76b46wPlZaiJQ==",
"version": "2.6.1",
"resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-2.6.1.tgz",
"integrity": "sha512-lID/vxSuKWXM55XhAKNoYXu9Cutoq5hFdkbTdI/zDKQktXzcWBVhNsOkiZFTMU9UtEWuGRNe0HUgmsFldIdxVA==",
"license": "Apache-2.0",
"dependencies": {
"@opentelemetry/core": "2.6.0",
"@opentelemetry/core": "2.6.1",
"@opentelemetry/semantic-conventions": "^1.29.0"
},
"engines": {
@@ -1116,14 +1116,29 @@
"@opentelemetry/api": ">=1.3.0 <1.10.0"
}
},
"node_modules/@opentelemetry/sdk-trace-base": {
"version": "2.6.0",
"resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-2.6.0.tgz",
"integrity": "sha512-g/OZVkqlxllgFM7qMKqbPV9c1DUPhQ7d4n3pgZFcrnrNft9eJXZM2TNHTPYREJBrtNdRytYyvwjgL5geDKl3EQ==",
"node_modules/@opentelemetry/resources/node_modules/@opentelemetry/core": {
"version": "2.6.1",
"resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-2.6.1.tgz",
"integrity": "sha512-8xHSGWpJP9wBxgBpnqGL0R3PbdWQndL1Qp50qrg71+B28zK5OQmUgcDKLJgzyAAV38t4tOyLMGDD60LneR5W8g==",
"license": "Apache-2.0",
"dependencies": {
"@opentelemetry/core": "2.6.0",
"@opentelemetry/resources": "2.6.0",
"@opentelemetry/semantic-conventions": "^1.29.0"
},
"engines": {
"node": "^18.19.0 || >=20.6.0"
},
"peerDependencies": {
"@opentelemetry/api": ">=1.0.0 <1.10.0"
}
},
"node_modules/@opentelemetry/sdk-trace-base": {
"version": "2.6.1",
"resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-2.6.1.tgz",
"integrity": "sha512-r86ut4T1e8vNwB35CqCcKd45yzqH6/6Wzvpk2/cZB8PsPLlZFTvrh8yfOS3CYZYcUmAx4hHTZJ8AO8Dj8nrdhw==",
"license": "Apache-2.0",
"dependencies": {
"@opentelemetry/core": "2.6.1",
"@opentelemetry/resources": "2.6.1",
"@opentelemetry/semantic-conventions": "^1.29.0"
},
"engines": {
@@ -1133,6 +1148,21 @@
"@opentelemetry/api": ">=1.3.0 <1.10.0"
}
},
"node_modules/@opentelemetry/sdk-trace-base/node_modules/@opentelemetry/core": {
"version": "2.6.1",
"resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-2.6.1.tgz",
"integrity": "sha512-8xHSGWpJP9wBxgBpnqGL0R3PbdWQndL1Qp50qrg71+B28zK5OQmUgcDKLJgzyAAV38t4tOyLMGDD60LneR5W8g==",
"license": "Apache-2.0",
"dependencies": {
"@opentelemetry/semantic-conventions": "^1.29.0"
},
"engines": {
"node": "^18.19.0 || >=20.6.0"
},
"peerDependencies": {
"@opentelemetry/api": ">=1.0.0 <1.10.0"
}
},
"node_modules/@opentelemetry/semantic-conventions": {
"version": "1.40.0",
"resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.40.0.tgz",
@@ -1238,18 +1268,18 @@
"license": "Apache-2.0"
},
"node_modules/@sentry/core": {
"version": "10.45.0",
"resolved": "https://registry.npmjs.org/@sentry/core/-/core-10.45.0.tgz",
"integrity": "sha512-s69UXxvefeQxuZ5nY7/THtTrIEvJxNVCp3ns4kwoCw1qMpgpvn/296WCKVmM7MiwnaAdzEKnAvLAwaxZc2nM7Q==",
"version": "10.46.0",
"resolved": "https://registry.npmjs.org/@sentry/core/-/core-10.46.0.tgz",
"integrity": "sha512-N3fj4zqBQOhXliS1Ne9euqIKuciHCGOJfPGQLwBoW9DNz03jF+NB8+dUKtrJ79YLoftjVgf8nbgwtADK7NR+2Q==",
"license": "MIT",
"engines": {
"node": ">=18"
}
},
"node_modules/@sentry/node": {
"version": "10.45.0",
"resolved": "https://registry.npmjs.org/@sentry/node/-/node-10.45.0.tgz",
"integrity": "sha512-Kpiq9lRGnJc1ex8SwxOBl+FLQNl4Y137BydVooP7AFiAYZ6ftwHsIEF1bcYXaipHMT1YHS2bdhC2UQaaB2jkuQ==",
"version": "10.46.0",
"resolved": "https://registry.npmjs.org/@sentry/node/-/node-10.46.0.tgz",
"integrity": "sha512-vF+7FrUXEtmYWuVcnvBjlWKeyLw/kwHpwnGj9oUmO/a2uKjDmUr53ZVcapggNxCjivavGYr9uHOY64AGdeUyzA==",
"license": "MIT",
"dependencies": {
"@fastify/otel": "0.17.1",
@@ -1283,9 +1313,9 @@
"@opentelemetry/sdk-trace-base": "^2.6.0",
"@opentelemetry/semantic-conventions": "^1.40.0",
"@prisma/instrumentation": "7.4.2",
"@sentry/core": "10.45.0",
"@sentry/node-core": "10.45.0",
"@sentry/opentelemetry": "10.45.0",
"@sentry/core": "10.46.0",
"@sentry/node-core": "10.46.0",
"@sentry/opentelemetry": "10.46.0",
"import-in-the-middle": "^3.0.0"
},
"engines": {
@@ -1293,13 +1323,13 @@
}
},
"node_modules/@sentry/node-core": {
"version": "10.45.0",
"resolved": "https://registry.npmjs.org/@sentry/node-core/-/node-core-10.45.0.tgz",
"integrity": "sha512-KQZEvLKM344+EqXiA9HIzWbW5hzq6/9nnFUQ8niaBPoOgR9AiJhrccfIscfgb8vjkriiEtzE03OW/4h1CTgZ3Q==",
"version": "10.46.0",
"resolved": "https://registry.npmjs.org/@sentry/node-core/-/node-core-10.46.0.tgz",
"integrity": "sha512-gwLGXfkzmiCmUI1VWttyoZBaVp1ItpDKc8AV2mQblWPQGdLSD0c6uKV/FkU291yZA3rXsrLXVwcWoibwnjE2vw==",
"license": "MIT",
"dependencies": {
"@sentry/core": "10.45.0",
"@sentry/opentelemetry": "10.45.0",
"@sentry/core": "10.46.0",
"@sentry/opentelemetry": "10.46.0",
"import-in-the-middle": "^3.0.0"
},
"engines": {
@@ -1339,12 +1369,12 @@
}
},
"node_modules/@sentry/opentelemetry": {
"version": "10.45.0",
"resolved": "https://registry.npmjs.org/@sentry/opentelemetry/-/opentelemetry-10.45.0.tgz",
"integrity": "sha512-PmuGO+p/gC3ZQ8ddOeJ5P9ApnTTm35i12Bpuyb13AckCbNSJFvG2ggZda35JQOmiFU0kKYiwkoFAa8Mvj9od3Q==",
"version": "10.46.0",
"resolved": "https://registry.npmjs.org/@sentry/opentelemetry/-/opentelemetry-10.46.0.tgz",
"integrity": "sha512-dzzV2ovruGsx9jzusGGr6cNPvMgYRu2BIrF8aMZ3rkQ1OpPJjPStqtA1l1fw0aoxHOxIjFU7ml4emF+xdmMl3g==",
"license": "MIT",
"dependencies": {
"@sentry/core": "10.45.0"
"@sentry/core": "10.46.0"
},
"engines": {
"node": ">=18"
@@ -5097,9 +5127,9 @@
}
},
"node_modules/openai": {
"version": "6.32.0",
"resolved": "https://registry.npmjs.org/openai/-/openai-6.32.0.tgz",
"integrity": "sha512-j3k+BjydAf8yQlcOI7WUQMQTbbF5GEIMAE2iZYCOzwwB3S2pCheaWYp+XZRNAch4jWVc52PMDGRRjutao3lLCg==",
"version": "6.33.0",
"resolved": "https://registry.npmjs.org/openai/-/openai-6.33.0.tgz",
"integrity": "sha512-xAYN1W3YsDXJWA5F277135YfkEk6H7D3D6vWwRhJ3OEkzRgcyK8z/P5P9Gyi/wB4N8kK9kM5ZjprfvyHagKmpw==",
"license": "Apache-2.0",
"bin": {
"openai": "bin/cli"
+15 -13
View File
@@ -1,6 +1,6 @@
{
"name": "mirotalk",
"version": "1.7.60",
"version": "1.7.61",
"description": "A free WebRTC browser-based video call",
"main": "server.js",
"scripts": {
@@ -9,16 +9,18 @@
"start-dev": "nodemon app/src/server.js",
"test": "mocha tests/*.js",
"lint": "npx prettier --write .",
"docker-build": "docker build --tag mirotalk/p2p:latest .",
"docker-rmi": "docker images |grep '<none>' |awk '{print $3}' |xargs docker rmi",
"docker-push": "docker push mirotalk/p2p:latest",
"docker-pull": "docker pull mirotalk/p2p:latest",
"docker-rmc": "docker container rm mirotalk --force",
"docker-run": "docker run -d -p 3000:3000 --name mirotalk mirotalk/p2p:latest",
"docker-rune": "docker run -d -p 3000:3000 -v .env:/src/.env:ro --name mirotalk mirotalk/p2p:latest",
"docker-run-vm": "docker run -d -p 3000:3000 -v .env:/src/.env:ro -v ./app/:/src/app/:ro -v ./public/:/src/public/:ro --name mirotalk mirotalk/p2p:latest",
"docker-start": "docker start mirotalk",
"docker-stop": "docker stop mirotalk"
"mailpit:up": "docker-compose -f docker-compose-mailpit.yml up -d",
"mailpit:down": "docker-compose -f docker-compose-mailpit.yml down",
"docker:build": "docker build --tag mirotalk/p2p:latest .",
"docker:rmi": "docker images |grep '<none>' |awk '{print $3}' |xargs docker rmi",
"docker:push": "docker push mirotalk/p2p:latest",
"docker:pull": "docker pull mirotalk/p2p:latest",
"docker:rmc": "docker container rm mirotalk --force",
"docker:run": "docker run -d -p 3000:3000 --name mirotalk mirotalk/p2p:latest",
"docker:rune": "docker run -d -p 3000:3000 -v .env:/src/.env:ro --name mirotalk mirotalk/p2p:latest",
"docker:run-vm": "docker run -d -p 3000:3000 -v .env:/src/.env:ro -v ./app/:/src/app/:ro -v ./public/:/src/public/:ro --name mirotalk mirotalk/p2p:latest",
"docker:start": "docker start mirotalk",
"docker:stop": "docker stop mirotalk"
},
"repository": {
"type": "git",
@@ -44,7 +46,7 @@
"dependencies": {
"@mattermost/client": "11.4.0",
"@ngrok/ngrok": "1.7.0",
"@sentry/node": "^10.45.0",
"@sentry/node": "^10.46.0",
"axios": "^1.13.6",
"chokidar": "^5.0.0",
"colors": "^1.4.0",
@@ -63,7 +65,7 @@
"jsdom": "^29.0.1",
"jsonwebtoken": "^9.0.3",
"nodemailer": "^8.0.4",
"openai": "^6.32.0",
"openai": "^6.33.0",
"qs": "^6.15.0",
"socket.io": "^4.8.3",
"swagger-ui-express": "^5.0.1",
+1 -1
View File
@@ -107,7 +107,7 @@ let brand = {
},
about: {
imageUrl: '../images/mirotalk-logo.gif',
title: 'WebRTC P2P v1.7.60',
title: 'WebRTC P2P v1.7.61',
html: `
<button
id="support-button"
+2 -2
View File
@@ -15,7 +15,7 @@
* @license For commercial use or closed source, contact us at license.mirotalk@gmail.com or purchase directly from CodeCanyon
* @license CodeCanyon: https://codecanyon.net/item/mirotalk-p2p-webrtc-realtime-video-conferences/38376661
* @author Miroslav Pejic - miroslav.pejic.85@gmail.com
* @version 1.7.60
* @version 1.7.61
*
*/
@@ -13738,7 +13738,7 @@ function showAbout() {
Swal.fire({
background: swBg,
position: 'center',
title: brand.about?.title && brand.about.title.trim() !== '' ? brand.about.title : 'WebRTC P2P v1.7.60',
title: brand.about?.title && brand.about.title.trim() !== '' ? brand.about.title : 'WebRTC P2P v1.7.61',
imageUrl: brand.about?.imageUrl && brand.about.imageUrl.trim() !== '' ? brand.about.imageUrl : images.about,
customClass: { image: 'img-about' },
html: `