How to Set Up Metabase for Business Analytics
Last updated Mar 28, 2026

Metabase is an open-source business intelligence tool that lets anyone on a team build charts, run queries, and create dashboards from a connected database without writing SQL or code. Setting it up takes under 30 minutes. The fastest path is Metabase Cloud, which handles all infrastructure for you. For teams that need data sovereignty or cost control at scale, self-hosting Metabase with Docker on a VPS is a practical alternative that requires minimal technical knowledge to deploy.
Cloud vs. Self-Hosted: Choosing the Right Setup
Before installing anything, decide whether you want Metabase to manage your instance or whether you will run it yourself.
Metabase Cloud is the right choice if you want to start quickly without provisioning servers or managing upgrades. Backups, SSL, and updates are handled automatically. The Starter tier is free for up to 5 users with a single database connection; Pro plans start at $500 per month for larger teams.
Self-hosting makes sense if your organization has compliance requirements around where data is processed, if you have an engineering team comfortable running Docker containers, or if you expect to grow beyond the free tier and want to avoid per-seat subscription costs. According to Metabase's own deployment documentation, the most common self-hosted setup runs a single Docker container with a PostgreSQL or MySQL application database on a VPS.
A practical signal: if your database already lives on a managed cloud platform like RDS, PlanetScale, or Supabase, Metabase Cloud can connect to it securely over the internet. You do not need to co-locate Metabase and your database on the same server.
Setting Up Metabase Cloud
- Go to metabase.com and click "Get Started." Select "Metabase Cloud."
- Create an account with your email address. You will receive a confirmation link.
- Once confirmed, Metabase launches a provisioning workflow. Choose your team name and select your instance region. Provisioning typically takes two minutes.
- You land in the setup wizard. Enter your name and create an admin password.
- Select your use case: internal analytics, embedded analytics, or both.
- You will be prompted to connect a database. If you do not have one ready, select "I'll add my data later" and Metabase loads with its built-in Sample Database so you can explore the interface.
From this point, Metabase Cloud is live. Invite team members from Admin Settings > People.
Self-Hosting Metabase with Docker
Self-hosting requires Docker installed on your machine or server. The fastest local test runs in a single command:
docker run -d -p 3000:3000 --name metabase metabase/metabase
This starts Metabase at http://localhost:3000. It uses an embedded H2 database by default, which is suitable for evaluation but not production because H2 is not designed for concurrent writes or automated backups.
For a production self-hosted deployment, use Docker Compose with a PostgreSQL application database:
version: "3.9"
services:
metabase:
image: metabase/metabase:latest
ports:
- "3000:3000"
environment:
MB_DB_TYPE: postgres
MB_DB_DBNAME: metabase
MB_DB_PORT: 5432
MB_DB_USER: metabase
MB_DB_PASS: your_password
MB_DB_HOST: db
depends_on:
- db
db:
image: postgres:15
environment:
POSTGRES_DB: metabase
POSTGRES_USER: metabase
POSTGRES_PASSWORD: your_password
volumes:
- metabase_db:/var/lib/postgresql/data
volumes:
metabase_db:
Run docker compose up -d and access Metabase at http://localhost:3000. On a cloud VPS (DigitalOcean, Hetzner, Linode), point your domain at the server IP and terminate SSL with Nginx or Caddy in front of the container.
The first time you open the Metabase UI, you will see the same setup wizard as the cloud version: create an admin account, configure your use case, and connect a database.
Connecting Your First Database
Connecting a database is where Metabase begins delivering value. Navigate to Admin Settings > Databases > Add a database.
You will need the following details from your database administrator or cloud console:
- Database type (PostgreSQL, MySQL, BigQuery, SQL Server, MongoDB, and others are supported)
- Host (the server address, for example
db.example.com) - Port (default 5432 for PostgreSQL, 3306 for MySQL)
- Database name
- Username and password with read access
For databases hosted on AWS RDS, Google Cloud SQL, or similar services, the host is the endpoint shown in the cloud console. Ensure the database security group or firewall allows inbound connections from the IP address where Metabase is running.
After saving, Metabase runs a connection test. If it succeeds, the database appears in your list. Metabase then scans the database schema, which completes within a minute for databases under 100 tables. Once scanning is complete, your tables are visible in the query builder.
One commonly overlooked step: set display names and descriptions on your columns in Admin Settings > Data Model. This makes the query builder self-explanatory for non-technical users who did not design the database schema.
Building Your First Question and Chart
Metabase uses the term "question" for any query you run. Click "New" > "Question" in the top navigation.
Select your connected database and choose a table. The query builder opens with a visual interface. You can:
- Filter rows using any column (dates, text, numbers, or boolean values)
- Group results by a column to aggregate data
- Set a metric: Count, Sum, Average, Min, Max, or a custom expression
For example, to see monthly revenue by product category:
- Select your orders or transactions table
- Filter: "Created At" is in the last 12 months
- Group by: "Product Category" and "Created At" by month
- Metric: Sum of "Revenue"
Click Visualize. Metabase defaults to a bar chart. Use the chart type selector in the left panel to switch to a line chart, pivot table, map, or funnel.
Save the question with a descriptive name. Saved questions become reusable components you can embed in dashboards. Metabase reported that its cloud platform processed over 90 million questions in 2023, with filtered table views being the most common first query type, suggesting that most teams start by verifying their data before committing to visualizations.
Creating and Sharing a Dashboard
Dashboards in Metabase are collections of saved questions displayed on a single canvas. Click "New" > "Dashboard," name it, and add saved questions by clicking the "+" button.
Dashboards support several useful features:
Filters. Add a date filter or text filter that applies across multiple charts simultaneously. A single date range selector on a revenue dashboard lets anyone adjust the time window without editing individual charts.
Drill-through. Clicking a data point on a chart reveals the underlying rows. This lets any team member investigate a spike or anomaly without involving an analyst.
Auto-refresh. Set dashboards to refresh every 1, 5, 10, or 60 minutes for near-real-time displays on a shared screen.
To share a dashboard with someone who does not have a Metabase account, use the public sharing link from the dashboard's sharing settings panel. For embedding a Metabase dashboard inside an internal tool or customer-facing application, Metabase's embedded analytics feature generates a signed iFrame URL that does not require recipients to log in.
A Note on Spreadsheet and CSV Analysis
Metabase is built for live database connections. If your data lives in spreadsheets, CSV exports, or Excel files rather than a relational database, you have two practical options: import those files into a lightweight database like SQLite or DuckDB first, or use a tool designed for file-based analysis from the start.
For teams who want to analyze CSV or spreadsheet data without configuring a database, VSLZ handles the workflow from a direct file upload, running analysis and generating charts from a plain-English prompt with no setup required.
Practical Summary
Metabase setup takes under 30 minutes via the cloud option and requires no infrastructure management. Self-hosting with Docker and PostgreSQL is production-ready and gives you full control over your data. The most important step after initial setup is connecting a real database and labeling your data model so non-technical users can navigate it independently. Start with one table, build three to five saved questions, combine them into a dashboard, and share it with your team before investing time in more advanced configuration.
FAQ
Is Metabase free to use?
Metabase Open Source is completely free. You can self-host it on your own server at no cost other than infrastructure. Metabase Cloud offers a free Starter plan for up to 5 users with one database connection. Pro and Enterprise plans with additional features like SSO, auditing, and advanced permissions start at $500 per month.
What databases does Metabase connect to?
Metabase supports over 20 database types including PostgreSQL, MySQL, SQL Server, BigQuery, Redshift, Snowflake, MongoDB, SQLite, DuckDB, and more. You connect a database by providing the host, port, database name, and credentials in Admin Settings > Databases. Metabase does not require direct file uploads like CSV; it reads from live database connections.
How do I self-host Metabase in production?
The recommended production setup is a Docker container running Metabase with a separate PostgreSQL container as the application database. Use Docker Compose to manage both services. Deploy on a cloud VPS (DigitalOcean, Hetzner, Linode), point your domain at the server, and terminate SSL with Nginx or Caddy. Avoid the default embedded H2 database for production because it does not support concurrent access or automated backups.
Can non-technical users build dashboards in Metabase?
Yes. Metabase's query builder is a visual, point-and-click interface that does not require SQL knowledge. Users select a table, apply filters, choose a grouping, pick a metric, and click Visualize to produce a chart. For teams to get the most out of this, database admins should set display names and descriptions on columns in the Data Model settings so that column names are self-explanatory rather than relying on raw database field names.
What is the difference between Metabase Cloud and self-hosted Metabase?
Metabase Cloud is a managed hosting service where Metabase handles infrastructure, updates, backups, and SSL certificates. Self-hosted Metabase is the same software that you run on your own server using Docker. The features are identical; the difference is operational responsibility and cost structure. Cloud is simpler to start; self-hosting is better if you have strict data residency requirements or want to avoid subscription costs at scale.


