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&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.