Guides 11792 Published by

The article walks readers through installing Apache OpenMeetings on a fresh Ubuntu or Debian server, starting with system updates and Java JDK installation to satisfy Tomcat's runtime needs. It then replaces the default Tomcat package with the official binary release, sets up a dedicated systemd service, and verifies that the container is running before moving on to database provisioning. After creating a clean MariaDB (or MySQL) instance and granting an OpenMeetings user full privileges, the guide shows how to drop the WAR into Tomcat's webapps folder, wire up a JDBC resource file, import the schema script, and tweak the properties file for URL prefix and SSL settings. Finally, firewall rules are opened or a reverse proxy added, the web UI wizard is completed to create an admin account, and basic functionality is tested by creating a room; if memory issues arise, heap size adjustments in startup.sh can be applied.



How to Install Apache OpenMeetings on Ubuntu/Debian Servers

OpenMeetings is a solid open‑source video‑conferencing platform, and getting it up and running on a fresh Debian or Ubuntu box is simpler than most people think. Below is a straight‑forward, step‑by‑step guide that covers every trick you’ll need to make the server talk.

1. Check Your Base System

First, make sure your OS is updated. The OpenMeetings repository we’ll pull from works best on Ubuntu 20.04 LTS or Debian 11; older releases get a bit more friction.

sudo apt update && sudo apt upgrade -y

If you’re on an older distribution, consider upgrading to a newer LTS before proceeding—OpenMeetings relies heavily on recent Java and Tomcat versions that may not ship with the old repos.

2. Install Java (OpenJDK)

Tomcat needs a Java runtime. OpenJDK 11 or 17 works fine; JRE alone isn’t enough because you’ll need the development tools later for tweaking JVM options.

sudo apt install -y openjdk-17-jdk

Verify:

java -version
# java version "17.0.x" …

Tomcat will refuse to start if it can’t find a compatible JDK, and the web app won’t be able to compile any custom Java code you add.

3. Add Apache Tomcat

Instead of using the thin Ubuntu‑packaged Tomcat (which is usually too old), we’ll install the official binary release directly from the Tomcat site.

cd /opt
sudo wget https://downloads.apache.org/tomcat/tomcat-9/v9.0.80/bin/apache-tomcat-9.0.80.tar.gz
sudo tar xf apache-tomcat-9.0.80.tar.gz
sudo mv apache-tomcat-9.0.80 tomcat
sudo chown -R $USER:$USER tomcat

Create a simple systemd service to keep Tomcat running:

sudo tee /etc/systemd/system/tomcat.service > /dev/null <<EOF
[Unit]
Description=Apache Tomcat Web Application Container
After=network.target

[Service]
Type=forking

Environment="JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64"
Environment="CATALINA_PID=/opt/tomcat/temp/tomcat.pid"
Environment="CATALINA_HOME=/opt/tomcat"
Environment="CATALINA_BASE=/opt/tomcat"

ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh

User=$USER
Group=$USER
UMask=0002
RestartSec=10
Restart=always

[Install]
WantedBy=multi-user.target
EOF

sudo systemctl daemon-reload
sudo systemctl enable --now tomcat

Now check the Tomcat health:

curl -I http://localhost:8080
# HTTP/1.1 200 OK …
4. Install and Configure MariaDB (or MySQL)

OpenMeetings stores all its data in a database, so you’ll need a fresh DB instance.

sudo apt install -y mariadb-server
sudo mysql_secure_installation

During the security wizard, set a strong root password and remove anonymous users. After that, create the OpenMeetings user:

CREATE DATABASE omv_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
GRANT ALL PRIVILEGES ON omv_db.* TO 'omv_user'@'localhost' IDENTIFIED BY 'StrongPassword123!';
FLUSH PRIVILEGES;

OpenMeetings expects a clean, UTF‑8 database; any mis‑configured collation will cause broken room names and data loss.

5. Download Apache OpenMeetings

Grab the latest WAR file from the project’s GitHub releases page:

cd ~/Downloads
wget https://github.com/apache/openmeetings/releases/download/7.0.0-SNAPSHOT-20240208T1111/openmeetings.war

Move it to Tomcat’s webapps directory and let the server unpack it automatically:

sudo cp openmeetings.war /opt/tomcat/webapps/

Tomcat will deploy it in a few seconds. Watch catalina.out for any errors.

6. Set Up Database Connection

Create a context file so Tomcat knows how to talk to MariaDB:

sudo tee /opt/tomcat/conf/Catalina/localhost/openmeetings.xml > /dev/null <<EOF
<Context>
    <Resource name="jdbc/openmeetingsDS"
              auth="Container"
              type="javax.sql.DataSource"
              username="omv_user"
              password="StrongPassword123!"
              driverClassName="org.mariadb.jdbc.Driver"
              url="jdbc:mariadb://localhost:3306/omv_db?useSSL=false&amp;allowPublicKeyRetrieval=true"/>
</Context>
EOF

If the JDBC URL is wrong, Tomcat will spin up but OpenMeetings won’t be able to load its data, leading to a white screen.

7. Import the Schema

OpenMeetings ships with an SQL script that builds all tables. Run it against your new database:

mysql -u omv_user -p omv_db < /opt/tomcat/webapps/openmeetings/WEB-INF/schema.sql

You’ll be prompted for the password you set earlier.

8. Configure OpenMeetings Properties

Open the properties file and set a few essential parameters:

sudo nano /opt/tomcat/webapps/openmeetings/WEB-INF/classes/org/apache/openmeetings/conf/openmeetings.properties

At minimum, change:

# URL prefix for the site
om.url.prefix=http://your.server.ip:8080/openmeetings

# Enable SSL if you plan to expose it over HTTPS (later)
om.ssl.enabled=false

Save and exit. Tomcat will reload automatically; if not, restart:

sudo systemctl restart tomcat
9. Open the Firewall

If you’re on a cloud provider or have UFW enabled, open port 8080 so you can hit the UI.

sudo ufw allow 8080/tcp
sudo ufw reload

You can also set up a reverse proxy with Nginx for nice URLs and HTTPS:

server {
    listen 80;
    server_name meetings.example.com;

    location / {
        proxy_pass http://localhost:8080/openmeetings/;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

Reload Nginx after editing:

sudo systemctl reload nginx
10. Finish the Setup in the Web UI

Navigate to http://your.server.ip:8080/openmeetings (or your domain). The first time you open it, you’ll be greeted by a wizard that asks for an admin account and some basic configuration—just follow the prompts.

Real‑world note: I’ve seen installations fail at this point when the database user had no SELECT privileges on the omv_db. Double‑check those permissions if you hit a 500 error right after logging in.

11. Verify Everything Works

Create a test room, start a meeting, and check that participants can join without lag. If you experience memory hiccups or Tomcat crashes, bump the Java heap size in /opt/tomcat/bin/startup.sh:

export CATALINA_OPTS="-Xms512m -Xmx1g"

Then restart Tomcat.

That’s it—Apache OpenMeetings is now live on your Ubuntu/Debian server. You can start inviting colleagues, students, or friends for free video meetings without relying on a commercial service.