Deploy Metabase Customer Dashboards
customer-facing analytics embeds
Just deployed
/var/lib/postgresql/data
metabase/metabase
Just deployed
Deploy and Host self hosted Metabase Customer Dashboards (Open-Source BI) on Railway
You can ship customer-facing analytics without Looker's per-viewer tax, but the embed path hides small traps: iframe URLs that break when your domain changes, signed params that leak data, and OSS limits that appear after you've promised SSO to a tenant.
About Hosting Metabase Customer Dashboards open-source software on Railway (self hosted Metabase template)
Metabase OSS is the quiet workhorse for embedded analytics. You get dashboards, SQL, query builder, collections, parameters, and embed sharing—enough for a customer portal MVP. The catch is that "customer-facing" means serving other people's data, not your own.
Why Deploy Metabase Customer Dashboards, the Looker alternative on Railway (Railway Free Trial)
Looker charges per viewer and per month, which makes customer embeds brutal. Metabase OSS is free to self-host, and Railway gives a $5 GitHub trial credit to prove the stack before committing.
Railway is a singular platform to deploy your infrastructure stack. Railway will host your infrastructure so you don't have to deal with configuration, while allowing you to vertically and horizontally scale it.
By deploying Metabase Customer Dashboards on Railway, you are one step closer to supporting a complete full-stack application with minimal burden. Host your servers, databases, AI agents, and more on Railway.
Railway vs Other Hosting Providers and VPS for Metabase Customer Dashboards self hosting
The difference isn't raw performance—Metabase runs fine on a 1 vCPU box—it's how much time you spend on non-analytics work.
| Provider | Setup for Metabase + Postgres | Embed iframe gotchas | Typical monthly cost (small) |
|---|---|---|---|
| DigitalOcean | One droplet, manual Postgres or managed DB, Nginx + certbot | Must set MB_SITE_URL to droplet domain or embeds break in iframes; manual TLS renewal | $12–20 |
| AWS | EC2 + RDS + ALB + ACM + security groups | ALB timeouts kill long queries; MB_SITE_URL must match ALB DNS exactly | $25–40 |
| Hetzner | One cloud VM, manual Postgres, Caddy or Nginx for TLS | IPv6/firewall quirks can block embed endpoint if port 443 isn't open | $5–12 |
| Railway | Two services, env vars, automatic TLS domain, built-in health check | MB_SITE_URL auto-set but must update on custom domain or embed URLs point to internal domain and iframes fail | $5–15 (Hobby) |
Common Use Cases for hosted Metabase Customer Dashboards
You're not deploying Metabase to look at your own Stripe revenue—you're deploying it so each SaaS customer sees their usage, API calls, or support tickets. The typical pattern: a Postgres or ClickHouse warehouse with a tenant_id column on every fact table.
Dependencies for Metabase Customer Dashboards Docker hosted on Railway
Metabase has one hard runtime dependency in production: a Postgres database for its own application metadata. The official Docker image bundles the JVM and all Java libraries; nothing else to install.
Deployment Dependencies for Managed Metabase Customer Dashboards Service (Embedded Analytics)
A managed provider skips the Postgres app DB and Docker image. You get a hosted instance, URL, and support.
Implementation Details for Metabase Customer Dashboards (Using Metabase official docker image)
Use metabase/metabase pinned to a version like v0.63.x rather than latest to avoid surprise schema migrations. The container listens on port 3000. Railway's health check hits GET /api/health.
How does Metabase Customer Dashboards compare against other customer-facing analytics embeds platforms
This stack ships OSS Metabase plus a Postgres sidecar. For tenant-scoped SaaS portals, signed URL embeds work on OSS; interactive SSO embeds and row-level tenant filtering mostly need Pro. Field notes:
Metabase Customer Dashboards vs Looker (Looker Alternative)
Looker Embed SDK is SSO-first, priced per view. Metabase OSS uses signed URLs or JWT via Pro. OSS avoids view fees but lacks Looker's git-backed data modeling and fine row controls. Pick Metabase for cost, Looker for deep modeling.
Metabase Customer Dashboards vs Tableau Embedded (Tableau Embedded Alternative)
Tableau Embedded uses subscription licensing and heavier auth setup. Metabase is lighter, faster to deploy. Tableau stronger for multi-source visual analysis, Metabase better for quick tenant dashboards.
Metabase Customer Dashboards vs Power BI Embedded (Power BI Embedded Alternative)
Power BI Embedded is Azure-tied, capacity pricing. Metabase runs anywhere, AGPL OSS, cheaper self-host. Power BI stronger for Excel-adjacent visuals, Metabase simpler for SQL-backed customer portals.
Metabase Customer Dashboards vs Apache Superset (Apache Superset Alternative)
Both OSS. Superset has richer chart types and SQL Lab, but multi-tenant embed setup is manual. Metabase ships cleaner embedding and Postgres-first app DB. Choose Superset for advanced charts, Metabase for embedded customer dashboards out of the box.
How to use Metabase Customer Dashboards (the OSS Embedded Analytics)?
Deploy on Railway or any VPS. The app listens on port 3000, health check /api/health. Set MB_DB_TYPE=postgres and MB_DB_* to the sidecar Postgres URL. Set MB_ENCRYPTION_SECRET_KEY once; rotating it invalidates stored secrets. Set MB_SITE_URL to your public host so signed URLs match. For OSS embeds, create a question or dashboard, enable sharing, and use the public embed URL with a signed token. Interactive SSO embeds (JWT) and row-level per-tenant filters need Pro. Tenant-scoped portals on OSS use one signed URL per customer dashboard plus separate collections.
How to self host Metabase Customer Dashboards on other VPS Services (Metabase Customer Dashboards self hosting guide)
Any VPS with Docker works. Use the metabase/metabase image and Postgres 14+. The Railway template uses ghcr.io/railwayapp-templates/postgres-ssl. Keep the env contract: MB_DB_TYPE, MB_DB_*, MB_ENCRYPTION_SECRET_KEY, MB_SITE_URL. Health check /api/health.
Clone the Repository
git clone then cd into it. The repo holds a Dockerfile or railway.json plus docker-compose.yml for local runs.
Install Dependencies
No app dependencies. Pull images: docker pull metabase/metabase and docker pull ghcr.io/railwayapp-templates/postgres-ssl. Or run docker compose up -d.
Configure Environment Variables
Create .env with MB_DB_TYPE=postgres, MB_DB_DBNAME, MB_DB_HOST, MB_DB_PORT, MB_DB_USER, MB_DB_PASS. Add MB_ENCRYPTION_SECRET_KEY (long random string) and MB_SITE_URL (https://your-domain). Avoid H2 for production.
Start the Metabase Customer Dashboards Application
Run docker compose up -d. Metabase listens on 3000. Check curl localhost:3000/api/health returns ok. Logs appear in container stdout.
Official Pricing of Metabase Customer Dashboards (Metabase Customer Dashboards pricing)
OSS is free under AGPL. Metabase Cloud Starter runs about $85/mo per user. Pro adds interactive SSO embeds, row-level permissions, and audit. Self-host Pro starts around $500/mo annually. This Railway template stays OSS; signed URL embeds cost only infra.
Metabase Customer Dashboards cloud vs self hosted comparison (Pricing, features, costs, and more)
Cloud offloads upgrades and backups but costs more. Self-host on Railway gives OSS embeds, signed URLs, and Postgres at roughly $5–15/mo Hobby. Pro-only features (JWT SSO, RLS) need a license either way. Choose cloud for managed Pro, self-host for budget OSS.
Monthly cost of self hosting Metabase Customer Dashboards on Railway
Railway Metabase + Postgres typically $5–15/mo Hobby. The $5 GitHub trial covers initial testing. Metabase Cloud Starter at ~$85/mo is 6–17x that. Costs rise with container RAM and Postgres storage.
System Requirements for Hosting Metabase Customer Dashboards on a VPS
Minimum 2 vCPU, 4 GB RAM, 20 GB disk for small teams. Postgres needs at least 1 GB RAM headroom. Metabase JVM uses 1–2 GB. For customer embeds, add RAM per concurrent dashboard load. Single-node is fine; HA needs shared Postgres and sticky sessions.
Frequently Asked Questions (FAQs)
Quick field notes for this template. All answers assume OSS Metabase on Railway unless stated.
Can I do customer embeds on Metabase OSS?
Yes, signed URL embeds work on OSS. Public embeds also work but lack per-view signatures. Interactive SSO (JWT) and row-level per-tenant filters need Pro.
What is MB_SITE_URL used for with embeds?
MB_SITE_URL sets the base URL for generated embed links and signed tokens. If it does not match the browser host, embed URLs fail signature checks. Set it to your public Railway domain or custom domain.
Why must the app DB be Postgres not H2?
H2 is an embedded file DB for trials. It does not handle concurrent customer queries or survive container restarts. Postgres gives durable, multi-user storage and is required for production embeds.
What breaks if I rotate MB_ENCRYPTION_SECRET_KEY?
Stored credentials, LDAP/SSO secrets, and some embed token configs are encrypted with this key. Rotating it makes old encrypted values unreadable. Keep the same value for the life of the app DB.
How does Railway cost compare to Metabase Cloud?
Railway Hobby runs $5–15/mo for Metabase plus Postgres. Metabase Cloud Starter is about $85/mo. Self-host saves money but you manage upgrades, backups, and the embed domain cert.
Is this template multi-node HA?
No. The template is single-node by design. For HA, run Metabase behind a load balancer with shared Postgres and sticky sessions; interactive embeds may need session affinity. OSS signed URLs are stateless enough for basic failover. Keep the Metabase Postgres app DB and a stable encryption secret; the UI listens on port 3000 with health at /api/health so restart
Template Content
metabase/metabase
metabase/metabase