---
title: "Deploy Metabase BigQuery"
description: "BigQuery dashboards with Metabase"
category: "Analytics"
url: https://railway.com/deploy/metabase-bigquery
---

# Deploy Metabase BigQuery

BigQuery dashboards with Metabase

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

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

You've been staring at BigQuery's web console long enough. The SQL is fast, datasets massive, but turning partitioned tables into dashboards your CFO reads is a different problem. Metabase BigQuery solves it — an open-source BI layer between your team and BigQuery, without a Tableau license per viewer.

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

Metabase BigQuery is the official Metabase image pointed at Google BigQuery. Railway runs the app container plus a persistent Postgres for Metabase's own metadata. The BigQuery warehouse is separate — it holds the data, Postgres holds the bookkeeping (dashboards, questions, users). If a redeploy wipes dashboards, you forgot Postgres or changed the encryption secret.

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

Tableau charges per seat. Metabase OSS has no per-viewer license — you pay only for infrastructure. 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 BigQuery 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 BigQuery self hosting

| Provider | Setup effort | App DB handling | Good for | Limitations for Metabase BigQuery |
|---|---|---|---|---|
| DigitalOcean | Medium — droplet + Docker | You manage Postgres separately | Straightforward VPS pricing | Manual SSL, upgrades, scaling |
| AWS | High — ECS, RDS, IAM | RDS Postgres but more config | Teams already in AWS | Many moving parts, BigQuery IAM easy to misconfigure |
| Hetzner | Medium — cloud VPS | Self-managed Postgres | Cheap EU compute | Manual ops, no managed Postgres everywhere |

Railway puts app + Postgres in one project with automatic internal networking and env vars. You still configure BigQuery credentials after first boot.

## Common Use Cases for hosted Metabase BigQuery

1. **Product analytics** — BigQuery scans terabytes of events; Metabase's GUI editor lets non-technical teammates build counts, group-bys, filters without SQL.
2. **Marketing/finance dashboards** — BigQuery lands after pipelines from Ads, GA4, Stripe. Metabase gives one place to look, with cache controls to avoid hammering BigQuery.
3. **Internal tools** — Basic embedding drops charts into wikis or admin panels. OSS supports simple embedding; Pro unlocks more.

## Dependencies for Metabase BigQuery Docker hosted on Railway

The Metabase container is self-contained, but it absolutely needs a persistent Postgres for production. The H2 default database is wiped on redeploy. So deploy two services: Metabase and Postgres.

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

Use the companion `ghcr.io/railwayapp-templates/postgres-ssl` image (Postgres 17 ok). Set on the Metabase service:
- `MB_DB_TYPE=postgres`
- `MB_DB_HOST`, `MB_DB_PORT`, `MB_DB_USER`, `MB_DB_PASS`, `MB_DB_DBNAME` (Railway provides these as referenceable vars)
- `MB_ENCRYPTION_SECRET_KEY` (stable across deploys, else encrypted BigQuery creds break)
- `MB_SITE_URL` = public HTTPS URL for links/embeds

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

Use `metabase/metabase` pinned (e.g., v0.63.x). App runs on port 3000; health check `GET /api/health`. First boot runs migrations against Postgres; then setup wizard creates admin user. After boot, connect BigQuery via Admin → Databases using a Google service account JSON key (separate from app DB).

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

### Metabase BigQuery vs Tableau (Tableau Alternative)

Tableau wins on visualization depth (dual-axis, custom shapes) but costs per seat and intimidates non-analysts. Metabase is simpler, approachable, and free per viewer.

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

Power BI integrates with Microsoft stack but has confusing licensing. Metabase OSS has one feature set for all users. Power BI better for complex star schemas; Metabase better for quick questions on BigQuery tables.

### Metabase BigQuery vs Looker (Looker Alternative)

Looker uses LookML — capable, but expensive, with a steep learning curve, now part of Google Cloud. Metabase connects directly to BigQuery without a modeling layer; faster time-to-first-dashboard.

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

Superset has more charts and SQL Lab, but requires Redis, Celery, and heavier setup. Metabase runs on one container + Postgres. Superset for data platform teams; Metabase for everyone else.

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

First hour: finish setup, connect BigQuery, explore a small table using "Ask a question" (pick metric, group by dimension). Then build dashboards with cross-question filters, schedule email snapshots. Power users use the SQL editor with parameters (`WHERE date >= {{start_date}}`) for native BigQuery functions.

## How to self host Metabase BigQuery on other VPS Services (Metabase BigQuery self hosting guide)

### Clone the Repository

Not needed for production; use official Docker image. For source: `git clone https://github.com/metabase/metabase`.

### Install Dependencies

Docker + Docker Compose. Or Java 11+ and Postgres for JAR deployment.

### Configure Environment Variables

Set `MB_DB_TYPE`, `MB_DB_HOST`, `MB_DB_PORT`, `MB_DB_USER`, `MB_DB_PASS`, `MB_DB_DBNAME`, `MB_ENCRYPTION_SECRET_KEY` (random 32+ chars), `MB_SITE_URL`. Use reverse proxy for HTTPS.

### Start the Metabase BigQuery Application

`docker run -d --env-file .env -p 3000:3000 metabase/metabase:v0.63.x` or Compose with Postgres service. Complete setup wizard, connect BigQuery.

## Official Pricing of Metabase BigQuery (Metabase BigQuery pricing)

OSS is free (AGPL). Metabase Cloud Starter ~$85/mo + per-user. Pro higher for SSO, RLS, advanced embedding. OSS includes dashboards, SQL editor, basic embedding, email schedules at no license cost.

## Metabase BigQuery cloud vs self hosted comparison (Pricing, features, costs, and more)

Cloud: Metabase runs infra, updates, backups; cost starts $85/mo + per-user; less control. Self-host on Railway: full OSS features, you handle upgrades/backups; infrastructure cost only.

### Monthly cost of self hosting Metabase BigQuery on Railway

Typical small team: one Metabase container + one Postgres container. Roughly $5–15/mo on Hobby (varies with load). Railway $5 GitHub trial for testing. BigQuery costs separate to Google.

### System Requirements for Hosting Metabase BigQuery on a VPS

Minimum 1 CPU, 2 GB RAM (4 GB better for dozens of users). Postgres 512 MB RAM, few GB disk. VPS doesn't do heavy query lifting — BigQuery does. 2 vCPU/4 GB is sweet spot.

## Frequently Asked Questions (FAQs)

### Can I run Metabase BigQuery entirely on the free tier of Railway?

You can try with the $5 trial credit, but production needs persistent Postgres storage (paid). Trial covers testing.

### What happens to my dashboards if I redeploy Metabase on Railway?

Nothing if Postgres app DB persists and `MB_ENCRYPTION_SECRET_KEY` unchanged. H2 would be wiped; use Postgres.

### Does Metabase BigQuery work with BigQuery's partitioned tables?

Yes. SQL editor supports `_PARTITIONTIME` filters; GUI respects partitioning but complex pruning easier in SQL.

### Can I connect multiple BigQuery projects to one Metabase instance?

Yes, add each as separate database connection with its own service account.

### Is Metabase OSS really free for commercial use?

Yes, AGPL allows commercial use; if you modify source and offer network service, share modifications. Unmodified internal use fine.

### How often should I update the Metabase container?

Pin version, update deliberately after checking changelog and backing up Postgres. Don't auto-update.
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 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
- [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-bigquery
