---
title: "Deploy Metabase Alerts"
description: "pulse alerts and dashboard subscriptions"
category: "Analytics"
url: https://railway.com/deploy/metabase-alerts
---

# Deploy Metabase Alerts

pulse alerts and dashboard subscriptions

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

Machine-readable deploy manifest (JSON, validated by TemplateCI): https://railway.com/deploy/metabase-alerts/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 Alerts (Open-Source BI) on Railway

Metabase Alerts turns a quiet analytics instance into something that actually pings your team. Instead of opening dashboards every morning, people get a Slack message or email with the one metric that matters. Self-hosting on Railway means you own the scheduler, SMTP settings, Slack token, and the Postgres database that remembers every subscription.

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

Hosting Metabase Alerts on Railway means running the official `metabase/metabase` image with its alert and subscription engine wired correctly. The container includes the Java runtime, the web UI on port 3000, the scheduler that fires dashboard subscriptions, and the API that accepts Slack and email configuration. What it does not include is a durable application database. On first boot, Metabase runs migrations and drops you into a setup wizard. If you skip Postgres, it falls back to embedded H2, which gets wiped on every redeploy. So connect a companion Postgres service in the same Railway project. Use internal networking, expose only the UI through a public HTTPS domain, and set the health check to `GET /api/health`. Once that returns `ok`, the scheduler is alive.

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

Tableau and Power BI often charge per creator, and scheduled email subscriptions can sit behind licensing tiers that make a small team flinch. Metabase OSS ships dashboard subscriptions and question alerts for free under AGPL. You pay only for compute and Postgres, not for the right to send a weekly PDF to five people. On Railway, the free trial lets you test the full stack—Metabase, Postgres, SMTP relay settings, and a Slack bot token—without a procurement cycle. If the dashboard subscriptions feel good, keep it. If not, tear down the project and you are out a few hours.

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

A VPS can run Metabase Alerts, but you do the glue work yourself. Railway collapses the parts that usually eat an afternoon: internal DNS between Metabase and Postgres, TLS termination, log streaming, and environment variable management.

| Provider | Alert delivery experience | Ops burden | Cost profile |
|---|---|---|---|
| DigitalOcean | Works if you manually configure Postgres, SMTP, and TLS; scheduled emails can fail silently if the droplet restarts without a process manager | Medium: you maintain the VM, backups, and reverse proxy | Predictable monthly droplet cost plus snapshot backups |
| AWS | Very flexible, but you spend time in IAM, VPC security groups, and RDS parameter groups before a Slack alert ever fires | High: many moving parts for a single Metabase instance | Hard to predict until you model RDS, ECS, and data transfer |
| Hetzner | Cheap and fast, but no integrated project-level logs or one-click Postgres; you still SSH in for upgrades | Medium to high: excellent hardware, bare-bones managed experience | Usually the lowest raw VM price, but your time is the hidden cost |

## Common Use Cases for hosted Metabase Alerts

A small product team wants a 9 a.m. Slack digest with active trials, signups, and support tickets. They do not want to open Metabase; they want Metabase to open Slack for them. That is a dashboard subscription with a Slack channel destination. An operations lead watches a saved question that counts failed background jobs. Instead of refreshing a browser tab, they set a question alert on the numeric result: when failures cross a threshold, Metabase sends an email. A finance manager needs a daily revenue snapshot emailed as a CSV or PNG attachment. They subscribe to a dashboard, pick the schedule, and Metabase attaches the rendered cards. A customer success team embeds a dashboard in an internal tool but still wants weekly email summaries for stakeholders who never log in. A solo founder runs Metabase on Railway to track Stripe payments, churn, and server costs. They get one Monday morning email with three cards. That is the entire BI workflow, and it costs less than a single Tableau Cloud viewer seat.

## Dependencies for Metabase Alerts Docker hosted on Railway

The alert and subscription engine depends on a few services being reachable from the Metabase container. If any one is misconfigured, the scheduler will run but delivery will fail. That is the most common self-hosted gotcha: Metabase reports a healthy app while emails silently bounce or Slack never receives the webhook.

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

- **Metabase app service** from the official `metabase/metabase` image. Pin a release like `v0.63.x` so scheduler behavior does not change underneath you.
- **Companion Postgres service** for the Metabase application database. Use something like `ghcr.io/railwayapp-templates/postgres-ssl`, Postgres 17 works fine. This stores users, questions, dashboards, subscriptions, and alert definitions—not your analytics data.
- **SMTP credentials** for email alerts and subscriptions. Without valid SMTP host, port, username, and password, every email delivery fails at send time.
- **Slack bot token** if you want Slack destinations. Metabase OSS supports Slack through a bot token and channel selection.
- **Public HTTPS URL** for `MB_SITE_URL`. Email links, dashboard attachments, and Slack unfurls all point back to this URL, so it must be the domain your users can actually reach.

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

Set the application database explicitly. The minimum environment block looks like this:

```
MB_DB_TYPE=postgres
MB_DB_HOST=your-postgres-host
MB_DB_PORT=5432
MB_DB_USER=metabase
MB_DB_PASS=your-password
MB_DB_DBNAME=metabase
```

Do not leave `MB_DB_TYPE` unset. The H2 default is a trap. Also set `MB_ENCRYPTION_SECRET_KEY` to a stable random string and never rotate it casually. That key encrypts saved database connection details and alert credentials. If it changes on a redeploy, encrypted settings become unreadable and you get to re-enter every data source. Set `MB_SITE_URL` to your Railway-generated HTTPS domain. The health check path is `GET /api/health`, served on port 3000. After first boot, create the admin user in the setup wizard. Then connect analytics databases separately under **Admin → Databases**. Postgres, MySQL, BigQuery, Snowflake, Redshift, and MongoDB are all supported as data sources, but they are not the same as the Metabase app database. A common mistake is pointing `MB_DB_*` at the warehouse. Do not do that.

## How does Metabase Alerts compare against other Business Intelligence platforms

Most BI platforms can send a scheduled email, but the path to that email is wildly different. Metabase OSS keeps alerting close to the question and dashboard objects. Tableau, Power BI, and Looker all have subscription features, but they often sit behind commercial tiers or per-user pricing. Apache Superset has scheduled reports, but they require a Celery worker, a message broker, and usually more YAML than a small team wants to own.

### Metabase Alerts vs Tableau (Tableau Alternative)

Tableau subscriptions are polished and support many formats, but they are tied to Tableau Server or Tableau Cloud licensing. Tableau wins on pixel-perfect formatting and large enterprise governance. Metabase Alerts wins when the question is “can five people get a Monday Slack digest without a license negotiation?” Self-hosted Metabase OSS does that with no per-recipient fee. The tradeoff is that Tableau’s server admin tools are deeper, and Tableau handles very large multi-tenant deployments more gracefully than a single-node Metabase instance.

### Metabase Alerts vs Power BI (Power BI Alternative)

Power BI subscriptions are easy inside Microsoft 365, but they assume you live in that ecosystem. Power BI wins on Excel integration, DAX, and Azure Active Directory. Metabase Alerts wins on plain SQL questions, simple Slack delivery, and not requiring a Microsoft tenant. If your team already uses Power BI Pro licenses, the subscription feature is effectively free. If you are starting from scratch, Metabase OSS on Railway avoids the per-user license entirely.

### Metabase Alerts vs Looker (Looker Alternative)

Looker schedules are extremely flexible, with delivery to email, Slack, webhooks, and even S3. But Looker is not self-hostable as open source, and its pricing is usually enterprise-scale. Metabase Alerts covers the common 80%: daily or weekly dashboard emails, Slack digests, and threshold alerts on saved questions. Looker wins when you need LookML, version-controlled data models, and advanced delivery destinations. Metabase wins when you want a working scheduler this afternoon.

### Metabase Alerts vs Apache Superset (Apache Superset Alternative)

Superset is open source and has scheduled reports, but the setup is heavier. You need Celery, Redis, a metadata database, and a worker process. Superset wins on custom chart types and very large data exploration. Metabase Alerts wins on simplicity: one Docker container, one Postgres, one scheduler. For a small team that only wants dashboard subscriptions and question alerts, Superset is often overkill. For a data platform team that already runs Celery and Redis, Superset is a strong alternative.

## How to use Metabase Alerts (the OSS Business Intelligence)?

Start with a saved question. Write SQL 


## Similar templates

- [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.
- [Finance Tracker](https://railway.com/deploy/finance-tracker-1) — Private multi-user household finance ledger with budgets and CSV import.

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