πJitsi Meet Setup on docker

β Prerequisites
Launch AWS EC2 Ubuntu instance.

Domain name: Example: abc.domain.xyz pointed to the EC2 instance's public IP.
Open ports in EC2 Security Group:
80 (HTTP)
443 (HTTPS)
22 (SSH)
10000/udp (for video)
π§ Step 1: Install Required Software
sudo apt update
sudo apt install -y docker.io docker-compose nginx certbot python3-certbot-nginx ufw
sudo systemctl enable docker
π¦ Step 2: Set Up Jitsi with Docker Compose
git clone https://github.com/jitsi/docker-jitsi-meet.git
cd docker-jitsi-meet
cp env.example .env
Edit .env:
nano .env
Set these values:
HTTP_PORT=8000
HTTPS_PORT=8443
PUBLIC_URL=https://abc.domain.xyz
ENABLE_LETSENCRYPT=0
Create config directories:
mkdir -p ~/.jitsi-meet-cfg/{web,transcripts,prosody,jicofo,jvb}
Start Jitsi:
docker-compose up -d
π Step 3: Configure Nginx Reverse Proxy
Create Nginx config file:
sudo nano /etc/nginx/sites-available/jitsi
Paste this temporary non-SSL config:
server {
listen 80;
server_name abc.domain.xyz;
location / {
proxy_pass http://localhost:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
Enable the config:
sudo ln -s /etc/nginx/sites-available/jitsi /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
π Step 4: Obtain Let's Encrypt SSL Certificate
Run:
sudo certbot --nginx -d abc.domain.xyz
Certbot will automatically:
Edit your Nginx config
Add SSL blocks
Reload Nginx
Test renewal:
sudo certbot renew --dry-run
π Step 5: Setup Cron Job for Auto-Renewal
Open rootβs crontab:
sudo crontab -e
Add this line to renew daily at 3 AM:
0 3 * * * certbot renew --quiet --post-hook "systemctl reload nginx"
Confirm:
sudo crontab -l
π Step 6: Configure UFW Firewall (Optional but Recommended)
sudo ufw allow OpenSSH
sudo ufw allow 80
sudo ufw allow 443
sudo ufw allow 10000/udp
sudo ufw enable
β Test It All
Visit: https://abc.domain.xyz
Join a room and test video
Confirm SSL (π lock icon)
Check logs if needed:
docker-compose logs web tail -f /var/log/letsencrypt/letsencrypt.log
π§Ή Optional Next Steps
π Add secure domain for moderator-only room creation
π¨ Customize Jitsi UI
π§ Setup email alerts for SSL renewal failures


