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:
- Do not purchase a server that only meets the minimum requirements. The minimum specifications represent the software's bare survival threshold and do not account for operating system overhead or production workloads. Running with only 4 CPU cores, 4 GB RAM, 20 GB of disk space, and a 100 Mbps network connection can result in performance slowdowns, system freezes, or unexpected crashes during periods of high usage.
- For a stable deployment, we recommend using at least 4 dedicated CPU cores, 8 GB RAM, a 20 GB SSD, and a 1 Gbps network connection. Consider allocating additional disk space if you plan to store recordings, logs, or other application data.
| 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.
This applies to both VPS and VDS.
- You can install only one application using the one-click installer.
- To change or delete your application, follow the guide: How to Change an Application. Create a backup of your existing applications or templates.
- To keep your current template, install the new application manually using SSH. Follow the same steps for both Self-Managed VPS and Virtual Dedicated Server (VDS). The system automatically selects the recommended operating system for Jitsi Meet.
- Log in to your Bluehost Portal.
- In the left-hand menu, click the Hosting tab.

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

- Click the Reimage button.

- Select the Applications tab.

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

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

- Wait a few moments while the installation completes.

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

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
- Log in to your Bluehost Portal.
- In the left-hand menu, click the Hosting tab.

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

- Click the Reset Password.

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

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.
- SSH into your server: Open your terminal and connect as the root user:
If the selected plan does not meet the app's minimum requirements, the app will be grayed out.
ssh root@your_server_ip - 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.
- Navigate to the interface: Go to https://<server-ip> in your web browser.
Example: https://12.3.456.789/ - 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.
- Start a meeting: Click the Start meeting button. No account is required to get started.

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

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.
- 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.
- 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:
-
systemctl restart prosody
-
sleep 5
-
systemctl restart jicofo
-
systemctl restart jitsi-videobridge2
-
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
- Video bridge:
- 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:
- Nginx web configuration:
/etc/nginx/sites-available/jitsi
- Jitsi Meet client interface settings:
/etc/jitsi/meet/-config.js
- Jicofo backend configuration:
/etc/jitsi/jicofo/jicofo.conf
- Videobridge media configuration:
/etc/jitsi/videobridge/jvb.conf
- 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.