Modify view "Waiting for host"

This is our use case/happens:

  1. moderator invites participants using jwt token (for the moderator, participants joins as guests).
  2. participants enters meeting (before moderator), but needs to wait for moderator to start he meeting.
  3. participants get’s the overlay “Waiting for host, conference has not started”. and button for “I’m host” and “cancel”.

What I want is that when participants tries to join they don’t get the option to click “I’m host”. We send out the link 15 min before the meeting starts and want the participants to wait until the meeting is started.

Can we either adjust text/buttons on the view “waiting for host” or can we config that participants don’t see the view “waiting for host” and get to the meeting when host starts the meeting?

This is not currently possible, but I think it would make an acceptable PR.

Any hints on what files are used to show the view right now?

You may create a scheduled meeting link on eparto.net.

Check this video to see how it works.

3 Likes

That’s the way we have developed our solution as well. We also check if the moderator has started the meeting before launching jitsi, so we know that the meeting i started.

One benefit of launching jitsi before the meeting starts is that the participants have the time to accept video/mic and check how the video looks.

@emrah remind me again: did you open-source eparto? Can one build their own custom version? It’s such an incredibly nice and nifty application, I think it should get more buzz.

Hi @Freddie,

It’s free and open source software licensed under the MIT license. Its GitHub repo is Galaxy but I haven’t prepared any guides/documents yet.

I can help if anyone wants to setup their own server.

2 Likes

Fantastic! I might look into setting up a server someday. If I do, I can help with guides/documents.
What are the server requirements? Does it need to be standalone?

1 Like

Requirements:

  • a standalone Debian 11 Bullseye server
  • at least 2 cores, 2 GB RAM, ~20 GB disk

Download installer

wget https://raw.githubusercontent.com/emrahcom/emrah-bullseye-base/main/installer/eb

Download the installer config file

wget https://raw.githubusercontent.com/emrahcom/galaxy/main/installer/eb-galaxy.conf

Set environment variables

Open the installer config file (eb-galaxy.conf) and update the following lines according to your environment

[[ -z "$ROOT_FQDN" ]] && export ROOT_FQDN=galaxy.corp
[[ -z "$APP_FQDN" ]] && export APP_FQDN=app.galaxy.corp
[[ -z "$KRATOS_FQDN" ]] && export KRATOS_FQDN=id.galaxy.corp

Run the installer as root

bash eb eb-galaxy

TLS certificates

It creates self-signed certificates by default. Run the following command if you want to switch to Let’s Encrypt.

set-letsencrypt-cert yourdomain.corp,app.yourdomain.corp,id.yourdomain.corp

Infrastructure

Schema

1 Like

@Mattias,

Do you want to allow guest participants to join the meeting before the meeting starts?

Sorry for late response. No I don’t want them to join the meeting before it’s started.

Sorry, I have not a good solution for this use case.

If you want to allow guests to join before the host user (without getting moderator privilege), that is possible.

Good day.
I have to ask a question here because comments are closed on github.
I installed the galaxy, I opened an interface that asked for a username and password. I registered and got into the interface for creating a conference on the mit.jit.si server
How can I set up a galaxy for my standalone server? Where are the configuration files located?
Jitsi is set to ldap authentication, do i have to register users again in galaxy or can they login through ldap?
How do I install my wildcard certificate?
Is there a setup guide somewhere?
Thanks

I enabled comments on GitHub.

Did you install your own Galaxy server or do you use my public installation which is located at eparto.net?

If you are trying eparto.net, you may add your Jitsi server by clicking “+” button on domain page.

You need 2 FQDNs to install your own Galaxy server:

Then you can install it using the installation script.

If you enabled ldap authentication, I think you don’t need much Galaxy. It’s more suitable for anonymous or token authentication. You already have a user database on LDAP, you don’t need to duplicate it.

By default it supports Let's Encrypt. To install your own certificate, change the following files with your owns:

  • /var/lib/lxc/eb-reverse-proxy/rootfs/etc/ssl/private/eb-cert.key (private key)
  • /var/lib/lxc/eb-reverse-proxy/rootfs/etc/ssl/certs/eb-cert.pem (chained cert)

There is no detailed configuration guide but you may ask me when you need help. I enabled the discussion on GitHub too.

Did you install your own Galaxy server or do you use my public installation which is located at eparto.net?

If you are trying eparto.net, you may add your Jitsi server by clicking “+” button on domain page.

My own. And I’m trying to figure out how to make galaxy see my standalone server

Then you can install it using the installation script.

Yes, I have already installed it and I have opened a page with login and password.

If you enabled ldap authentication, I think you don’t need much Galaxy.

LDAP authentication is enabled for those who can create conferences. The rest of the participants join as guests.

I thought that the galaxy would give me some kind of conference management admin panel. Who and where is located, which ones are going. And the possibility of creating a conference on a schedule.

Is this functionality not available?

Check adding a Jitsi domain to learn how to add your Jitsi server into your own Galaxy.

It’s available. After adding your Jitsi domain to Galaxy, you can create permanent or scheduled meetings, create invites for these meetings, etc.

Good day.
I use the galaxy all this time - it works flawlessly.
It’s time to make it more secure and branded.

  1. Tell me, please, how to remove the login and registration buttons in the upper right corner? I will only send invitations to users and would not like them to register in the system.
  2. Can the galaxy send emails with links?
  3. Can I change the design and logo of the first page and timer page for a scheduled conference?

Thank you for making a great product!

Hi @epigraphe,

I’m glad to hear you use it.

Galaxy uses SvelteKit for its UI. It’s possible to change navigation bar by editing bar-pub.svelte
codes.

All UI related codes and services are in eb-app-ui container. So

# attach container
lxc-attach eb-app-ui

# switch ui account
su -l ui

# edit codes
cd galaxy-dev/src/lib/components/nav
editor bar-pub.svelte

npm run check
npm run lint
npm run build
exit

# restart the service
systemctl restart galaxy-ui.service

Galaxy uses Ory Kratos for identity management. It is possible to create e-mail templates for it. See custom-email-templates. The related container is eb-kratos

lxc-attach eb-kratos
su -l kratos

# update configs

exit
systemctl restart kratos.service

Yes, you may update related svelte files.

I enabled discussions on GitHub.

Good day.
Last question here because I think I’m almost done setting up external access.
What ports need to be forwarded from an external address to my internal network?
I have three virtual servers:
Jitsi, Jibri and Galaxy
and one address that I have available outside. And a dns-zone where I can specify anything.
Is it possible to make both the Galaxy and Jitsi accessible from the outside?
I’m a little confused about forwarding 80 and 443. As I understand it, they are used by both jibri and the galaxy.

Jibri has no need an external port or an FQDN.

For Jitsi, two FQDNs are needed:

  • For Jitsi
    e.g. jitsi.mydomain.com
  • For TURN server
    e.g. turn.mydomain.com

For Galaxy, two FQDNs

  • For the web application
    e.g. app.mydomain.com
  • For the identity service (Ory Kratos)
    e.g. id.mydomain.com

The external ports

  • UDP/10000 for JVB
  • TCP/5349 for TURN
  • TCP/5222 for Prosody
    depending on how jibri connects to JMS
  • TCP/80 for Nginx
  • TCP/443 for Nginx

The complicated part is Nginx. You should redirect the requests based on the FQDNs. See this for this case.