-
-
Notifications
You must be signed in to change notification settings - Fork 15.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
nixos/jitsi-meet: init #82920
nixos/jitsi-meet: init #82920
Conversation
@GrahamcOfBorg test jitsi-meet |
@mmilata Wow, superamazing! Huge thanks! I'll try to test this today or during the weekend at least. Very excited. 🙂 I suppose it's ok to build them from binary deb packages for now, but it'd be good to have "building from source" as todos for these packages? |
@jluttine yeah that would be ideal, I've tried mavenix and mvn2nix and none worked for me, I guess I'd need advice from someone more experienced with Java/Maven. Though there seems to be quite a lot of packages in nixpkgs that just download archive with .jar like this. Building the webapp through node2nix errors out on some missing webpack plugin, probably has simple solution I missed. |
This pull request has been mentioned on NixOS Discourse. There might be relevant details there: https://discourse.nixos.org/t/nixos-nixpkgs-nix-discord-for-voice-communication/5845/40 |
This pull request has been mentioned on NixOS Discourse. There might be relevant details there: https://discourse.nixos.org/t/package-services-for-schools-covidsupport/6335/7 |
I tested this on localhost and seems to work! I had a successful two people video conference. Just one minor issue/question, but it could be related to running it under localhost: I cannot access the front page of Jitsi Meet. Whenever I go to my IP on LAN This is how I configured:
I was expecting a similar front page as in https://meet.jit.si/ or is that just some custom configuration of their site? I might actually prefer this automatic redirection to a new room, but just wondering how it's expected to behave. |
@jluttine it's a feature, you can turn it off with edit: maybe we whould enable the welcome page by default as is in the default config that is currently not included in the package: https://github.com/jitsi/jitsi-meet/blob/master/config.js |
@mmilata Ah, nice! Perhaps that would be a good |
extraConfig = '' | ||
authentication = "anonymous" | ||
c2s_require_encryption = false | ||
admins = { "focus@auth.${cfg.hostname}" } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is that a predefined local user that must exist? I am not sure why focus@
is there.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Indeed, the jicofo
service requires an admin user: https://github.com/jitsi/jicofo#manual-prosody-configuration
Thanks for review guys, pushed version that addresses some comments:
PTAL Gonna attempt to build jitsi-meet from source again now. |
4932002
to
124d159
Compare
Force-pushed:
|
This pull request has been mentioned on NixOS Discourse. There might be relevant details there: https://discourse.nixos.org/t/package-services-for-schools-covidsupport/6335/1 |
I would really like to use this as soon this is available. Is there a way to use it as it is now? Im a software developer myself so at least i could report back problems i encounter, but i have to say i am a real dummy when it gets to nixos. |
This pull request has been mentioned on NixOS Discourse. There might be relevant details there: https://discourse.nixos.org/t/nixcon-2020-status-update/6914/6 |
Pushed:
Feedback appreciated. Hoping to address the other outstanding issues in the near future. @Zhen-hao Sorry, not in this PR. |
extraConfig = '' | ||
certificates = "${config.services.prosody.dataDir}" | ||
|
||
Component "conference.${cfg.hostName}" "muc" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can these component names be like in their official documentation?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
They are - conference.${cfg.hostName}
and focus.${cfg.hostName}
are the same.
The linked document describes connecting videobridge as a XMPP component named jitsi-videobridge.${cfg.hostName}
, which is deprecated. It is now recommended to connect the videobridge as a XMPP client that joins the internal.${cfg.hostName}
MUC component.
See this part of the official DEB package or their docker, repo.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Also regarding deprecation: https://github.com/jitsi/jitsi-videobridge/blob/master/doc/muc.md
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So manual-install, updated 20 days ago is documenting a deprecated installation method? Huuuh…
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
WARNING: Manual installation is not recommended. We recommend following the quick-install document. The current document describes the steps that are needed to install a working deployment, but steps are easy to mess up, and the debian packages are more up-to-date, where this document is sometimes not updated to reflect latest changes.
Seems to me like the Debian package should be authoritative, and this PR matches what it does.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Unfortunately the documentation is a bit lacking and needs to be combined with reverse engineering the Debian packages and digging through Jitsi Discourse:(
For example according to https://github.com/jitsi/jitsi-meet/blob/master/doc/scalable-installation.md#jitsi-videobridge2 manual configuration of NAT addresses is no longer needed which I had no idea about.
Pushed:
According to https://github.com/jitsi/jitsi-meet/blob/master/doc/scalable-installation.md#jitsi-videobridge2 it should be no longer needed to configure IP addresses when running behind NAT - can someone confirm this please? |
I was also trying to improve the test and it should in theory be possible to test this end-to-end, i.e. including the javascript that runs in browser by means of the The module must be enabled in node configuration:
Then it's possible to create mock camera that will output static image with text:
This is where I got stuck:
Any ideas? |
I think there is a v4l2loopback option that helps with Chromium. Look in v4l2loopback issue tracker or something. (Sorry, on mobile.) |
To whom it may concern: I copied the relevant module/package files from this PR to my nur-packages repo so that you can more easily use this PR without patching your nixpkgs. Like this PR, it depends on prosody changes on nixpkgs-unstable. There is also a sample config that works with recent updates of this PR. [The nur-packages repo @mmilata had some problems.] |
Regarding adding a certificate in firefox, I think the only way is to do something like
Though, it would be good if someone could figure how to point firefox at the system store: it's still an open issue. |
Is somebody still working on this? |
@bachp I don't have the motivation to work on this any more, at least not anytime soon. Apologies to everyone. Feel free to reuse expressions from this PR. IIRC the main thing that is missing is LetsEncrypt support for Prosody<->{jicofo,videobridge} certificates. Here's OCR-enabled test of video functionality that doesn't work reliably. |
Can we have a MVP (with some documentation to get the thing working) and have new features add as Pull Requests? |
Thanks to everyone who contributed to this. Some of my friends and I use it since a while for socializing 😄 I have one small improvement request: The nginx config is based off the manual install guide, while the Debian packages contain a completely different nginx config. The Debian config allows for "-" characters in room names, which is required when using the Matrix/Riot integration, because that generates room names with "-" characters. It would be great to change to a nginx config based on the Debian package. |
locations."/http-bind" = { | ||
proxyPass = "http://localhost:5280/http-bind"; | ||
extraConfig = '' | ||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This header is set twice on systems where the recommendedProxySettings are enabled. Not sure if it is a problem, but it might be nicer to either not use the proxyPass attribute, or enable recommendedProxySettings instead of setting it in extraConfig.
I agree with makefu that feature / improvement requests should not keep this module from being included in nixpkgs. I'm generally interested in continuing this PR up to the point where it can be merged as a minimum viable product, but I'm not interested in maintaining the package and module long-term, so if anyone is up to that task feel free to contact me so we can make it work. |
FYI: I started a second try with #92468 |
Jitsi Meet video conferencing setup following these instructions (similar to the Debian quick install).
The java apps are not built from source but repackaged prebuilt JARs. I'm at my wit's end wrt building them from source so I'd like to ask someone more knowledgeable in maven to help me with this, potentially in another PR. (Edit: got source build mostly working.)
How to test
If you don't mind switching your system to the snapshot of NixOS Unstable this PR is based on, you can simply pass
-I nixpkgs=https://github.com/otevrenamesta/nixpkgs/archive/jitsi-meet.tar.gz
tonixos-rebuild
ornixops
.If you want to only import the module without the rest of the OS, for example on 19.09 install, you can use the module from NUR:
Example configuration:
Motivation for this change
#82805
Things done
sandbox
innix.conf
on non-NixOS linux)nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
./result/bin/
)nix path-info -S
before and after)