MiroTalk Initial package feedback
-
@robi said in Customizable front page + auth:
I'd also like to see an option to stop the telemetry and stats tracking by default. Didn't see an env var for thatI
I have made statistics configurable in this commit. To implement this feature, add the following variables to your .env file:
# Stats # Umami: https://github.com/umami-software/umami # We utilize our self-hosted Umami instance to track aggregated usage statistics for service improvement. STATS_ENABLED=true # Set to true or false STATS_SCR=YourUmamiEndpoint STATS_ID=YourInstanceId
If you prefer not to share your statistics with us for service enhancement, set STATS_ENABLED=false.
Enjoy using MiroTalk P2P v.1.2.77!
-
Hi and welcome here @MiroTalk
Deviating the discussion here a bit, but first of all, you have built something really great. Quite impressive!Given how MiroTalk has separated the backends neatly, our current plan was to package them individually, since they seem to cover slightly different use-cases. We also plan on packaging the web call scheduler, which allows to integrate those backends as standalone apps on Cloudron.
Initially I packaged them all at once, but that seemed a bit cumbersome, as on Cloudron it would require the user to allocate 5 (sub)domains for all to work, so we decided to split this, as we saw the main use-case to provide calls with say up to 10 people. Cloudron is not targeting audiences which require massive scaling, so that seemed fine. The initial package is the p2p flavor, since it works quite well and the SFU backend needs a port range, which is currently not supported by Cloudron. We hope to add this soon though if possible.
If you have any thoughts on that, very welcome and much appreciated, as you are the expert on your app.
@nebulon said in Customizable front page + auth:
Initially I packaged them all at once, but that seemed a bit cumbersome, as on Cloudron it would require the user to allocate 5 (sub)domains for all to work, so we decided to split this, as we saw the main use-case to provide calls with say up to 10 people.
Perhaps this can be resolved by using a single subdomain and multiple sub directories:
mirotalk.dev/p2p
mirotalk.dev/sfu
mirotalk.dev/c2cOr a combination, like Cryptpad, main app (sub)domain, and a services subdomain which has subdirectories.
-
@nebulon said in Customizable front page + auth:
Initially I packaged them all at once, but that seemed a bit cumbersome, as on Cloudron it would require the user to allocate 5 (sub)domains for all to work, so we decided to split this, as we saw the main use-case to provide calls with say up to 10 people.
Perhaps this can be resolved by using a single subdomain and multiple sub directories:
mirotalk.dev/p2p
mirotalk.dev/sfu
mirotalk.dev/c2cOr a combination, like Cryptpad, main app (sub)domain, and a services subdomain which has subdirectories.
-
@robi said in Initial package feedback:
Or a combination, like Cryptpad, main app (sub)domain, and a services subdomain which has subdirectories.
Cryptpad requires separate sandbox subdomain .
-
@nebulon said in Customizable front page + auth:
Initially I packaged them all at once, but that seemed a bit cumbersome, as on Cloudron it would require the user to allocate 5 (sub)domains for all to work, so we decided to split this, as we saw the main use-case to provide calls with say up to 10 people.
Perhaps this can be resolved by using a single subdomain and multiple sub directories:
mirotalk.dev/p2p
mirotalk.dev/sfu
mirotalk.dev/c2cOr a combination, like Cryptpad, main app (sub)domain, and a services subdomain which has subdirectories.
I'm not tested it but to self-host MiroTalk WEB that includes all MiroTalk WebRTC projects using a SINGLE DOMAIN NAME, the solution can be something like this:
- On the same server, put all Mirotalk projects and install all the requirements it needs.
- Start all Mirotalk instances on the same server, they listen on localhost on different ports.
- In the MiroTalk WEB config, instead of pointing to different subdomains or domains, point to the Mirotalk instances running.
"use-strict"; module.exports = { //... MiroTalk: { P2P: { Visible: true, Home: "https://YOUR-DOMAIN/p2p", Room: "https://YOUR-DOMAIN/p2p/newcall", Join: "https://YOUR-DOMAIN/p2p/join/", //... }, SFU: { Visible: true, Home: "https://YOUR-DOMAIN/sfu", Room: "https://YOUR-DOMAIN/sfu/newroom", Join: "https://YOUR-DOMAIN/sfu/join/", //... }, C2C: { Visible: true, Home: "https://YOUR-DOMAIN/c2c", Room: "https://YOUR-DOMAIN/c2c/?room=", //... }, BRO: { Visible: true, Home: "https://YOUR-DOMAIN/bro", Broadcast: "https://YOUR-DOMAIN/bro/broadcast?id=", Viewer: "https://YOUR-DOMAIN/bro/viewer?id=", //... }, }, //... };
- Configure Nginx to route traffic based on paths to the corresponding Mirotalk instances.
server { listen 443 ssl; server_name YOUR-DOMAIN; ssl_certificate /path/to/ssl_certificate.crt; ssl_certificate_key /path/to/ssl_certificate_key.key; location /p2p/ { proxy_pass http://localhost:P2P-PORT/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; # Socket.IO Support proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } location /sfu/ { proxy_pass http://localhost:SFU-PORT/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; # Socket.IO Support proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } location /c2c/ { proxy_pass http://localhost:C2C-PORT/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; # Socket.IO Support proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } location /bro/ { proxy_pass http://localhost:BRO-PORT/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; # Socket.IO Support proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } }
Replace
YOUR-DOMAIN
,P2P-PORT
,SFU-PORT
, etc., with the actual domain name and port numbers used by your Mirotalk instances. Ensure that the SSL certificate paths are correctly specified.Now, when you access the specified Mirotalk URLs over HTTPS, Nginx will proxy the requests to the corresponding instances running on localhost. Adjust the configuration according to your specific setup and requirements.
-
Hi,
for me - using/hosting Bigbluebutton - the installation (and trying demo server) doesn't work: Freezing cameras, audio issues, Android (e/OS) not working. Maybe issues on turn/stun-server. But I can't see/understand how config and enable it inside a cloudron installation. The cloudron-turn-server seems not be used. What config file is used for this? (I also did not see this on MiroTalk-Docs ...) -
Hi,
for me - using/hosting Bigbluebutton - the installation (and trying demo server) doesn't work: Freezing cameras, audio issues, Android (e/OS) not working. Maybe issues on turn/stun-server. But I can't see/understand how config and enable it inside a cloudron installation. The cloudron-turn-server seems not be used. What config file is used for this? (I also did not see this on MiroTalk-Docs ...) -
"MiroTalk has nothing to do with BigBlueButton."
Of course. I didn't mix here, only told my experiance with a working BBB-Installation. Curious, I tested MiroTalk on Cloudron. I got typical problems when a turn server was missing or ports failed: audio stops, cameras freezing. So first step for me is, checking the turn server thing, but don't know, if MiroTalk in Cloudron uses the iunternal turn server (seems not to be) and next step: how setting the config with an external tun server?