{ "name": "mirotalksfu", "version": "1.9.87", "description": "WebRTC SFU browser-based video calls", "main": "Server.js", "scripts": { "test": "mocha tests/*.js", "start": "node app/src/Server.js", "start-dev": "nodemon app/src/Server.js", "debug": "DEBUG='mediasoup*' node app/src/Server.js", "compile": "npx webpack", "lint": "npx prettier --write .", "docker-build": "docker build --tag mirotalk/sfu:latest .", "docker-rmi": "docker image prune -f", "docker-push": "docker push mirotalk/sfu:latest", "docker-pull": "docker pull mirotalk/sfu:latest", "docker-rmc": "docker container rm mirotalksfu --force", "docker-run": "docker run -d -p 40000-40100:40000-40100 -p 3010:3010 -v ./.env:/src/.env -v ./app/src/config.js:/src/app/src/config.js:ro --name mirotalksfu mirotalk/sfu:latest", "docker-run-vm": "docker run -d -p 40000-40100:40000-40100 -p 3010:3010 -v ./.env:/src/.env -v ./app/:/src/app/:ro -v ./public/:/src/public/:ro --name mirotalksfu mirotalk/sfu:latest", "docker-start": "docker start mirotalksfu", "docker-stop": "docker stop mirotalksfu", "rtmp-start": "docker-compose -f rtmpServers/nginx-rtmp/docker-compose.yml up -d", "rtmp-stop": "docker-compose -f rtmpServers/nginx-rtmp/docker-compose.yml down", "rtmp-restart": "docker-compose -f rtmpServers/nginx-rtmp/docker-compose.yml down && docker-compose -f rtmpServers/nginx-rtmp/docker-compose.yml up -d", "rtmp-logs": "docker logs -f mirotalk-rtmp", "nms-node-start": "node rtmpServers/node-media-server/src/server.js", "nms-start": "docker-compose -f rtmpServers/node-media-server/docker-compose.yml up -d", "nms-stop": "docker-compose -f rtmpServers/node-media-server/docker-compose.yml down", "nms-restart": "docker-compose -f rtmpServers/node-media-server/docker-compose.yml down && docker-compose -f rtmpServers/node-media-server/docker-compose.yml up -d", "nms-logs": "docker logs -f mirotalk-nms" }, "repository": { "type": "git", "url": "git+https://github.com/miroslavpejic85/mirotalksfu" }, "keywords": [ "webrtc", "socket.io", "broadcasting", "sfu", "nodejs", "video", "audio", "openai", "oidc", "chatgpt", "rtmp", "poll", "client", "server", "streaming", "realtime" ], "author": "Miroslav Pejic", "license": "AGPL-3.0", "engines": { "node": ">=22" }, "dependencies": { "@aws-sdk/client-s3": "^3.913.0", "@aws-sdk/lib-storage": "^3.913.0", "@mattermost/client": "10.12.0", "@ngrok/ngrok": "1.5.2", "@sentry/node": "^10.20.0", "async-mutex": "^0.5.0", "axios": "^1.12.2", "chokidar": "^4.0.3", "colors": "1.4.0", "compression": "1.8.1", "cors": "2.8.5", "crypto-js": "4.2.0", "discord.js": "^14.23.2", "dompurify": "^3.3.0", "dotenv": "^17.2.3", "express": "5.1.0", "express-openid-connect": "^2.19.2", "fluent-ffmpeg": "^2.1.3", "he": "^1.2.0", "helmet": "^8.1.0", "httpolyglot": "0.1.2", "js-yaml": "^4.1.0", "jsdom": "^27.0.1", "jsonwebtoken": "^9.0.2", "mediasoup": "3.19.4", "mediasoup-client": "3.17.0", "nodemailer": "^7.0.9", "openai": "^6.6.0", "qs": "6.14.0", "sanitize-filename": "^1.6.3", "socket.io": "4.8.1", "swagger-ui-express": "5.0.1", "uuid": "13.0.0" }, "devDependencies": { "@babel/core": "^7.28.4", "@babel/preset-env": "^7.28.3", "babel-loader": "^10.0.0", "mocha": "^11.7.4", "node-fetch": "^3.3.2", "nodemon": "^3.1.10", "prettier": "3.6.2", "proxyquire": "^2.1.3", "should": "^13.2.3", "sinon": "^21.0.0", "webpack": "^5.102.1", "webpack-cli": "^6.0.1" } }