Databases and search, checked 2026-09-07
Metabase: Docker configuration reference
Self-hosted business intelligence tool for dashboards, charts and ad-hoc SQL over connected databases.
At a glance
Ports
Ports| Port | What listens | Source |
|---|
3000 | HTTP listener for the application. Configurable via MB_JETTY_PORT. | source for port 3000 |
Environment variables
Environment variables| Variable | Required | What it does | Example | Source |
|---|
MB_DB_TYPE | No | Application database type: h2, postgres or mysql. Defaults to an embedded H2 file, which is lost if the container is removed. | postgres | source for MB_DB_TYPE |
MB_DB_HOST | No | Host name or IP of the application database, used when MB_DB_TYPE is not h2. | db | source for MB_DB_HOST |
MB_SITE_URL | No | URL used for email links, auth redirects and embedding. A protocol mismatch here breaks SSO and embedding even if the app is otherwise reachable. | https://metabase.example.com | source for MB_SITE_URL |
MB_JETTY_HOST | No | Network interface the embedded Jetty server binds to. Defaults to localhost for the JAR but 0.0.0.0 for the Docker image. | 0.0.0.0 | source for MB_JETTY_HOST |
JAVA_OPTS | No | JVM options, most commonly used to raise the heap size when Metabase runs out of memory under load. | -Xmx2g | source for JAVA_OPTS |
Volumes that must persist
Volumes| Path | What is in it | Source |
|---|
/metabase-data | Holds the embedded H2 database file when MB_DB_FILE points here, so the default application data survives a container restart. Not recommended for production regardless. | source for /metabase-data |
Behind a reverse proxy
- Route the domain to container port 3000, or whatever MB_JETTY_PORT is set to. source for this reverse-proxy note
- Set MB_SITE_URL to the externally reachable address including the correct protocol. A mismatch here can lock you out or break SSO, even though the app is otherwise reachable. source for this reverse-proxy note
- Metabase ships an embedded H2 file database by default. Point MB_DB_TYPE at Postgres or MySQL before going to production, or every dashboard and question is lost when the container is replaced. source for this reverse-proxy note
Release timeline
Releases| Version | Date | Breaking | What changed | Source |
|---|
v0.63.16 | 2026-09-01 | No | Encrypts subscription and alert recipient details and fixes several security issues in JWT SSO group sync and Slack bug-report auth. | source for release v0.63.16 |
v0.63.15 | 2026-08-26 | No | Adds a setting to sign session keys with a server-side secret and tightens several permission checks. | source for release v0.63.15 |
v0.63.14 | 2026-08-20 | Yes | Security hardening release. No longer supports undocumented API usage; export endpoints now require a non-blank id for every query parameter. | source for release v0.63.14 |
v0.63.2 | 2026-07-29 | No | Bug fixes for modular embedding's CollectionBrowser and conditional formatting on out-of-range values. | source for release v0.63.2 |
v0.63.1 | 2026-07-21 | Yes | Updated the bundled Sample Database, changing it from the previous H2-based version. | source for release v0.63.1 |
If it is not coming up
Read from the upstream documentation, repository and container registry by Keita Emsden on 2026-09-07. Every row links the page it came from. Upstream changes without telling anyone, so check the source link before you rely on a value.
Other app references
All app references