Metabase Installation and Troubleshooting Guide (Ubuntu 20.04)

Nitirat's Website

1. Installation (Standalone JAR)


1. Update System:
    sudo apt update && sudo apt upgrade -y

2. Install Java (OpenJDK 21 recommended):
    sudo apt install openjdk-21-jre -y
    java -version

3. Create Metabase user:
    sudo useradd -r -s /bin/false metabase

4. Download Metabase JAR:
    cd /opt
    sudo mkdir metabase
    sudo chown $USER metabase
    cd metabase
    wget https://downloads.metabase.com/v0.48.4/metabase.jar

5. Set Permissions:
    sudo chown -R metabase:metabase /opt/metabase

6. Create Systemd Service:
    sudo nano /etc/systemd/system/metabase.service

Paste the following:
—————————————-
[Unit]
Description=Metabase server
After=syslog.target
After=network.target

[Service]
WorkingDirectory=/opt/metabase
ExecStart=/usr/bin/java -jar /opt/metabase/metabase.jar
User=metabase
Type=simple
Restart=always
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=metabase

[Install]
WantedBy=multi-user.target
—————————————-

7. Enable and Start Service:
    sudo systemctl daemon-reexec
    sudo systemctl daemon-reload
    sudo systemctl enable metabase
    sudo systemctl start metabase

8. Open Firewall Port:
    sudo ufw allow 3000

9. Access Metabase:
    http://your_server_ip:3000

2. Troubleshooting


If Metabase is not accessible, follow these steps:

1. Check if the service is running:
    sudo systemctl status metabase

2. Check logs for errors:
    sudo journalctl -u metabase -b –no-pager

3. Confirm port 3000 is open and listening:
    sudo ss -tuln | grep 3000

4. Confirm firewall allows port 3000:
    sudo ufw status

5. Manually run the JAR to test:
    cd /opt/metabase
    java -jar metabase.jar

6. If you see ‘NoClassDefFoundError: java/util/SequencedCollection’:
    – Switch to Java 21:
        sudo apt install openjdk-21-jre -y
        sudo update-alternatives –config java

7. Test from the server:
    curl http://localhost:3000

8. If all else fails, use Docker:
    sudo apt install docker.io -y
    sudo systemctl start docker
    docker run -d -p 3000:3000 –name metabase metabase/metabase