Back to all templates
Metabase logo

Metabase

Application1024MB+ RAM

Open-source business intelligence and analytics platform

analyticsbidashboardreporting

Deploy Metabase in 3 Steps

1

Connect Your VPS

Add your server credentials to Server Compass

2

Select Metabase

Choose from our template library

3

Deploy & Configure

Fill in settings and click Deploy

No Docker knowledge required
Step-by-step deployment guide

Deploy Metabase on a VPS with Server Compass

Use the Metabase template in Server Compass to deploy a self-hosted business intelligence and analytics platform with PostgreSQL metadata storage on your VPS, then verify the Metabase web UI in a browser.

About 7 minutesBrowser verified
1
Step 1

Open the server Apps tab

Select your VPS, open the Apps tab, and start a new app deployment. Keep sensitive server details hidden before capturing or sharing screenshots.

Server Compass Apps tab before creating a Metabase app
2
Step 2

Choose an app template

Click New App and choose the template deployment path so Server Compass can load the built-in catalog.

Choosing to deploy an app from a Server Compass template
3
Step 3

Search for Metabase

Use the template picker search to find Metabase in the Server Compass template catalog.

Searching for Metabase in the Server Compass template picker
4
Step 4

Select the Metabase template

Choose the Metabase template. Server Compass fills in the Metabase web service, PostgreSQL metadata database, generated database password, and mapped browser port.

Metabase template selected in Server Compass
5
Step 5

Review the Metabase settings

Confirm the app name and compose services. In this run, the app was named metabase-demo and used host port 3000.

Reviewing Metabase project settings and compose services
6
Step 6

Deploy Metabase

Review the generated environment values, confirm the port is available, and click Deploy Now.

Reviewing Metabase environment variables and port before deployment
7
Step 7

Watch the deployment progress

Keep the deployment modal open while Server Compass uploads the compose file, pulls the Metabase image, starts the container, and verifies the stack.

Server Compass deploying the Metabase template on the VPS
8
Step 8

Confirm Metabase is running

After deployment finishes, return to the Apps tab and confirm the Metabase app is marked Running with its application URL available.

Metabase template running in the Server Compass Apps tab
9
Step 9

Open Metabase in the browser

Open the application URL in a browser. The Metabase setup screen confirms the analytics app is reachable.

The deployed Metabase web UI loaded in a browser

After Metabase Opens

  • Create the first admin account and connect your analytics databases from the Metabase setup wizard.
  • Configure HTTPS, email, backups, and database access rules before production use.
  • Back up the Metabase PostgreSQL metadata volume before relying on saved dashboards or questions.

Verified Result

The Metabase web UI loaded successfully in a browser.

Metabase deployment questions

What does the Metabase template deploy?

It deploys Metabase with a PostgreSQL metadata database for saved questions, dashboards, users, and settings.

Which port did the tutorial use?

The tutorial used host port 3000, which maps to the Metabase web service on container port 3000.

Why does the guide stop at the login or setup web UI?

The tutorial verifies the clean Metabase setup UI because admin account creation, database connections, email, and permissions depend on the production instance.

Should this become a blog post?

No. The deployment guide should live on the Metabase template detail page and be linked from the reusable template deployment docs page.

Self-Deploy Guide

DIY Metabase Deployment

Learn how to self-host Metabase with this hands-on deployment guide.

1

Start a Secure Shell Session

Open your terminal and connect to your server. Replace the IP address with your VPS IP.

terminal
# SSH into your server
ssh root@your-server-ip

# Using a custom SSH key
ssh -i ~/.ssh/id_rsa root@your-server-ip

First time? Need Docker? Install it: curl -fsSL https://get.docker.com | sh

2

Prepare Your Workspace

Set up a clean directory for your application.

terminal
# Create and navigate to project directory
mkdir -p ~/apps/metabase
cd ~/apps/metabase
3

Set Up Container Configuration

Set up the container stack using this Docker Compose configuration:

docker-compose.yml
services:
  metabase:
    image: metabase/metabase:latest
    container_name: metabase
    hostname: metabase
    ports:
      - "3000:3000"
    environment:
      MB_DB_TYPE: postgres
      MB_DB_DBNAME: metabaseappdb
      MB_DB_PORT: 5432
      MB_DB_USER: metabase
      MB_DB_PASS: <your-db-password>
      MB_DB_HOST: postgres
    volumes:
      - /dev/urandom:/dev/random:ro
    restart: unless-stopped
    depends_on:
      postgres:
        condition: service_healthy
    healthcheck:
      test: curl --fail -I http://localhost:3000/api/health || exit 1
      interval: 15s
      timeout: 5s
      retries: 5

  postgres:
    image: postgres:16
    container_name: metabase-postgres
    hostname: postgres
    environment:
      POSTGRES_USER: metabase
      POSTGRES_DB: metabaseappdb
      POSTGRES_PASSWORD: <your-db-password>
    volumes:
      - postgres_data:/var/lib/postgresql/data
    restart: unless-stopped
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U metabase -d metabaseappdb"]
      interval: 10s
      timeout: 5s
      retries: 5
      start_period: 30s

volumes:
  postgres_data:
Setup Variables
PORTHost port to expose(default: 3000)
DB_PASSWORDDatabase password
4

Bring Up the Application

Launch your application stack in the background.

terminal
# Start the containers in detached mode
docker compose up -d

# Check if containers are running
docker compose ps

# View logs
docker compose logs -f
5

Configure Firewall

Configure your firewall to permit external connections.

terminal
# Allow the application port through firewall
sudo ufw allow 3000/tcp
sudo ufw reload

# Access your app at:
# http://your-server-ip:3000
Skip the Terminal

Prefer a visual interface? Use Server Compass.

Let Server Compass handle the complexity. Deploy Metabase with a simple, intuitive interface.

  • Visual configuration UI
  • One-click deployment
  • Automatic SSL setup
  • Zero-downtime updates
  • Built-in monitoring
  • One-click rollbacks
Download Server Compass$29 one-time • Lifetime license

After Deployment

After deploying Metabase with Server Compass, complete these steps to finish setup

1

Log in with admin credentials

2

Configure site settings

Need help? Check out our documentation for detailed guides.

Metabase FAQ

Common questions about self-hosting Metabase

How do I deploy Metabase with Server Compass?

Simply download Server Compass, connect to your VPS, and select Metabase from the templates list. Fill in the required configuration and click Deploy. The entire process takes under 3 minutes.

What are the system requirements for Metabase?

Metabase requires a minimum of 1024MB RAM. We recommend a VPS with at least 2048MB RAM for optimal performance. Any modern Linux server with Docker support will work.

Can I migrate my existing Metabase data?

Yes! Server Compass provides volume mapping that allows you to import existing data. You can also use standard Metabase backup and restore procedures.

How do I update Metabase to the latest version?

Server Compass makes updates easy. Simply click the Update button in your deployment dashboard, and the latest Metabase image will be pulled and deployed with zero downtime.

Is Metabase free to self-host?

Metabase is open-source software. You only pay for your VPS hosting (typically $5-20/month) and optionally Server Compass ($29 one-time). No subscription fees or per-seat pricing.

Ready to Self-Host Metabase?

Download Server Compass and deploy Metabase to your VPS in under 3 minutes. No Docker expertise required.

Download Server Compass