Overview
This template provides a production‑ready Metabase instance as a Monk runnable. You can:- Run it directly to get a managed business intelligence platform
- Inherit it in your own data stack to add self-service analytics and visualization
What this template manages
- Metabase application server
- PostgreSQL or H2 application database
- Web UI and API
- Query builder and SQL editor
- Dashboard and visualization engine
- Web UI on port 3000
Quick start (run directly)
- Load templates
- Run Metabase with defaults
- Customize credentials (recommended via inheritance)
variables. Secrets added with monk secrets add will not affect this runnable unless you inherit it and reference those secrets.
- Preferred: inherit and replace variables with
secret("...")as shown below. - Alternative: fork/clone and edit the
variablesinmetabase.yaml, thenmonk load MANIFESTand run.
http://localhost:3000 and complete the setup wizard to create your admin account and connect data sources.
Configuration
Key variables you can customize in this template:${monk-volume-path}/metabase on the host and ${monk-volume-path}/postgres for PostgreSQL data.
Use by inheritance (recommended for BI)
Inherit the Metabase runnable in your data stack and declare a connection. Example:Ports and connectivity
- Service:
metabaseon TCP port3000 - From other runnables in the same process group, use
connection-hostname("\<connection-name>")to resolve the Metabase host. - Metabase connects to your data sources (configure in UI)
Persistence and configuration
- H2 database (if used):
${monk-volume-path}/metabase/data:/metabase-data - PostgreSQL data:
${monk-volume-path}/postgres:/var/lib/postgresql/data
Features
- No-Code Query Builder: Ask questions without SQL
- SQL Editor: For power users who need custom queries
- Visualizations: 15+ chart types (line, bar, pie, maps, etc.)
- Interactive Dashboards: Combine multiple questions into dashboards
- Automated Reports: Email dashboards on a schedule
- Data Sources: 20+ databases (PostgreSQL, MySQL, MongoDB, BigQuery, etc.)
- Permissions: Control who sees what data
- Embedding: Embed dashboards in your apps
- Alerts: Get notified when metrics change
Connecting Data Sources
Metabase supports many databases:- SQL: PostgreSQL, MySQL, MariaDB, SQL Server
- Cloud: BigQuery, Redshift, Snowflake, Athena
- NoSQL: MongoDB, DynamoDB
- Analytics: Druid, Presto
- And many more…
Building Questions
Three ways to ask questions:- Simple Question: Point-and-click query builder
- Custom Question: Visual query builder with joins, filters
- Native Query: Write SQL directly
Dashboards
Create interactive dashboards:- Add multiple questions/visualizations
- Add filters for interactivity
- Auto-refresh dashboards
- Share via link or email
- Embed in external apps
Use cases
Metabase excels at:- Self-service business intelligence
- Executive dashboards
- Operational reporting
- Data exploration and discovery
- Automated report delivery
- Embedded analytics in SaaS apps
- Team data democratization
Related templates
- Connect to data warehouses:
postgresql/,clickhouse/, etc. - Use with ETL tools:
airflow/,dagster/ - Integrate with data pipelines for reporting
Troubleshooting
- Access Metabase UI at
http://localhost:3000 - Generate encryption key:
- Check logs:
- If you changed database credentials but the container has existing data, authentication may fail. Either reset the data volume or update credentials inside the DB to match.
- For slow queries, check database connection and query performance.
- For data source connection issues, verify credentials and network access.
- For memory issues, increase Java heap size with
JAVA_OPTSenvironment variable. - Use PostgreSQL instead of H2 for production (better performance and reliability).
- First startup can take 2-3 minutes while Metabase initializes the database schema.