Loading...

Reimage Your Server for Jitsi Meet Installation

Get your Jitsi video conferencing application up and running quickly on a Bluehost Self-Managed VPS and Virtual Dedicated Server (VDS). This guide walks you through installing the Jitsi template using the Bluehost Portal and accessing your server after installation.

System Requirements

Before deploying, ensure your server meets the following hardware requirements to ensure smooth video and audio performance:

Resources Minimum Requirements Recommended
CPU 4 CPU cores 4 dedicated CPU cores
Memory (RAM) 4 GB 8 GB
Disk 20 GB 20 GB SSD
Network 100 Mbps 1 Gbps

How to Reimage Your Server for Jitsi Meet Installation

This guide walks you through installing and setting up Jitsi Meet using the Bluehost Portal.

  1. Log in to your Bluehost Portal.
  2. In the left-hand menu, click the Hosting tab.

    Self Managed VPS
     

  1. Click the Manage button on the hosting package you want to reimage.

    BH AM - Select Server - Manage
     

  2. Click the Reimage button.

    BH AM - Manage Server - Overview - Reimage button
     

  3. Select the Applications tab.

    BH AM - Manage Server - Overview - Install Application
     

  4. From the list, find Jitsi Meet - 'jitsi' and click Select.

    BH AM - Manage Server - Overview - Install Application
     

  5. To confirm, please type "reimage" and then click Proceed to start the process.

    BH AM - Manage Server - Overview - Install Application
     

  6. Wait a few moments while the installation completes.

    BH AM - Install - Jitsi
     

  7. Once completed, you will see Jitsi Meet - 'jitsi'  listed in the Server Image section.

    BH AM - Manage Server - Overview - Install Application
     

How to Deploy and Manage Your Own Jitsi Meet Server on Ubuntu 24.04

Jitsi Meet is a powerful, open-source video conferencing solution that allows you to host private, secure meetings directly in your browser. This guide walks you through the process of deploying and managing a pre-configured Jitsi Meet stack on Ubuntu 24.04.

Phase 1: Reset Your Root Password

  1. Log in to your Bluehost Portal.
  2. In the left-hand menu, click the Hosting tab.

    Self Managed VPS
     

  3. Look for the server you want to manage then click the View Details to see more options.

    Self Managed VPS
     

  4. Click the Reset Password.

    Self Managed VPS
     

  5. In the pop-up window, type your new root password, then click Reset Password again to confirm and save the changes.

    Self Managed VPS
     

Phase 2: Initial Server Access

After launching your instance, the system automatically performs an initial boot sequence that takes approximately 30 seconds. This process detects your server's public IP, configures the Jitsi components, and generates a self-signed TLS certificate.

  1. SSH into your server: Open your terminal and connect as the root user:
    ssh root@your_server_ip
  2. Verify Setup: If you need to check the progress or verify that initialization completed, you can view the logs:
    cat /var/log/cloud-init-output.log

Phase 3: Access the Web Interface

Once the server is ready, you can start hosting video calls immediately.

  1. Navigate to the interface: Go to https://<server-ip> in your web browser.
    Example: https://12.3.456.789/
  2. Bypass the security warning: Because the server uses a self-signed certificate by default, your browser will show a security warning. This is expected. Click Advanced, then Proceed.
  3. Start a meeting: Click the Start meeting button. No account is required to get started.

    Self-Managed VPS - Jitsi Start Meeting

  4. Allow Access: Click the camera icon in your browser's address bar and select "Allow" for camera and microphone access. Then, refresh the page.
  5. Enter Name: Type your name in the "Enter your name" box.
  6. Join: Click the blue "Join meeting" button.

    Self-Managed VPS - Jitsi Join Meeting

Phase 4: Configure and Secure Your Server

To move from a testing environment to a production-ready server, you need to apply a trusted SSL certificate and manage system settings.

  1. Set up a Domain: Ensure you have pointed a domain name (eg, meet.yourdomain.com) to your server's public IP address via your DNS provider.
  2. Install a Trusted SSL: Once your DNS has propagated, run the following script in your SSH terminal to automatically obtain and install a Let's Encrypt certificate:
    sudo /opt/jitsi/setup-ssl.sh

    This will replace the self-signed certificate and remove browser security warnings.

Phase 5: Service Management

Your Jitsi stack consists of several core services. If you need to perform maintenance, always restart them in the following order to ensure proper dependency synchronization:

  1. systemctl restart prosody
  2. sleep 5
  3. systemctl restart jicofo
  4. systemctl restart jitsi-videobridge2
  5. systemctl restart nginx

Phase 6: Monitoring and Troubleshooting

If you experience connectivity issues, use these commands to inspect the health of your server.

  • Check Service Status:
    systemctl status jitsi-videobridge2 systemctl status jicofo systemctl status prosody systemctl status nginx
  • View Real-time Logs:
    • Video bridge:
      tail -f /var/log/jitsi/jvb.log
    • Jicofo:
      tail -f /var/log/jitsi/jicofo.log
    • Nginx:
      journalctl -u nginx -f
  • Firewall: Your server uses UFW to protect sensitive ports. View the status with:
    ufw status verbose

Configuration Reference

If you need to make advanced adjustments, refer to these primary configuration files:

  1. Nginx web configuration:
    /etc/nginx/sites-available/jitsi
  2. Jitsi Meet client interface settings:
    /etc/jitsi/meet/-config.js
  3. Jicofo backend configuration:
    /etc/jitsi/jicofo/jicofo.conf
  4. Videobridge media configuration:
    /etc/jitsi/videobridge/jvb.conf
  5. Prosody XMPP server settings:
    /etc/prosody/conf.d/jitsi.cfg.lua

Additional Information and Example Documentation Output

You can run cat /root/README.md to see more information and useful commands:

Example Output:

 # Jitsi Meet - `jitsi`

## Description

Jitsi Meet is a fully open-source, self-hosted video conferencing platform that supports multi-party HD audio and video calls directly in the browser -- no client downloads required. This image provides a complete Jitsi Meet stack (Videobridge, Jicofo, Prosody, Nginx) on Ubuntu 24.04, ready to use immediately after first boot.

On first boot the image automatically detects the server's public IP, reconfigures all Jitsi components to use it, and generates a self-signed TLS certificate. For production use, point a domain name at the server and a Let's Encrypt certificate will be obtained automatically.

---

## Services

| Service             | Port  | Protocol | Purpose                                    |
|---------------------|-------|----------|--------------------------------------------|
| Jitsi Meet UI       | 443   | TCP      | HTTPS -- Jitsi Meet web interface          |
| HTTP redirect       | 80    | TCP      | Redirects HTTP to HTTPS / ACME challenge   |
| Jitsi Videobridge   | 10000 | UDP      | WebRTC media traffic                       |
| RTP fallback        | 4443  | TCP      | RTP over TCP fallback (Videobridge)        |
| STUN                | 3478  | UDP      | STUN queries (coturn)                      |
| TURNS               | 5349  | TCP      | TURNS / coturn TLS fallback                |
| OpenSSH             | 22    | TCP      | Remote access                              |

Ports are protected using UFW.

---

## How-to-use

### 1. Open Jitsi Meet

After the instance boots, open your browser and go to:

| URL | Purpose |
|-----|---------|
| `https://` | Jitsi Meet web interface |

Accept the self-signed certificate warning and click **Start a meeting** -- no account required by default.

### 2. SSH into the server

```bash
ssh root@
```

### 3. If Jitsi Meet is not accessible after boot

Run the first-boot script manually:

```bash
sudo bash /var/lib/cloud/scripts/per-instance/001_onboot
```

---

## Manage

### Jitsi services

```bash
systemctl status jitsi-videobridge2
systemctl status jicofo
systemctl status prosody
systemctl status nginx
```

```bash
systemctl restart jitsi-videobridge2
systemctl restart jicofo
systemctl restart prosody
systemctl restart nginx
```

### Service startup order

When restarting all services manually, always follow this order:

```bash
systemctl restart prosody
sleep 5
systemctl restart jicofo
systemctl restart jitsi-videobridge2
systemctl restart nginx
```

Prosody (XMPP server) must be fully up before Jicofo connects to it.

### UFW Firewall

```bash
ufw status verbose
```

### Logs

```bash
tail -f /var/log/jitsi/jvb.log
tail -f /var/log/jitsi/jicofo.log
journalctl -u prosody -f
journalctl -u nginx -f
journalctl -u jitsi-firstboot.service
cat /var/log/cloud-init-output.log
```

---

## Security hardening

| Hardening        | Detail                                                              |
|------------------|---------------------------------------------------------------------|
| UFW firewall     | Ports 22, 80, 443, 4443, 5349, 10000 open. Default deny incoming   |
| SSH rate limiting| Port 22 set to LIMIT -- brute force protection                      |
| HTTPS only       | All HTTP traffic redirected to HTTPS, WebRTC requires secure context|
| TLS certificate  | Self-signed by default, Let's Encrypt for production domains        |

---

## Configuration files reference

| File | Purpose | Permissions |
|------|---------|-------------|
| `/etc/nginx/sites-available/jitsi` | Nginx virtual host config | `0644` |
| `/etc/jitsi/meet/-config.js` | Jitsi Meet client config | `0644` |
| `/etc/jitsi/jicofo/jicofo.conf` | Jicofo config | `0644` |
| `/etc/jitsi/videobridge/jvb.conf` | Videobridge config | `0644` |
| `/etc/prosody/conf.d/jitsi.cfg.lua` | Prosody XMPP config | `0644` |
| `/opt/jitsi/setup-ssl.sh` | SSL setup and nginx rewrite script | `0755` |
| `/var/lib/cloud/scripts/per-instance/001_onboot` | First-boot script | `0755` |
| `/etc/update-motd.d/99-jitsi` | MOTD shown on SSH login | `0755` |
| `/etc/logrotate.d/jitsi` | Log rotation config | `0644` |

---

## Notes

- Jitsi Meet requires HTTPS -- WebRTC will not allow camera or microphone access over plain HTTP.
- The self-signed certificate will show a browser warning -- this is expected. For production, use a real domain so Let's Encrypt can issue a trusted certificate.
- First-boot configuration runs automatically via `jitsi-firstboot.service` and completes in approximately 30 seconds.
- The sentinel file `/var/lib/jitsi-firstboot.done` prevents the first-boot script from running more than once. Delete it to force a re-run.
- Remove the MOTD once no longer needed: `rm -f /etc/update-motd.d/99-jitsi`

---

## Minimum Resources

| Resource | Minimum  | Recommended       |
|----------|----------|-------------------|
| CPU      | 4 cores  | 4 dedicated cores |
| RAM      | 4 GB     | 8 GB              |
| Disk     | 20 GB    | 20 GB SSD         |
| Network  | 100 Mbps | 1 Gbps            |

---

## Links

- Jitsi Meet: [https://jitsi.org/jitsi-meet/](https://jitsi.org/jitsi-meet/)
- Jitsi Self-Hosting Guide: [https://jitsi.github.io/handbook/docs/devops-guide/devops-guide-quickstart](https://jitsi.github.io/handbook/docs/devops-guide/devops-guide-quickstart)
- Jitsi GitHub: [https://github.com/jitsi/jitsi-meet](https://github.com/jitsi/jitsi-meet)
- Ubuntu 24.04 LTS Release Notes: [https://wiki.ubuntu.com/NobleNumbat/ReleaseNotes](https://wiki.ubuntu.com/NobleNumbat/ReleaseNotes

Summary

Installing Jitsi on your Bluehost Self-Managed VPS and Virtual Dedicated Server (VDS) is a straightforward process that gives you a powerful, secure video conferencing platform in just a few steps. Before you reimage, make sure to back up all important files, as it will erase all data.

Loading...