Documentation Index
Fetch the complete documentation index at: https://mintlify.com/metabase/metabase/llms.txt
Use this file to discover all available pages before exploring further.
Installation
Metabase can run anywhere Java runs. Choose the installation method that best fits your needs.Metabase Cloud
Managed hosting with automatic upgrades
Docker
Recommended for self-hosting
JAR file
Direct Java deployment
Metabase Cloud
Recommended - The easiest way to run Metabase with none of the operational overhead.
- Up and running in minutes - No installation or setup required
- Automatic upgrades - Always on the latest version
- Managed infrastructure - High availability, backups, and monitoring included
- Built-in SMTP server - Email and Slack notifications work out of the box
- SSL certificate - Secure HTTPS by default
- SOC 2 Type 2 certified - Enterprise-grade security
- Expert support - Email support with SLA
Sign up
Start a free trial - No credit card required.
Docker installation
Recommended for self-hosting - Docker provides consistent deployments across all platforms.
Requirements
- Docker installed and running
- 2GB of RAM minimum (4GB+ recommended)
- Java 21 (included in Docker image)
Quick start (local development)
For testing and local development:http://localhost:3000.
To view logs:
docker logs -f metabaseProduction installation
Step 1: Set up an application database
Metabase needs a database to store its application data (questions, dashboards, users, etc.). Supported databases:- PostgreSQL (recommended)
- MySQL / MariaDB
PostgreSQL
Metabase will create all necessary tables automatically. You just need to provide an empty database.
Step 2: Run with environment variables
Tell Metabase how to connect to your application database:Replace
your-database-host with:- Your database’s hostname or IP address
host.docker.internalif the database runs on the same machine (Mac/Windows)- The service name if using Docker Compose
Step 3: Use Docker Compose (recommended)
Create adocker-compose.yml file:
docker-compose.yml
Advanced Docker configuration
Using Docker Secrets
Using Docker Secrets
For sensitive credentials, use Docker secrets instead of environment variables:Create
db_user.txt and db_password.txt with your credentials.Setting timezone
Setting timezone
Set the Java timezone to match your reporting timezone:
Adding plugins and drivers
Adding plugins and drivers
Mount a plugins directory for JDBC drivers or custom plugins:
The plugins directory must be readable and writable by Docker. Metabase uses it to extract bundled drivers.
Persisting data with volumes
Persisting data with volumes
Mount a volume for the H2 database (development only):
JAR file installation
The JAR file runs anywhere Java runs.Requirements
- Java 21 or later (we recommend Eclipse Temurin)
- 2GB of RAM minimum (4GB+ recommended)
Quick start (local development)
Install Java
Download Metabase
Download the JAR file:
Production installation
For production, you need:- A production application database
- To run Metabase as a service
Step 1: Set up an application database
Create an empty PostgreSQL or MySQL database:Step 2: Configure environment variables
Set environment variables before running the JAR:Step 3: Run as a service
For production, run Metabase as a system service:- Ensures Metabase stays running and restarts automatically
- Runs with an unprivileged user for better security
- Manages environment variables in a configuration file
/etc/systemd/system/metabase.service
For detailed instructions, see Running Metabase as a systemd service.
Other installation options
Podman
Run Metabase using Podman instead of Docker
Azure Web Apps
Deploy to Azure App Service
Build from source
Compile Metabase yourself
Air-gapped environments
Run Metabase without internet access
Migrating from H2 to production
If you started with the default H2 database and now want to move to production:For detailed migration instructions, see Migrating from H2.
Next steps
After installation:Set up Metabase
Complete the initial setup wizard to create your admin account and connect your first database.Setup guide →
Activate your license (if applicable)
If you’re using Pro or Enterprise edition, activate your license.License activation →
Configure email
Set up SMTP so Metabase can send alerts and subscriptions.Email setup →
Invite your team
Add users and set up permissions.User management →
Troubleshooting
Metabase won't start
Metabase won't start
Check the logs for error messages:Docker:JAR:
Check the terminal output or log file.Common issues:
- Port already in use - Change the port with
MB_JETTY_PORT - Out of memory - Increase JVM heap size
- Database connection failed - Verify database credentials
Database connection issues
Database connection issues
Verify:
- Database server is running and accessible
- Credentials are correct
- Firewall allows the connection
- Network connectivity (use
telnetorncto test)
- Use
host.docker.internalfor databases on the host machine - Use service names in Docker Compose networks
Performance issues
Performance issues
- Increase memory allocation (4GB+ recommended)
- Use a production application database (not H2)
- Enable caching in Admin → Settings
- Add indexes to your data warehouse
For more help, see the troubleshooting guide or visit the community forum.
Getting help
Need assistance with installation?- Community forum - Free community support
- Metabase Experts - Professional services
- Enterprise support - Dedicated support for Pro and Enterprise customers