MiroTalk Initial package feedback
-
@robi taken from here: https://github.com/miroslavpejic85/mirotalk/blob/master/.env.template
# Host protection # HOST_PROTECTED: When set to true, it requires a valid username and password from the HOST_USERS list to initialize or join a room. # HOST_USER_AUTH: When set to true, it also requires a valid username and password, but these need to be provided in the URL parameters. # HOST_USERS: This is the list of valid host users along with their credentials. HOST_PROTECTED=false # true or false HOST_USER_AUTH=false # true or false HOST_USERS='[{"username": "username", "password": "password"},{"username": "username2", "password": "password2"}]'
-
@luckow great, got it to work, however it requires enabling access to unpkg.com
These are the domains it wants to connect to from the login view:
I'd also like to see an option to stop the telemetry and stats tracking by default. Didn't see an env var for that.
UPDATE1: the login is trivial to bypass once you know the next "landing" URL
It doesn't appear to use sessions, or prevent access to the URL w/o a user/pass combo.
However once you try to create and join a room, it asks for the login again. This will prevent sharing the URL for others to join without using a login.UPDATE2: screen sharing didn't seem to work on the receiving end for some reason. The blank screen to be shared appeared but not the content.
-
@robi we should report the telemetry and third-party requests upstream. Unfortunately, it looks like we'll have to join the Discord instead of reporting in Github https://github.com/miroslavpejic85/mirotalk/issues/132
-
@luckow He doesn't seem interested in changes around that issue, so we may have to edit that out ourselves..
I emailed him about our progress here so he can join the forum if he likes.
His response:
Hi Robi,
Nice to meet you and Thank you for integrating the MiroTalk P2P version into cloudron.io!
MiroTalk P2P leverages a WebRTC Mesh (Peer-to-Peer) architecture, meticulously optimized for small group video calls within the range of 5 to 8 participants per room.
For a more in-depth understanding of our WebRTC architecture, please refer to the detailed documentation provided.We're excited to share that, along with P2P, we offer other specialized variants for various video conferencing needs.
Explore MiroTalk SFU for large-scale conferences, MiroTalk C2C for engaging cam-to-cam video calls, BRO for efficient P2P broadcasting, and MiroTalk WEB for a versatile solution.In MiroTalk WEB Once you create an account, you'll have direct access to all these versions, allowing you to effortlessly organize meeting rooms, send invitations via email or sms messages, and enjoy the flexibility of our diverse solutions. MiroTalk WEB will be very nice to add on cloudron.io as it includes all MiroTalk Bundles
For any support or questions, our dynamic community on Discord is ready to assist at: MiroTalk Discord Community and here you can find many answers regarding any questions any may have.
Dive into our detailed official documentation at MiroTalk Documentation for comprehensive information about all projects.Thank you for being a part of the MiroTalk experience, where we cater to all your video conferencing needs!
Kind Regards,
Miroslav Pejic -
Dear Cloudron,
We extend our gratitude for seamlessly integrating MiroTalk P2P into cloudron.io!
MiroTalk P2P boasts a WebRTC Mesh (Peer-to-Peer) architecture, finely tuned for small group video calls with 5 to 8 participants per room. Delve into the intricacies of our WebRTC architecture here
MiroTalk offers specialized variants to meet diverse video conferencing needs. Explore MiroTalk SFU for large-scale conferences, MiroTalk C2C for engaging cam-to-cam video calls, MiroTalk BRO for efficient P2P broadcasting, and MiroTalk WEB for a versatile solution.
Upon creating an account on MiroTalk WEB and confirming it via email, you gain direct access to all these versions. Effortlessly organize meeting rooms, send invitations, and relish the flexibility of our diverse solutions.
Privacy and Data Usage in MiroTalk: A Clarification
In adherence to our Privacy Policy, MiroTalk employs telemetry requests upstream for the sole purpose of tracking aggregated usage statistics. This information is crucial for enhancing our service, and it is important to note that the creator of MiroTalk has no intention of personally using or selling any of the collected data.
To further prioritize user control, a configuration option will be introduced in the .env file, allowing users to decide whether they want to track their specific instance of MiroTalk. This feature, already done in MiroTalk SFU, will be implemented in the near future also for MiroTalk P2P.
Screen Sharing issue
If you've encountered any issues with screen sharing, we recommend checking the behavior in our official live demo and providing some browsers console logs can help us to understand the issue, Additionally, ensure that your Turn server is configured correctly; detailed information can be found here.
Host Protection and User Authentication Settings
Discover the latest updates on MiroTalk's security measures, focusing on P2P host protection and user authentication. For detailed insights, refer to this official GitHub commit: MiroTalk Commit 285c9260.
Doubits or Questions
Should you have any doubts or questions, we encourage you to engage with our community on our dedicated forum: https://discord.gg/rgGYfeYW3N.
Thank you for being part of the MiroTalk experience, dedicated to catering to all your video conferencing needs!
Warm Regards,
Miroslav Pejic -
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.
-
@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!Yes forgive me, Thank you and I'm very thrilled you like MiroTalk projects!
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 made a versatile solution for a variety of communication needs. We've crafted five distinct Mirotalk WebRTC projects, each designed to cater to specific requirements. Whether it's for virtual meetings, collaborative sessions, or any other communication purpose.
We also plan on packaging the web call scheduler, which allows to integrate those backends as standalone apps on Cloudron.
For detailed instructions on how to self-host MiroTalk WEB and integrate Mirotalk desired components, refer to our comprehensive documentation at https://docs.mirotalk.com/mirotalk-web/self-hosting/.
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.
MiroTalk P2P boasts a WebRTC Mesh (Peer-to-Peer) architecture, optimized for small group video calls with 5 to 8 participants per room. On the other hand, MiroTalk SFU (Selective Forwarding Unit) offers scalability and robust performance, capable of handling approximately 100 concurrent participants with just a single CPU. Although it requires port ranges, the scalability ensures a seamless and efficient communication environment.
If you have any thoughts on that, very welcome and much appreciated, as you are the expert on your app.
Thanks a bunch for the kudos! I'm just a developer like you, passionate about what I do. It's awesome connecting with fellow devs who share the love for coding. If you ever want to chat or share cool dev stories, I'm all ears! Happy coding!
-
@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 ...) -
"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?