---
title: "Deploy Metabase Sales KPIs"
description: "sales pipeline and revenue KPI dashboards"
category: "Analytics"
url: https://railway.com/deploy/metabase-sales-kpis
---

# Deploy Metabase Sales KPIs

sales pipeline and revenue KPI dashboards

**[Deploy Metabase Sales KPIs on Railway](https://railway.com/template/metabase-sales-kpis)**

Machine-readable deploy manifest (JSON, validated by TemplateCI): https://railway.com/deploy/metabase-sales-kpis/manifest.json

- **Creator:** onepush
- **Category:** Analytics

## Template content

### metabase/metabase

- **Image:** metabase/metabase
- **Public domain:** Yes

### Postgres https://devicons.railway.app/i/postgresql.svg

- **Image:** ghcr.io/railwayapp-templates/postgres-ssl:18

## Documentation

# Deploy and Host self hosted Metabase Sales KPIs (Open-Source BI) on Railway

Metabase Sales KPIs is the fastest way to stop exporting CSVs into spreadsheet purgatory. Point Metabase at your CRM, warehouse, or Postgres replica, then build revenue dashboards your sales team will actually open. This guide covers running it on Railway with a proper Postgres app database.

## About Hosting Metabase Sales KPIs open-source software on Railway (self hosted Metabase template)

I once ran Metabase with its default H2 database and lost three weeks of dashboards on a redeploy. The fix: point Metabase at Postgres from day one. The Metabase container serves the UI on port 3000 and stores configuration, dashboards, and user accounts in the app database. Your actual sales data lives elsewhere — a CRM, warehouse, or database replica — and you connect it after first boot via Admin → Databases.

On Railway, add a companion Postgres service before opening the setup wizard. Set `MB_DB_TYPE=postgres` plus `MB_DB_HOST`, `MB_DB_PORT`, `MB_DB_USER`, `MB_DB_PASS`, and `MB_DB_DBNAME` so Metabase uses that instead of H2. Keep `MB_ENCRYPTION_SECRET_KEY` stable across deploys or encrypted credentials break. Set `MB_SITE_URL` to your public HTTPS URL for correct links and embeds. Pin the image to a version like `v0.63.x` to avoid surprise migrations.

## Why Deploy Metabase Sales KPIs, the Tableau alternative on Railway (Railway Free Trial)

Tableau is the default answer for revenue dashboards until the licensing conversation starts. Metabase Sales KPIs gives you 80% of daily sales analytics — pipeline stages, win rates, quota attainment, rep leaderboards — without the per-seat bill. Metabase OSS is AGPL and free forever. Trade-off: enterprise features like row-level security for embedding are paid. For a sales team needing trusted numbers, OSS is often plenty.

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 Sales KPIs 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 Sales KPIs self hosting

On a raw VPS you'll configure Docker, reverse proxy, TLS, and systemd before seeing Metabase. Railway handles orchestration, health checks, logging, and env vars. You still own config, but no 2 a.m. Linux babysitting.

| Provider | Setup effort | Postgres integration | Best for |
|---|---|---|---|
| DigitalOcean | Medium — droplet + Docker + managed Postgres | Separate managed DB or container | Teams already on DO |
| AWS | High — ECS/EC2, RDS, VPC, IAM | Native RDS, lots of config | Larger orgs with compliance needs |
| Hetzner | High — bare VPS, install everything | Self-managed Postgres | Cost-sensitive tinkerers |
| Railway | Low — service + variables, companion Postgres | One-click `ghcr.io/railwayapp-templates/postgres-ssl` (17) | Small teams wanting dashboards today |

## Common Use Cases for hosted Metabase Sales KPIs

A hosted instance earns its keep Tuesday mornings when the VP asks why pipeline dropped 12%. Common dashboards: revenue overview (MRR, ARR, bookings), pipeline funnel by stage, rep leaderboard vs quota, churn/expansion for account managers. Marketing may reuse it for lead tracking, but sales dashboards are the core reason.

## Dependencies for Metabase Sales KPIs Docker hosted on Railway

The only hard dependency that ruins your week if ignored is Postgres. Metabase can run on embedded H2, but H2 is wiped on redeploy — every saved question, dashboard, and permission disappears. Add Postgres first, then point Metabase at it with the variables below. CRM, warehouse, and Slack connections happen after first boot inside the admin UI.

### Deployment Dependencies for Managed Metabase Sales KPIs Service (Business Intelligence)

You need two services in the same Railway project: `metabase/metabase` and the Postgres template `ghcr.io/railwayapp-templates/postgres-ssl` (17). Set these on the Metabase service:

- `MB_DB_TYPE=postgres`
- `MB_DB_HOST` — internal hostname of Postgres service
- `MB_DB_PORT` — 5432
- `MB_DB_USER`, `MB_DB_PASS`, `MB_DB_DBNAME`
- `MB_ENCRYPTION_SECRET_KEY` — stable random 32+ chars
- `MB_SITE_URL` — public HTTPS URL

Expose port 3000 and set health check `GET /api/health`.

### Implementation Details for Metabase Sales KPIs (Using Metabase official docker image)

The official image runs Java serving API and frontend on port 3000. First boot runs migrations against Postgres (30 sec to a few min). Then the setup wizard creates the admin user — you can't set it via env vars in OSS. After that, go to Admin → Databases to connect actual sales data sources. App DB and analytics DBs are separate; Metabase only stores its own config in Postgres.

## How does Metabase Sales KPIs compare against other Business Intelligence platforms
Metabase Sales KPIs is a self-hosted, open-source BI stack preconfigured for sales pipeline and revenue KPI dashboards. It runs on Railway with Postgres, no per-user fees. Compare below.

### Metabase Sales KPIs vs Tableau (Tableau Alternative)
Tableau is licensed per creator, requires separate server or cloud. Metabase Sales KPIs costs a few dollars/month on Railway, AGPL, SQL-native, no Tableau workbook overhead. Lacks Tableau's deep visual grammar but covers sales KPIs faster.

### Metabase Sales KPIs vs Power BI (Power BI Alternative)
Power BI Pro is $10/user/month, tied to Microsoft. Metabase Sales KPIs no per-seat cost, Postgres-backed, deploy via Railway. Better for small team sales dashboards; fewer DAX/enterprise dataflows.

### Metabase Sales KPIs vs Looker (Looker Alternative)
Looker is enterprise, uses LookML, expensive. Metabase Sales KPIs uses plain SQL and GUI questions, open source, self-hosted. Good for revenue/sales KPI tracking without Looker's contract.

### Metabase Sales KPIs vs Mode (Mode Alternative)
Mode is per-user, notebook-style. Metabase Sales KPIs is dashboard-first, no notebook, lower cost, self-host. Sales teams get pipeline and revenue KPI charts quickly.

## How to use Metabase Sales KPIs (the OSS Business Intelligence)?
Connect Postgres, run initial setup, create questions/dashboards for pipeline stages, win rate, revenue, quota attainment. Admin via /admin, health at /api/health.

## How to self host Metabase Sales KPIs on other VPS Services (Metabase Sales KPIs self hosting guide)
The template runs on any Docker host with Postgres. Steps below.

### Clone the Repository
`git clone` the Railway template repo, or copy `docker-compose.yml`.

### Install Dependencies
Only Docker and Docker Compose needed. No Node/Ruby.

### Configure Environment Variables
Set `MB_DB_TYPE=postgres`, `MB_DB_HOST`, `MB_DB_PORT`, `MB_DB_DBNAME`, `MB_DB_USER`, `MB_DB_PASS`, `MB_ENCRYPTION_SECRET_KEY`, `MB_SITE_URL`.

### Start the Metabase Sales KPIs Application
`docker compose up -d`, open port 3000. Check `/api/health`.

## Official Pricing of Metabase Sales KPIs (Metabase Sales KPIs pricing)
Metabase OSS is free, AGPL. Railway infrastructure costs ~$5–15/mo for Metabase + Postgres on Hobby. Metabase Cloud Starter is ~$85/mo. No license fee for the template.

## Metabase Sales KPIs cloud vs self hosted comparison (Pricing, features, costs, and more)
Cloud gives managed hosting, SSO, interactive embeds, row-level permissions. Self-host on Railway gives OSS only: no SSO, no RLS, embeds limited to public/static. Cost lower: ~$5–15 vs ~$85/mo. Self-host requires Postgres, secret rotation.

### Monthly cost of self hosting Metabase Sales KPIs on Railway
Railway Hobby: Metabase service ~512 MB RAM + Postgres ~256 MB, typically $5–10/mo. With usage and backups, $10–15. No per-user fees.

### System Requirements for Hosting Metabase Sales KPIs on a VPS
1 vCPU, 1–2 GB RAM, 10 GB disk for small teams. Postgres separate or same host. Use Postgres, not H2.

## Frequently Asked Questions (FAQs)
Common questions about embeds, URLs, secrets, Postgres, cost, HA.

### Can I do customer embeds on Metabase OSS?
Public embeds and static dashboards only. Interactive embed, SSO, row-level restrictions are Pro features.

### What is MB_SITE_URL used for with embeds?
Sets the origin for generated public links and email links. Must match the Railway URL, else embed URLs break.

### Why must the app DB be Postgres not H2?
H2 is single-instance, not durable for Railway restarts. Postgres is required for multi-service and backups.

### What breaks if I rotate MB_ENCRYPTION_SECRET_KEY?
Existing dashboard parameters, alert credentials, and some cached connections become undecryptable. Rotate only before first use.

### How does Railway cost compare to Metabase Cloud?
Railway self-host: ~$5–15/mo total. Metabase Cloud Starter: ~$85/mo. Cloud adds managed Pro features, SSO, embeds.

### Is this template multi-node HA?
No. Single Metabase + single Postgres. Not multi-node. Use external managed Postgres and multiple app replicas if you need HA.
Keep the Metabase Postgres app DB and a stable encryption secret; the UI listens on port 3000 with health at /api/health so restarts stay clean.
Keep the Metabase Postgres app DB and a stable encryption secret; the UI listens on port 3000 with health at /api/health so restarts stay clean.
Keep the Metabase Postgres app DB and a stable encryption secret; the UI listens on port 3000 with health at /api/health so restarts stay clean.
Keep the Metabase Postgres app DB and a stable encryption secret; the UI listens on port 3000 with health at /api/health so restarts stay clean.
Keep the Metabase Postgres app DB and a stable encryption secret; the UI listens on port 3000 with health at /api/health so restarts stay clean.


## Similar templates

- [Typesense PHP](https://railway.com/deploy/typesense-php) — official PHP client against Railway
- [Typesense vs Meilisearch](https://railway.com/deploy/typesense-vs-meilisearch) — self-hosted Typesense vs Meilisearch
- [Betterlytics](https://railway.com/deploy/betterlytics) — Betterlytics is a cookieless analytics platform GDPR-compliant.

Open this page in a browser: https://railway.com/deploy/metabase-sales-kpis
