Your own WEB conference service in 5 minutes

WEB and video conferencing became a vital part of any digital business. There are many online WEB conference service providers which are doing a good job for the money.

But in case you are concerned with the cost or privacy/security, there is a good alternative – free open source software project Jitsi.org

For example, for 100 employees with ability to start their own WEB conference, the basic Zoom plan may cost you about $2,000/month.

Depending on how much conferencing you do, your requirements can be supported by a virtual cloud infrastructure which may cost just about $200-$300/month.

Note: Cost estimation is subject to data volume, traffic, number of concurrent conferences etc.

You just need to deploy it on your own server. In my video I show how to run your own Jitsi server in AWS cloud in about 5 minutes.


I wanted to keep the video as short as possible, so I followed a fairly basic Jitsi installation. You can explore Jitsi project for additional modules, features and recommended best practices.

Here are additional useful resources to explore.

Original post “Run your own teleconferencing server with Jitsi on EC2” which I used as a baseline for my deployment.

Github project with the original cloudformation template:
https://github.com/chris-armstrong/jitsi-meet-cfn

My minor addition to the original cloudformation template to create a DNS record in Route 53 service:

  DNSRecord:
    Type: AWS::Route53::RecordSet
    DependsOn:
      - EIP    
    Properties:
      HostedZoneName: !Ref DNSZone
      Comment: DNS name for ec2 with Jitsi.
      Name: !Ref DNSName
      Type: A
      TTL: '900'
      ResourceRecords:
      - !Ref EIP

My .sh script to deploy cloudformation template:

export STACK_NAME=TestVideo
export SSH_LOCATION='0.0.0.0/0'
export KEY_NAME=jitsi-ec2-key
export DNS_ZONE=practicaltech.io.
export DNS_NAME=video.practicaltech.io
export EC2_TYPE=t2.small


aws cloudformation deploy \
  --stack-name $STACK_NAME \
  --template-file ./jitsi.yml  \
  --parameter-overrides SSHLocation=$SSH_LOCATION\
    KeyName=$KEY_NAME\
    DNSZone=$DNS_ZONE\
    DNSName=$DNS_NAME\
    InstanceTypeParameter=$EC2_TYPE

Finally, I recommend to spend another 5 minutes and secure your Jitsi deployment with password-based authentication as explained here: https://jitsi.github.io/handbook/docs/devops-guide/secure-domain

What is not mentioned in that handbook, is that you need to restart Jitsi components, I used the following commands:

# Restart
sudo prosodyctl restart
sudo /etc/init.d/jicofo restart
sudo /etc/init.d/jitsi-videobridge2 restart

# Add user - use your domain
sudo prosodyctl adduser me@example.com

Leave a Reply

Your email address will not be published. Required fields are marked *