Metabase - Getting Started Guide
Metabase is an open-source business intelligence platform that lets you explore data, build dashboards and share insights – without writing SQL. Connect your databases (PostgreSQL, MySQL, MongoDB and others), ask questions through a visual query builder and turn the answers into interactive charts and dashboards.
Step 1 – Verify Metabase Works
Your server’s IP address and root password are shown in the Server Information section on the Overview tab of your server in the client portal. The application settings you entered when ordering, passwords included, are shown in the Metabase Credentials card on the same tab. Open your browser and go to:
https://your.server.ip
HTTPS without a domain. Since January 2026 Let’s Encrypt issues certificates for IP addresses (official announcement), so your server gets a real, browser-trusted certificate on first boot – before you connect any domain. Certificates of this kind are short-lived (about six days) and renew automatically. If your server is not reachable from the internet on port 80 (for example, it sits behind a router), the certificate cannot be issued – in that case use http:// instead.
Metabase is set up automatically when the server is created: the administrator account is created with the email and password you entered during the order. Setup takes about half a minute, and the client portal shows the server as ready when it finishes. Until then the page answers 403 Forbidden – Metabase stays closed to visitors until your administrator account exists. When it loads, you’ll see the Sign in to Metabase page.
If you placed the server behind a VyOS router on a private network, the server has only a private address, so it does not get the IP certificate. Reach Metabase on the private address through a VPN on the router (WireGuard or OpenVPN, on the router’s Configuration tab), or forward ports 80 and 443 to the server on the router’s Configuration tab (Port forwarding). For a trusted HTTPS certificate, point a domain to the router’s public address (Step 3).
Firewall. If you turn on the Firewall for this server in the client portal, allow incoming TCP port 80 in its rules, along with 443 (HTTPS). Certificates renew over port 80 – the IP certificate every few days – and without that rule the certificate expires and the browser starts showing a warning.
Step 2 – Sign In
Metabase login:
- Email: the Metabase Admin Email you entered during the order
- Password: the Metabase Admin Password you entered during the order
There is no setup wizard to go through: the administrator account already exists and anonymous usage statistics are turned off. After signing in you land on the Metabase home page – use Add your data to connect a database, or open Examples to explore the sample data first.
Step 3 – Configure Domain and SSL (Optional)
To use Metabase with your own domain and HTTPS:
- Create an A record in your DNS settings pointing your domain to the server IP
- Wait for DNS propagation (usually a few minutes to a few hours)
- Connect via SSH and update the Nginx configuration:
ssh root@your.server.ip
# Update Nginx server_name with your domain
sed -i 's/server_name _;/server_name your-domain.com;/' /etc/nginx/sites-available/metabase
nginx -t && systemctl reload nginx
# Obtain a free Let's Encrypt SSL certificate
certbot --nginx -d your-domain.com
Certbot will automatically configure Nginx for HTTPS and set up certificate auto-renewal.
Post-Installation
Connecting Databases
To add a data source after initial setup:
- Click the gear icon (top right) → Admin settings → Databases → Add database
- Select the database type (PostgreSQL, MySQL, MongoDB, SQLite, etc.)
- Enter the connection details (host, port, database name, credentials)
- Click Save – Metabase will sync the schema automatically
For databases on external servers, make sure the firewall allows connections from your Metabase server IP.
Fail2Ban – Brute-Force Protection
Your server comes with Fail2Ban pre-configured to protect SSH from brute-force attacks.
| Rule | Max Attempts | Ban Duration |
|---|---|---|
| SSH | 5 failed logins | 10 minutes |
Useful commands:
# Check banned IPs
fail2ban-client status sshd
# Unban an IP
fail2ban-client set sshd unbanip 1.2.3.4
If you accidentally lock yourself out, open the Console on your server’s Overview tab in the client portal and unban your IP.
Service Management
Metabase runs as a systemd service. Useful commands:
# Check service status
systemctl status metabase
# Restart Metabase
systemctl restart metabase
# View logs
journalctl -u metabase -f
# Nginx reverse proxy
systemctl status nginx
systemctl reload nginx
Updates
To update Metabase to the latest version:
# Stop the service
systemctl stop metabase
# Download the latest JAR (backup the current one first)
cd /opt/metabase
cp metabase.jar metabase.jar.bak
curl -L -o metabase.jar https://downloads.metabase.com/latest/metabase.jar
# Start the service
systemctl start metabase
To update system packages via SSH:
apt update && apt upgrade -y
Backups
Metabase stores all its data (questions, dashboards, settings) in an H2 database. To back it up:
# Stop Metabase before backing up
systemctl stop metabase
# Copy the database file
cp /opt/metabase/metabase.db.mv.db /root/metabase-backup-$(date +%F).db
# Start Metabase again
systemctl start metabase
For production use with large datasets, consider migrating from H2 to PostgreSQL.
Software Included
| Component | Version |
|---|---|
| Ubuntu | 24.04 LTS |
| Metabase | 0.64.1 |
| Java | 21 |
| Nginx | 1.24 |
| Certbot | 5.8 (IP address), 2.9 (domain) |
| Fail2Ban | 1.0.2 |
Troubleshooting
| Problem | Solution |
|---|---|
| 403 Forbidden right after the server is created | Metabase opens to visitors only after your administrator account is created – wait a minute and reload. If the Overview tab of your server shows a warning that the application setup did not finish, Metabase rejected the password from the order (for example, as too common): check /opt/setup/setup.log over SSH and reinstall the server with the Rebuild button on its Overview tab in the client portal with a stronger password |
| Page won’t load after boot | Metabase takes 30-60 seconds to start. Wait and refresh. Check status: systemctl status metabase |
| 502 Bad Gateway in browser | Metabase is not running. Restart it: systemctl restart metabase. Check logs: journalctl -u metabase --no-pager -n 50 |
| Out of memory errors | Metabase requires at least 2 GB RAM. Check with free -h. Consider upgrading your server plan |
| Cannot connect to external database | Verify the database host, port and credentials. Ensure the remote database firewall allows connections from your server IP |
| Forgot Metabase admin password | Reset via SSH: java -jar /opt/metabase/metabase.jar reset-password EMAIL |
| Blocked by Fail2Ban | Use the Console on your server’s Overview tab in the client portal to unban your IP |
| Forgot root password | Use the Console on your server’s Overview tab in the client portal to reset it |