Hello community,
We have a new PR for setting up OCTO in our docker-jitsi-meet instance. I will mention my infrastructure for the same and everything I have done.
Machine |
IP |
Role |
Docker Swarm Role |
A |
172.16.4.200 |
Full Docker Jitsi Meet Stack |
Docker swarm Leader |
B |
172.16.4.231 |
JVB2 |
Docker Swarm Node |
C |
172.16.4.232 |
JVB3 |
Docker Swarm Node |
D |
172.16.4.233 |
JVB4 |
Docker Swarm Node |
How do I go ahead after this ?
- Make minimum 3 master nodes to avoid single point of failure.
- Is Octo enabled ? You can check jicofo and jvb logs for
Octo
.
Here I’m assuming that all the nodes are connected to each other. you can check docker node ls
.
also you have registered all the JVB’s with prosody.
@metadata yes they are.
But I am stuck at deploying the stack. Gives me an error when I try to run this command
docker stack deploy --compose-file docker-compose.yml jitsi
Ignoring unsupported options: restart
Ignoring deprecated options:
expose: Exposing ports is unnecessary - services on the same network can access each other's containers on any port.
Creating network jitsi_meet.jitsi
Error response from daemon: rpc error: code = 3 desc = name must be valid as a DNS name component
@metadata I have never used swarm before so. It might sound silly but I am using the regular docker-compose.yml file only. Do I need to make any swarm related changes in the same file ?
Just joined all the three nodes B C and D to A
ok. Everything is fine as of now. Now did you try scaling jvb? Any error?
@metadata exactly, how do I scale jvb’s ? I have just deployed it as it is. Can you help me with this ?
@metadata moreover, how do I deploy this stack on docker-swarm
Also when I try to register jvb1, I get this error
prosodyctl --config /config/prosody.cfg.lua register jvb1 meet.jitsi 7274a4a3bd749c14a5d853ae4da6971e
Error: Account creation/modification not supported
You have to scale jvb using Octo approach. for same create a file stack-jvb2.yml
, copy jvb1 config to it and change jvb1
with jvb2
and then register jvb2 with prosody.
you have to change the service name too
@metadata thanks for the reply, these are the queries that I have
- this stack-jvb2.yml will be in my machine B right ?
- jvb1 config will be in machine A, but where exactly ?
- I have issues registering. I don’t understand why
- I am still running this entire stack as a docker installation. I cannot figure out how to do the same for docker swarm
Copy all your files like stack-jitsi.yml
, stack-jvb1.yml
stack-jvb2.yml
to server A. You can control where to run jvb1, jvb2 using constraints
like node.hostname == A
. hence you don’t have to copy all the files to every server.
what is the value of env CONFIG
? for me its ~/.jitsi-meet-cfg
. I run below command on every server to remove the previous config and to create new directories.
sudo rm -rf ~/.jitsi-meet-cfg/{web,prosody,jicofo,jvb} && mkdir ~/.jitsi-meet-cfg/{web,prosody,jicofo,jvb}
Is docker swarm initialized? can you share the output of docker node ls
@metadata
- I have cloned the same repo - https://github.com/jitsi/docker-jitsi-meet/pull/804 on every machine. Machine A has the entire stack ( web, prosody, jvb and jicofo ). On machine B, I have the same docker-compose.yml which was on A, in which only jvb configs are there. Same goes for C and D. The only difference is, in .env, I have erased the JVB_AUTH_PASSWORD and kept it the same as the one which is on machine A and JVB_AUTH_USER as jvb on machine A, jvb1 on machine B, jvb2 on machine C and JVB 3 on machine D.
I init docker swarm just now and joined the other 3 machines ( b c and d )
docker node ls

I have the above mentioned issue while registering anything in prosofy container
Value of CONFIG is the same and I remove it everytime before spinning up new containers
If you are not creating your own docker image then there is no need to clone the repo.
- create your own docker image for jvb
- hard code the jvb2 authentication in prosody file and build your own prosody image.
- you have to build jicofo image too.
Did you create new docker images for prosody, jicofo, jvb? OR You have to wait till next release.
go to prosody/rootfs/etc/cont-init-d/10-config
and add below lines
prosodyctl --config $PROSODY_CFG register jvb1 $XMPP_AUTH_DOMAIN $JVB_AUTH_PASSWORD
prosodyctl --config $PROSODY_CFG register jvb2 $XMPP_AUTH_DOMAIN $JVB_AUTH_PASSWORD
it will register both the jvb’s at runtime.
now you have create your own docker image
@metadata so like, it won’t work as expected just by cloning the repo like I used to do before. What I thought, or what I was expecting is, after cloning this repo, and running it, my docker jitsi meet setup will be up and running and then, I can connect any number of jvb’s to machine a’s prosody. Seems that this is not the case.
I have to build by own images. Right ?
exactly. If you are using Jitsi images then there is no need of cloning repo in case of docker swarm but if you are using docker-compose then yes you need a repo becuase it used .env file.