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