jitsi / jitsi-meet

Jitsi Meet - Secure, Simple and Scalable Video Conferences that you use as a standalone app or embed in your web application.
https://jitsi.org/meet
Apache License 2.0
23.28k stars 6.76k forks source link

Consider having an official docker image #1388

Closed pierreozoux closed 5 years ago

pierreozoux commented 7 years ago

It would be nice to have one (or different) official Docker image.

I will work on it for me, if you are intersted, I can help you making it official. In the mean time, i could also PR it here?

Let me know what you think!

saghul commented 7 years ago

I'll let others also chime in, but here is my personal take: it's too fragile. It will only work on Linux because Docker on macOS spawns a tiny Linux VM so all ports we need to function would need to be forwarded to that VM.

In addition, Docker is very opinionated about what a container should include: we need nginx, prosody, jicofo and jvb. In my mind that should all go to a single container, but there is no way that pleases everyone.

So, all in all, I fear this would bring more trouble than it's worth.

Those are my 2 cents.

pierreozoux commented 7 years ago

I need it, so I'll work on it, I'll solve my troubles :)

My question is more, what if I maintain it, would you like me to PR this repo and help you make it official?

saghul commented 7 years ago

I need it, so I'll work on it, I'll solve my troubles :)

Great!

My question is more, what if I maintain it, would you like me to PR this repo and help you make it official?

Yeah, that would be nice.

Thanks for volunteering! 🥇

advancedsoftwarecanada commented 7 years ago

BigBlueButton offers this kind of service and has worked well for them. Why not have some VM images of an Ubuntu server, Mac, etc running?

Other than the time it takes lol.

pierreozoux commented 7 years ago

@AndyNormore we are post VM world nowadays :)

Here is the helm chart for jitsi: https://github.com/kubernetes/charts/pull/863

pierreozoux commented 7 years ago

As @gpolitis mentioned in https://github.com/jitsi/jitsi-videobridge/pull/442#issuecomment-289563096, and it makes more sense also to have an official image, could you create 3 repos, and eventually give me push rights there:

In the mean time, I created https://hub.docker.com/u/jitsi/, where we'll push docker images, waiting the official acceptance from docker. (Give me your docker hub handle, then I can put you admin there).

To be able to make the docker images officials, I'll need the following to be solved:

saghul commented 7 years ago

Hey @pierreozoux thanks a lot for your work on this! I'll share my thoughts here, note that these need not represent the view of Jitsi as a whole, and we should seek consensus before more effort is put in this. Are you familiar with the Jitsi community call? I think it would a great venue for discussion.

So, in general terms a Jitsi Meet deployment has 2 parts: the signaling plane and the media plane.

Having a container for each component in the signaling plane adds a lot of unnecessary complexity IMHO, the real load is in the media plane.

My ideal container setup would involve a signaling container, and a number of media containers (jigasi and jibri being other extra containers). Since they have to work together, something like Docker Compose or ansible-container would be great, with extra credit for Swarm or K8s.

pierreozoux commented 7 years ago

When is the next meeting? (Sorry, I searched for the information, didn't find it) But yes, would be happy to join and explain my vision.

saghul commented 7 years ago

Here you go!

Jitsi Community Call Scheduled: Apr 10, 2017, 17:30 to 19:00 (GMT+2) Location: https://meet.jit.si/TheCall

I repeats every 2 weeks, we just had one yesterday, alas.

jdileonardo commented 7 years ago

FYI I came across this

https://github.com/robertoandrade/docker-jitsi-meet/blob/master/Dockerfile

Seems to be running fine for me now. But yeah, an official solution would be nice.

+2

hlevring commented 7 years ago

Got home a few hours too late to join the community call. Did you guys make any conclusions on the next steps for the docker image support?

pierreozoux commented 7 years ago

Bummer :/ I forgot. I'm really sorry, I'm under stress lately..

I'll come next meeting the 24th then.

Sorry again!

On 10-04-2017 18:58, hlevring wrote:

Got home a few hours too late to join the community call. Did you guys make any conclusions on the next steps for the docker image support?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/jitsi/jitsi-meet/issues/1388#issuecomment-293028938, or mute the thread https://github.com/notifications/unsubscribe-auth/ABxvHXN3N2an1GZ2SbdUtU4jN6N5NjYXks5rum3UgaJpZM4MYMwa.

-- I use PGP to protect our privacy, if you want to know more, you can follow this https://emailselfdefense.fsf.org/en/

If you have further questions, please do not hesitate to ask. You can verify my public key here: https://keybase.io/pierreozoux

saghul commented 7 years ago

Hey folks! We talked about it yesterday, here is the specific part: https://www.youtube.com/watch?v=o-FenGz97KQ

TLDW: We are leaning towards a single fat container to begin with, my suggestion being to base it on https://github.com/phusion/baseimage-docker because it's based in Ubuntu and our packages can be used right of the bat.

I understand not everyone likes this, but that's our stance at the moment. If anyone wants to work on this, a PR is more than welcome, I'll help review.

pierreozoux commented 7 years ago

Ok, I'm sad, but it is your project/decision.

Do you want it to become official docker image, or not? If yes, then, don't use phusion. https://github.com/docker-library/official-images/blob/master/README.md#init

If no, then, just close this thread.

saghul commented 7 years ago

TBH I don't know the difference between an official image and me pushing images under a username.

At any rate, from that document:

Following the Docker guidelines it is highly recommended that the resulting image be just one concern per container;

In my book, "highly recommended" is not the same as "forbidden if otherwise".

I do want us to have a Docker image users can use, but based on Phusion's base image, for the time being. If you don't want to follow this direction, I understand, somebody else will do the work, but I'd like to ask that you don't use the Jitsi name in Docker Hub, please, since users would be confused.

Thanks,

pierreozoux commented 7 years ago

TBH I don't know the difference between an official image and me pushing images under a username.

It is like an official debian package and a ppa. You get security scans for free also: https://hub.docker.com/r/library/node/tags/ (You need to be logged in to see them)

In my book, "highly recommended" is not the same as "forbidden if otherwise".

I can tell you that they'll refuse anything based on phusion. check the repo, there is not such thing.

I do want us to have a Docker image users can use, but based on Phusion's base image, for the time being. If you don't want to follow this direction, I understand, somebody else will do the work, but I'd like to ask that you don't use the Jitsi name in Docker Hub, please, since users would be confused.

Yes, I created that organisation: https://hub.docker.com/r/jitsi/ for the mean time, please just give me your docker hub handle, and I promote you as admin right away. It was not to confuse people, but just speed things. Sorry if you felt offended.

saghul commented 7 years ago

I can tell you that they'll refuse anything based on phusion. check the repo, there is not such thing.

That's too bad then :-S

Yes, I created that organisation: https://hub.docker.com/r/jitsi/ for the mean time, please just give me your docker hub handle, and I promote you as admin right away. It was not to confuse people, but just speed things. Sorry if you felt offended.

On the contrary, I appreciate you efforts a lot! I'm sorry we couldn't find alignment in how want to pursue things at this stage, but never say never!

My Docker Hub handle is the same as my GitHub username, thanks for that!

pierreozoux commented 7 years ago

@saghul you are now owner of the dockerhub jitsi organisation.

saghul commented 7 years ago

Thank you!

dalareo commented 7 years ago

Hey @pierreozoux, I also need the docker images for my project, is there any WIP or something I can contribute to??

pierreozoux commented 7 years ago

In each project I opened a PR, you should find everything there.

If you need an helm chart, I opened a PR in the official chart repo.

I have some stuff I ddin't commit yet, if you need help, ping me here.

pierreozoux commented 7 years ago

https://github.com/jitsi/jitsi-meet/pull/1423

l00mi commented 7 years ago

what is the state here?

saghul commented 7 years ago

@l00mi nothing to report so far, sorry.

maurolucc commented 7 years ago

@saghul I know you commented just a few days ago but I'd like to know which is the status of this so far...

Thanks in advance!

aaronkvanmeerten commented 7 years ago

Excuse my cut-off reply:

We are happy to take any contributions you’re interested in making. We haven’t had this as a priority because of the many and varied ways in which jitsi-meet is deployed. Any docker container with jitsi-meet would need to be able to connect to other other components (jicofo, jitsi video bridge), which require configuration. Any docker solution would have to allow for the many different ways that the stack can be deployed.

So we’re open to community contribution, and haven’t focused our own efforts on Docker as a deployment solution at the current moment.

Cheers,

-Aaron

On Sep 20, 2017, at 10:55, Aaron van Meerten aaron.van.meerten@gmail.com wrote:

We are happy to take any contributions you’re interested in making. We haven’t had this as a priority because of the many and varied ways in which jitsi-meet

On Sep 20, 2017, at 10:53, Mauro notifications@github.com wrote:

@saghul https://github.com/saghul I know you commented just a few days ago but I'd like to know which is the status of this so far...

Thanks in advance!

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/jitsi/jitsi-meet/issues/1388#issuecomment-330896595, or mute the thread https://github.com/notifications/unsubscribe-auth/AC8JeB0OP5gJsDEIvFaKX3Wz_537uWwrks5skTTlgaJpZM4MYMwa.

maurolucc commented 7 years ago

@aaronkvanmeerten I comprehend your comments. Thanks for your response.

sapkra commented 6 years ago

I found one solution developed by matrix. https://github.com/matrix-org/docker-jitsi

fyi: I'm currently working on a solution for OpenShift. I've created an s2i image for jitsi-meet you can find here. I will also publish my OpenShift template in some weeks.

tvld commented 6 years ago

Chipping in here. Investigation the Jitsi for first time. I fully support @pierreozoux and not so much the ideas lie @aaronkvanmeerten is mentioning: "docker solution would have to allow for the many different ways ".

People new on the block want to get something up and running quickly and searching for a strong opinionated simple deployment. Working from there the adjustment will come later on personal preference. I spend an hour on this project now and still dont have a test thing running. That's enough to let many people wander away and dont come back.

So please: quick docker deployment, well, heck yes, on Ubuntu/nginx why not? The Windows and Mac guys can easily follow along if needed...

Now a coffee and wandering of to some other WebRTC to see if I can get something quickly running to demonstrate our needs...

EduardoRT commented 6 years ago

I think a docker-compose file with individual images will work best, you can keep a docker image per project and then join them all together with a docker-compose file.

Yes, it's true that MacOS still uses a VM for docker, but it has port forwarding and it's basically invisible if you map the ports correctly.

Having a monolith FROM: ubuntu will also work and will make the development of the image easier, but it's not really the docker way and will make it harder to achieve more complex setups (autoscaling, for example) since all the parts are within the same image.

For the people not familiar with docker-compose: Compose is a tool for defining and running multi-container Docker applications. To learn more about Compose refer to the following documentation https://docs.docker.com/compose/

novalis111 commented 6 years ago

Here's another take for the Jitsi Stack: https://github.com/tiredofit/docker-jitsi-meet

dimaip commented 6 years ago

@novalis111 would be pull if you could set up an automated build in Docker Hub for your images. They are really cool and I would like to try to use them in docker swarm mode. edit: oh, my bad, found it

l00mi commented 6 years ago

@dimaip https://github.com/tiredofit/docker-jitsi-meet#installation ?

novalis111 commented 6 years ago

@dimaip They are not mine, just found them on the search for a good docker image. It's a shame there is no official one for jitsi meet, but i see the complexity as well, esp. if you strive to have it platform independent.

dimaip commented 6 years ago

@l00mi yep, as said, found it already, was looking at docker-compose.yml file originally.

tansaku commented 6 years ago

At the moment it seems we have at least five options on github for dockerfiles for jitsi:

We've just spent an hour finding that https://github.com/robertoandrade/docker-jitsi-meet doesn't work for us out of the box, and seems to be rather out of date.

I guess our options now are to try all these other four versions in turn, and then make our own if none of them work?

We love jitsi, but the performance on meet.jitsi.org is insufficient in terms of screen share and youtube streaming, hence we want to deploy our own, but at the moment we're just burning time on this. We've got dokku instances on Azure and would love to be able to push up a dockerized jitsi that supports screen sharing and youtube streaming to find out if we can get the performance level we need for our pairing community with larger ubuntu instances ...

If anyone has any suggestions for which jitsi docker image to focus on we're all ears - or is there something we can do to help the jitsi community come together behind some particular approach to deployment automation?

novalis111 commented 6 years ago

At the moment the above mentioned one is the most advanced imho. Best case scenario is if this would be updated by the Jitsi maintainers with clear instructions at least for the most common platform, which is Linux. I was able to set it up in two days, but there are lots of "little secrets" missing in the docs like the need to setup multiple subdomains to get it to work.

tansaku commented 6 years ago

@novalis111 thanks - you're saying that https://github.com/robertoandrade/docker-jitsi-meet is the most advanced? Or one of the other ones?

Do you have any notes on all those little secrets? :-)

novalis111 commented 6 years ago

Nope, https://github.com/tiredofit/docker-jitsi-meet bc he followed the manual installation procedure and provides good documentation. Unfortunately i didn't make notes then tinkering. Maybe in a few days when i migrate it to a bigger server.

pierreozoux commented 6 years ago

@novalis111 @tansaku @tiredofit I'm not deploying jitsi any more, so I don't need it anymore, but I understand your pain, it is really annoying. But if the maintainers don't want, it is really difficult to start a community work, if it is not happening upstream.

What we can do, is to create an org, our own repo, and collaborate there. Yes, it looks like this, but this is the best plan I can come up.

We can create this with the following goal:

I'm not sure it will work, and I have personally no resources for that at the moment, but it might work :) I'll add anybody asking me as an owner of the github org or docker hub org.

https://github.com/librejitsi/docker

tiredofit commented 6 years ago

I'm more than willing to make some edits to my Jitsi Meet stack to function better, but at this stage I've reached my technical knowledge of how to make anything much more work. I've gone as far as getting LDAP authentication to work, but I'd really like to be able to have a solution that allows for token based logins (to be used with Rocketchat), and also take advantage of the LDAP mechanism.

I too struggled when I started out to make Jitsi Meet work and we are not deployed in production on our site as there are still a few too many unknowns.

gurumark commented 6 years ago

It is very unfortunate that there is no currently working solution on jitsi. The reps I tried have lots of bugs and get you frustrated after spending a couple of hours. If the maintainers really care about the popularity of their product, they should rethink their decision.

saghul commented 6 years ago

I've been secretly working on a set of Docker images on my spare time. I hope to share them soon.

We have not forgotten, but things take time...

tansaku commented 6 years ago

@saghul if you shared them, perhaps we could all help you testing them and tweaking them?

Things sure do take a long time if you work on them independently in your spare time, but sometimes a team of folks can move faster - or it can go the other way too :-) Naturally it's totally up to you :-)

Right now we'd just like to start with something ... doesn't have to work, just be one that we all put our backs behind

rberrelleza commented 6 years ago

I'm the maintainer of https://github.com/rberrelleza/jitsi-docker. I wrote https://github.com/rberrelleza/jitsi-docker/blob/master/Dockerfile based on the installation script, it all runs in a single container, and it works fine on EC2. That being said, it hasn't been tested beyond 2-5 people. If there's interested, I wouldn't mind opening a PR and making this "official".

saghul commented 6 years ago

@rberrelleza I'm taking a different approach in the end: a container per service with user defined networking for communication. docker-compose takes care of most of what's needed.

novalis111 commented 6 years ago

I guess there should be both variants, maybe called "simple" and "advanced". I tried the current state from @tiredofit and @rberrelleza last night and none of them builds atm. Tried on Debian 9.4 w/ latest docker package. I will try to debug and maybe start an approach with debian packages and automating config for a monolithic and simple version for those guys who just want a simple proof of concept or sth for small companies/groups/families/friends.

saghul commented 6 years ago

@novalis111 That's what I did. Except it's multiple containers instead of one, but that should be ok with docker-compose, since it looks like a monolith.

novalis111 commented 6 years ago

Then don't be shy and push what you have ;) I think there are plenty of people here willing to help with testing and weeding out bugs. You could join the org @pierreozoux created or sth to make this a group effort.

saghul commented 6 years ago

It's not about being shy. As I said, it started as a side project which I want to bring into this org, but I want to feel comfortable with it before proposing it. I strongly disagree with the mere existence of github.com/librejitsi so don't expect me to go there.