---
title: "Deploy Metabase Marketing"
description: "marketing campaign and funnel reporting"
category: "Analytics"
url: https://railway.com/deploy/metabase-marketing
---

# Deploy Metabase Marketing

marketing campaign and funnel reporting

**[Deploy Metabase Marketing on Railway](https://railway.com/template/metabase-marketing)**

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

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

## Template content

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

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

### metabase/metabase

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

## Documentation

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

Tuesday morning: three ad platform exports, a CRM dump, and a spreadsheet the last growth hire left behind. Nobody's seen campaign-level ROI in two months. Metabase Marketing on Railway turns that pile of CSVs into a Postgres-backed question engine your whole team can actually use — no data engineering sprint required.

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

Metabase is open-source business intelligence for non-technical folks who need browser-based questions and dashboards, plus raw SQL for analysts. The "Marketing" flavor isn't a fork — it's the same AGPL Metabase pointed at ad exports, UTM-tagged sessions, CRM stages, and the revenue table that ties it together.

Running it on Railway changes the feel of deployment. No EC2 provisioning, Postgres patching, or CORS fights. Add the Metabase service, attach Postgres, set a few env vars, and Railway wires networking, health checks, and TLS.

The catch most first-timers hit: Metabase needs its own application database, and that database must be Postgres in production. If the container falls back to embedded H2, every redeploy wipes questions, dashboards, and users. Point the app at a Railway Postgres service and that problem disappears.

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

Tableau is a phenomenal visualization tool, but for marketing teams needing campaign ROI by Tuesday, it's also a procurement nightmare: named-user licenses, a server or cloud deployment, and data-prep specialists. Metabase Marketing sidesteps that.

Railway's free trial sweetens the deal. The $5 GitHub trial credit covers a small Metabase plus Postgres stack long enough to build a real campaign dashboard, connect a Postgres warehouse, and see whether the workflow sticks.

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 Marketing 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 Marketing self hosting

Self-hosting on a raw VPS means you own Postgres upgrades, failover, disk sizing, and the 2 a.m. page when disk fills. Railway absorbs much of that — managed Postgres with TLS, automatic container restarts, and a deployment model where you push a config change instead of SSHing in.

| Provider | Postgres setup | Scaling | Fit for Metabase Marketing |
|---|---|---|---|
| DigitalOcean | Self-managed droplet or managed DB | Manual resize | Fine if you like managing servers; more moving parts |
| AWS | RDS plus EC2 or ECS | Auto-scaling possible, complex | but overkill for single-node BI |
| Hetzner | Self-managed VPS | Manual | Cheapest raw compute; you handle everything |

Railway wins for small-to-mid marketing stacks because the Postgres companion and Metabase share one network, one env-var surface, one deploy log. AWS could scale further, but single-node Metabase doesn't need multi-AZ RDS. Hetzner is cheaper on paper, but your time patching Postgres is the hidden line item.

## Common Use Cases for hosted Metabase Marketing

The first dashboard is usually campaign ROI: spend from ad exports joined to attributed revenue from CRM or orders. Once live, channel attribution follows — marketing teams argue about models constantly, and Metabase doesn't pick a side.

Funnel conversion is the third big one. Define stages — impression, click, signup, MQL, SQL, closed-won — as columns or a CTE, then build drop-off dashboards. The killer feature for marketing ops: scheduled email or Slack digests, so Monday ROI goes out automatically.

## Dependencies for Metabase Marketing Docker hosted on Railway

A production Metabase Marketing deploy on Railway has exactly two required services: the Metabase container and a Postgres instance for the application database.

### Deployment Dependencies for Managed Metabase Marketing Service (Business Intelligence)

Use the official image metabase/metabase. You can run latest, but pin a v0.63.x tag for a dashboard your marketing team relies on.

Set on Metabase: MB_DB_TYPE=postgres, plus MB_DB_HOST, MB_DB_PORT, MB_DB_USER, MB_DB_PASS, MB_DB_DBNAME pointing at Postgres. Railway's service reference syntax keeps this clean.

### Implementation Details for Metabase Marketing (Using Metabase official docker image)

First boot runs migrations against the Postgres app DB — don't skip this; it creates the schema for users, questions, dashboards, permissions. After migrations, the setup wizard asks for the admin account. Create it before exposing the instance.

Then go to Admin → Databases and add analytics sources.

## How does Metabase Marketing compare against other Business Intelligence platforms
Metabase OSS covers campaign ROI, channel attribution, and funnel conversion dashboards from Postgres with fewer admin layers than larger BI suites.

### Metabase Marketing vs Tableau (Tableau Alternative)
Tableau handles complex visuals but per-seat cost and setup grow. Metabase OSS runs direct SQL against campaign, UTM, and conversion tables without license fees.

### Metabase Marketing vs Power BI (Power BI Alternative)
Power BI ties to Microsoft licensing; self-host Metabase + Postgres avoids per-user costs. Power BI DAX suits advanced marts, Metabase is faster for campaign cohorts and embeds.

### Metabase Marketing vs Looker (Looker Alternative)
Looker models metric layers but costs high. Metabase OSS works with raw campaign events, UTM tables, and Postgres views. Less setup than LookML.

### Metabase Marketing vs Mode (Mode Alternative)
Mode is notebook-first for analysts. Metabase gives marketing teams simple questions, dashboards, and scheduled email/Slack for campaign performance without SQL.

## How to use Metabase Marketing (the OSS Business Intelligence)?
Create a Postgres DB with campaign, channel, and conversion tables. Point Metabase to it, then build dashboards for ROI, attribution, and funnel. Schedule email or Slack reports for daily campaign checks.

## How to self host Metabase Marketing on other VPS Services (Metabase Marketing self hosting guide)
Use Docker on any VPS. Clone the repo, pull Postgres and Metabase images, set environment variables, and start on port 3000.

### Clone the Repository
`git clone` the Metabase repo or use the official Docker image `metabase/metabase`.

### Install Dependencies
Pull Postgres and Metabase images; no app dependency install needed for Docker.

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

### Start the Metabase Marketing Application
Run Metabase on port 3000, health at `/api/health`. Create admin account, connect to Postgres, build campaign dashboards.

## Official Pricing of Metabase Marketing (Metabase Marketing pricing)
OSS AGPL is free. Pro and Enterprise add SSO, interactive embeds, and row-level limits. Metabase Cloud Starter is about $85/mo.

## Metabase Marketing cloud vs self hosted comparison (Pricing, features, costs, and more)
Cloud removes ops but costs more; self-host Railway handles marketing dashboards for most teams. Compare monthly costs and specs.

### Monthly cost of self hosting Metabase Marketing on Railway
Railway Metabase + Postgres typically $5–15/mo Hobby; add usage-based compute. $5 GitHub trial.

### System Requirements for Hosting Metabase Marketing on a VPS
Minimum 1 vCPU, 1GB RAM, 10GB disk for small campaign data. 2 vCPU/4GB for larger funnel tables.

## Frequently Asked Questions (FAQs)
Common embeds, encryption, DB, cost, and HA questions.

### Can I do customer embeds on Metabase OSS?
Static public embeds yes. Interactive embed, SSO, and row-level limits are Pro/Enterprise.

### What is MB_SITE_URL used for with embeds?
Sets the public base URL so embed iframes and links resolve correctly.

### Why must the app DB be Postgres not H2?
H2 is local and not safe for production; Postgres keeps Metabase metadata durable across restarts and Railway deploys.

### What breaks if I rotate MB_ENCRYPTION_SECRET_KEY?
Stored dashboard subscription SMTP credentials and some cached connection details become undecryptable; re-enter secrets.

### How does Railway cost compare to Metabase Cloud?
Cloud Starter ~$85/mo; Railway self-host typically $5–15/mo plus ops time.

### Is this template multi-node HA?
No. Single Metabase instance with one Postgres. Use Cloud or Enterprise for 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.
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 


## 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
- [Matomo Analytics + MariaDB](https://railway.com/deploy/matomo-analytics-mariadb) — Privacy-friendly analytics with MariaDB and persistent volumes.

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