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