Set up your own Jitsi video conferencing platform for one hundred concurrent users and unlimited hosts. This setup has been tested to run as expected using the best-in-class open-source WebRTC video conferencing platform, Jitsi Meet.

This guide will help you to set up Jitsi Meet in an AWS environment.

Prerequisites

Before you begin, make sure you meet the following prerequisites:

  • Basic AWS Knowledge: Familiarity with AWS services, EC2 instances, CloudFormation, and AWS Identity and Access Management (IAM) is required.
  • An active AWS account with appropriate permissions.
  • Enough vCPU limit to create EC2 instances. (Follow this guide to ensure this).

Launching the AMI

Step 1: Find and Select AMI

Log in to your AWS Management Console.

Follow the provided links to access the Jitsi Meet product you wish to set up.

(If you want to install Jitsi Meet with recording using Jibri, please follow this guide: Setup Jitsi Meet with Recordings)

Step 2: Initial Setup & Configuration

  1. Click the "Continue to Subscribe" button.
  2. After subscribing, accept the terms and conditions by clicking "Accept Terms".
  3. Wait for a few minutes for processing, then click "Continue to Configuration".
  4. Select your preferred region and click "Continue to Launch".
  5. From the "Choose Action" dropdown, select "Launch CloudFormation", and then click "Launch".

Create CloudFormation Stack

Step 1: Create stack

  1. Ensure the "Template is ready" radio button is selected under "Prepare template".
  2. Click "Next".

Step 2: Specify stack options

Provide the necessary parameters for your Jitsi deployment.

Parameter Description
Stack name A unique name for your CloudFormation stack.
Admin Email The email address for generating SSL certificates.
DeploymentName A name for your deployment (e.g., jitsi-prod).
jicofoSecret A strong, unique password for Jicofo.
jitsiDomainName Your public domain name (e.g., meet.yourcompany.com).
jvbSecret A strong, unique password for the JVB.
keyName The name of your EC2 key pair for SSH access.
meetInstanceType The EC2 instance type. We recommend c5.xlarge for up to 100 users.
SSHLocation The IP address range for SSH access. For better security, restrict this to your IP.

After filling in the details, click Next.

Step 3: Configure stack options

  1. Under "Stack failure options," choose "Roll back all stack resources".
  2. Click "Next".

Step 4: Review

  1. Review all the details you've entered.
  2. AWS CloudFormation Parameters review for the Jitsi Meet stack showing jitsiDomainName, keyName and a c5.xlarge meet instance type
  3. Acknowledge that CloudFormation might create IAM resources by ticking the checkbox.
  4. AWS CloudFormation IAM capabilities acknowledgment checkbox ticked before creating the Jitsi Meet stack
  5. Click "Submit".
  6. Jitsi Meet CloudFormation stack with CREATE_IN_PROGRESS status on the Events tab just after launch

You will be redirected to the CloudFormation stacks page, where you can monitor the deployment progress. The stack creation typically takes 5-10 minutes.

Jitsi Meet CloudFormation stack reaching CREATE_COMPLETE status on the Events tab

Update DNS

Step 1: Copy IP Address

Once the stack is created, go to the Outputs tab and copy the value of MeetPublicIp.

Jitsi Meet CloudFormation stack Outputs tab showing the MeetId and MeetPublicIp values

Step 2: Update DNS

  1. Go to your DNS provider (e.g., AWS Route 53).
  2. Create an A record for the domain you specified (jitsiDomainName).
  3. AWS Route 53 hosted zone showing the Jitsi Meet A record details with its IP value and TTL
  4. Point the record to the MeetPublicIp you copied.
  5. Route 53 Edit record panel setting the Jitsi Meet domain as an A record pointing to the instance IP address
  6. Save the record.

Generate SSL

Step 1: Log in to the server

  1. Copy the "MeetPublicIp" from the CloudFormation outputs.
  2. Open your terminal and use the following command to connect:
ssh -i "your-key.pem" ubuntu@<MeetPublicIp>
Terminal SSH connection to the Jitsi Meet server with a PEM key, accepting the host authenticity prompt
  1. Type "yes" and press Enter to log in.

Step 2: Generate SSL certificate

You can run the command below to automatically set up SSL. If this fails, follow the manual Certbot steps.

sudo /root/certificate_generate_standalone.sh

For manual generation, execute sudo certbot and follow the prompts:

  1. Enter your email.
  2. Terminal running sudo certbot on the Jitsi Meet server and entering an email address for renewal notices
  3. Agree to the terms.
  4. Certbot prompt to agree to the Let's Encrypt Terms of Service before registering with the ACME server
  5. Choose whether to share your email.
  6. Certbot prompt asking whether to share the email address with the Electronic Frontier Foundation
  7. Select your domain name from the list.
  8. Certbot prompt to select which domain name to activate HTTPS for on the Jitsi Meet server
  9. Choose to redirect HTTP to HTTPS (recommended).
  10. Certbot prompt choosing option 2 to redirect all HTTP traffic to HTTPS on the Jitsi Meet server

The SSL certificate will then be generated.

Create a Meeting

Open your web browser and navigate to your domain name. You will be directed to the Jitsi Meet dashboard. Enter a meeting name and click 'Start meeting' to begin.

Jitsi Meet CloudFormation stack Outputs tab showing the JitsiUrl link to the Jitsi Meet frontend

502 Bad Gateway Error?

If you see a "502 Bad Gateway" error, the application is likely still starting up. Please wait about 5 minutes and then refresh the page. Deployed Jitsi Meet homepage in a browser with the Start meeting button and a generated room name

Managing Your Jitsi Meet Instance

Shutting Down Jitsi Meet

To shut down the setup, you need to stop all the running servers if available. The number of instances deployed will depend on your setup.

  1. In the CloudFormation stack's Resources tab, click the link for the EC2 instances.
  2. CloudFormation Resources tab row showing the meet EC2 instance with CREATE_COMPLETE status
  3. Select an instance and use the Instance state dropdown to Stop instance. You can restart it later by selecting Start instance.
  4. AWS EC2 Instance state menu with Stop, Reboot and Terminate options for the running Jitsi Meet instance

Removing Jitsi Meet

To completely remove the application and all associated resources, delete the CloudFormation stack from the AWS console.

Check Server Logs

To check logs, log in to each server via SSH and use the following commands:

Jitsi Meet Server Logs:

sudo tail -f /var/log/jitsi/jicofo.log
sudo tail -f /var/log/prosody/prosody.log
sudo tail -f /var/log/nginx/error.log

JVB Server Logs:

sudo tail -f /var/log/jitsi/jvb.log

Troubleshooting

  1. vCPU Quota Error: If you see an error about vCPU limits, please follow this guide to request an increase.
  2. CloudFormation events showing a CREATE_FAILED rollback caused by an EC2 vCPU limit exceeded error
  3. Insufficient Capacity: If you get an "insufficient instance capacity" error, try launching the stack in a different AWS region or at a later time.
  4. CloudFormation events showing a CREATE_FAILED rollback caused by insufficient g4dn.metal instance capacity
  5. Dashboard Error: If the dashboard doesn't load immediately, wait 5-10 minutes for the services to initialize and then try again.
  6. Nginx 502 Bad Gateway error page shown by the Jitsi Meet server
  7. Other Issues: For other issues, check the server logs for detailed error messages.

Conclusion

This guide provides a comprehensive resource for integrating Jitsi Meet into your AWS setup. By following these steps, you can deploy a scalable and secure video conferencing platform tailored to your needs. Whether for virtual meetings, remote classes, or connecting with loved ones, Jitsi Meet empowers you to stay connected from anywhere in the world.

Frequently Asked Questions

What are the minimum instance requirements for Jitsi Meet?

For a small to medium setup (up to 100 users), we recommend an instance like c5.xlarge for the Jitsi Videobridge (JVB) and a smaller instance for the Jitsi Meet components.

Can I use my own domain name?

Yes. This guide walks you through configuring your own domain name and setting up SSL certificates for it.

How do I handle upgrades?

When a new version is available in the AWS Marketplace, you can launch the new version and migrate your data. Remember to backup your server data before removing the old version.

What should I do if I get a '502 Bad Gateway' error?

This error usually means the application is still starting up. Please wait about 5-10 minutes after deployment and then refresh the page.

Need Help with Your Jitsi Deployment?

If you run into any issues or need assistance with your Jitsi Meet setup, our support team is here to help.

Contact Support