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

Metabase is an open-source business intelligence tool that any ops manager, analyst, or founder can use to query a database and build dashboards without writing SQL. The setup process has three phases: deploy the application, connect a database, and start building questions and dashboards in the visual query builder. A basic installation takes under 15 minutes using Docker or Metabase Cloud.
What Metabase Is and Who Uses It
Metabase turns database tables into charts, dashboards, and scheduled email reports. Unlike Looker Studio, which is designed around Google data sources, Metabase connects directly to more than 20 databases: PostgreSQL, MySQL, MongoDB, Snowflake, BigQuery, Databricks, SQL Server, MariaDB, and SQLite, among others.
The core unit in Metabase is the "question," which is a saved query paired with a visualization. Questions are combined into dashboards. Dashboards support interactive filters, scheduled subscriptions, and public sharing links that work without a Metabase login.
According to Metabase's own documentation, the platform is used by more than 50,000 organizations. The open-source version is free and covers the full core feature set. Pro and Enterprise plans (starting at $500 per month) add SSO, granular permissions, and white-label embedding.
Choose a Deployment Method
Metabase offers two deployment paths: hosted and self-hosted.
Metabase Cloud is the fastest option. After signup, Metabase provisions infrastructure, handles upgrades, and provides an SSL certificate. A free trial is available; paid production accounts require a Pro license. For small teams that want to be running within 10 minutes and have no preference for self-hosting, Cloud removes all infrastructure overhead.
Self-hosted is the more common choice for teams that want data to stay within their own environment or want to avoid recurring cloud costs. Metabase publishes a Docker image and a JAR file. Docker is recommended because it simplifies upgrades and isolates dependencies from the host system.
Docker Hub pull statistics for the official Metabase image have consistently exceeded 100 million total pulls, reflecting the scale of self-hosted deployments worldwide.
Deploy Metabase with Docker
You need Docker installed on the host machine. Pull the Metabase image and start a container:
docker pull metabase/metabase:latest
docker run -d -p 3000:3000 --name metabase metabase/metabase
Metabase starts on port 3000. Open http://localhost:3000 in a browser. The first startup takes two to three minutes while Metabase initializes its internal metadata database.
By default, Metabase uses an embedded H2 database to store its own metadata: users, dashboards, and saved questions. H2 is suitable for testing but loses all saved data on container restarts or upgrades. For any production or team deployment, configure PostgreSQL as the metadata store before creating dashboards:
docker run -d -p 3000:3000 \
-e "MB_DB_TYPE=postgres" \
-e "MB_DB_DBNAME=metabase" \
-e "MB_DB_PORT=5432" \
-e "MB_DB_USER=metabase_user" \
-e "MB_DB_PASS=yourpassword" \
-e "MB_DB_HOST=your-postgres-host" \
--name metabase metabase/metabase
This separates Metabase's application metadata from your business data and keeps it intact across container restarts and version upgrades.
Complete the Setup Wizard
On first load, the setup wizard walks through five steps:
- Create an admin account with an email and password. Record these credentials before continuing since this account manages user access and database connections.
- Describe your use case (self-service analytics, embedding, or both). This determines which onboarding tutorials appear.
- Connect a database (you can skip this and use the built-in sample database to explore the interface first).
- Enter a license key if you purchased a Pro or Enterprise plan.
- Set usage preferences to allow or block anonymous telemetry.
The built-in sample database is a pre-loaded retail orders dataset containing orders, products, and people tables. It is sufficient to test questions, charts, and dashboards before connecting your real data.
Connect Your Database
Navigate to Admin Settings > Databases > Add a database. Select the database type from the dropdown and complete the connection fields.
For PostgreSQL, the required fields are: display name, host, port (default 5432), database name, username, and password. Metabase also supports SSL certificates and SSH tunnels for databases behind firewalls.
For cloud warehouses, the requirements differ by provider:
- Snowflake requires an account identifier in
orgname-accountnameformat, warehouse name, database, schema, username, and password. - BigQuery requires a project ID and a service account JSON key with the BigQuery Data Viewer and Job User roles assigned.
- Databricks requires a server hostname and HTTP path from the cluster or SQL warehouse settings, plus a personal access token.
After saving, Metabase scans the database schema. The scan takes 30 seconds to several minutes depending on table count. Once it completes, your tables appear in the data browser under the database display name.
Create a Question
Navigate to New > Question and pick a data source. The query builder presents three panels: Filter, Summarize, and Visualize.
A practical example using an orders table to track monthly revenue:
- Select the orders table from the data picker.
- Click Filter and set a date range filter on the order date column (for example, the last 90 days).
- Click Summarize, choose Sum of the revenue column, then click Group by the order date at monthly granularity.
- Click Visualize to render a line chart of monthly revenue over time.
- Click Save, name the question, and assign it to a collection.
For teams comfortable with SQL, the SQL editor accepts raw queries. Use New > SQL query, select a database, and write directly. Results render identically to visual questions and can be added to dashboards.
If your data lives in CSV files rather than a connected database, VSLZ lets you upload files and run the same kind of analysis from plain-English prompts without any database setup or query builder.
Build a Dashboard
Navigate to New > Dashboard, name it, and click create. Add questions using the Add a question button. Each question renders as a resizable card. Cards can be reordered by drag.
To make the dashboard interactive, add a filter card from the toolbar. A date range filter connected to multiple charts lets viewers adjust the time window for all cards at once. To wire a filter to a card, click the filter's gear icon and map it to the relevant date field in each connected question.
Text cards add narrative labels and section breaks, which help non-technical viewers navigate dashboards that contain many charts.
Share and Automate Reports
Metabase supports three methods for distributing dashboards:
Public link: A read-only URL that works without a login. Enable it in the dashboard's share menu. This is useful for sharing with clients or stakeholders who should not have a Metabase account.
Email subscription: Schedule a dashboard to send a PDF or image snapshot daily, weekly, or on a custom cron schedule. Recipients receive the snapshot without needing to log in to Metabase.
Slack integration: Connect Metabase to a Slack workspace and post question results or dashboard snapshots to any channel on a recurring schedule.
Common Setup Issues
H2 in production. If you do not configure an external metadata database before production use and restart the container, all saved questions and dashboards are permanently lost. Configure the PostgreSQL metadata database before inviting team members.
Schema sync delays. Metabase caches the database schema at setup and refreshes it on a background schedule. If you add columns to a table and cannot see them in the query builder, force an immediate sync from Admin Settings > Databases > Sync database schema now.
Query timeouts. Large tables without indexes on filtered columns cause questions to time out. Add database-level indexes on columns used frequently in Metabase filters, particularly date fields and foreign keys.
Open permissions by default. All users can see all data by default. Before inviting team members, create permission groups in Admin Settings > People > Groups and apply table-level and collection-level access rules per group.
Next Steps
After completing setup, the most effective starting point is one dashboard per team function: revenue for sales, pipeline metrics for operations, and spend for marketing. Narrow, purpose-built dashboards produce higher adoption than a single all-in-one dashboard that no single person owns or updates regularly.
FAQ
Is Metabase free to use?
Yes. The open-source version of Metabase is free to download and self-host with no user limits. It covers the full core feature set including questions, dashboards, email subscriptions, and user permissions. Pro and Enterprise tiers add SSO, advanced permissions, white-label embedding, and official support. Metabase Cloud, the hosted version, requires a paid plan for production use but offers a free trial.
What databases does Metabase connect to?
Metabase supports more than 20 databases and warehouses including PostgreSQL, MySQL, MongoDB, Snowflake, Google BigQuery, Databricks, Microsoft SQL Server, Oracle, MariaDB, SQLite, Amazon Redshift, Presto, and Druid. Connection is configured in Admin Settings under Databases. Each database type requires specific credentials; cloud warehouses like BigQuery require a service account JSON key rather than a username and password.
Can I use Metabase without knowing SQL?
Yes. Metabase includes a visual query builder that lets you filter, summarize, and visualize data using dropdowns and drag-and-drop controls without writing SQL. Most common analytics tasks, including aggregations, date groupings, and basic joins through related tables, are available in the query builder. For advanced queries, Metabase also includes a full SQL editor. Both types of questions can be saved and added to dashboards.
How do I install Metabase on my own server?
The recommended method is Docker. Run: docker pull metabase/metabase:latest followed by docker run -d -p 3000:3000 --name metabase metabase/metabase. Metabase starts on port 3000. For production, add environment variables to point the metadata store to a PostgreSQL database before saving any dashboards, since the default H2 embedded database loses data on container restarts. A JAR-based installation is also available for servers without Docker.
What is the difference between Metabase Cloud and self-hosted Metabase?
Metabase Cloud is the managed hosted version where Metabase handles infrastructure, backups, SSL, and upgrades. It requires a paid Pro license for production use. Self-hosted Metabase runs on your own infrastructure using Docker or a JAR file, costs nothing for the open-source version, and keeps all data within your environment. The feature set is the same for both at equivalent license tiers. Self-hosted deployments require you to manage updates and backups.


