Deploy Metabase Collections

organize questions and dashboards in collections

Deploy Metabase Collections

/var/lib/postgresql/data

metabase/metabase

metabase/metabase

Just deployed

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

You finally find last quarter's revenue dashboard — buried three folders deep under someone's personal collection — while the exec sync starts in two minutes. Metabase Collections are the folder tree that keeps questions and dashboards findable: product, ops, and finance each get a home, with permissions that decide who can edit versus who only peeks. Self-hosting on Railway means that tree lives in your Postgres app DB, not in a SaaS seat you lose when the contract renews.

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

The sidebar of a fresh Metabase instance starts empty except “Our analytics.” A few months later it’s a junk drawer unless you keep the metadata database under control. This Railway template runs the official metabase/metabase image with a managed Postgres service as the application database. Postgres stores every collection, dashboard, question, user, and permission. It is not your analytics warehouse; it’s Metabase’s own state. Both containers share Railway’s private network. The app listens on port 3000 and has a health check at /api/health. You get the AGPL-licensed Metabase OSS, single-node, with full control over collection metadata and no per-viewer seat fees. Do not use the embedded H2 database in production; H2 is wiped on redeploy and will destroy your collection tree. This template pins the app database to Postgres from the first boot.

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

Tableau looks great but costs more than many teams spend on lunch, and its server wants a Windows box or Kubernetes. Metabase Collections gives you the core of what product, ops, and finance teams actually use Tableau for: drag-and-drop questions, shared dashboards, and a folder tree people can navigate without training. On Railway you can stand up an instance in about ten minutes, connect a Postgres warehouse, and invite teammates without a license negotiation. Unlike Looker’s heavy semantic layer or Power BI’s Microsoft 365 coupling, Metabase collections are plain rows in Postgres, so you can reorganize them without a vendor admin.

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 Collections 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.

The $5 GitHub trial credit covers a small Metabase + Postgres stack for a week or two while you evaluate. That’s enough time to import a few tables, build a dashboard, and see if the collection model fits your team.

Railway vs Other Hosting Providers and VPS for Metabase Collections self hosting

Self-hosting Metabase means running both the app and its Postgres metadata database. Railway provides a managed Postgres with backups and a private network between services, which a bare VPS does not.

ProviderWhat you get for Metabase CollectionsGotchas
DigitalOceanDroplet, manual Docker and Postgres, public IPNo built-in private network, manual SSL and upgrades
AWSEC2/ECS, RDS, IAM, security groupsSteep learning curve, extra networking time
HetznerCheap VPS, strong computeNo managed Postgres unless separate, you own patching

Railway sits in the middle: managed Postgres, private network, easy deploy, less raw control than Hetzner, fewer enterprise features than AWS. For a small Metabase instance, that trade-off is usually worth it.

Common Use Cases for hosted Metabase Collections

  • Product analytics without a data engineer — connect a production Postgres replica, let PMs build funnels in a “Product” collection.
  • Finance month-end close — lock a “Finance” collection with view-only permissions, pin the current dashboard.
  • Ops runbooks — nest collections by team, pin the one dashboard each shift uses.
  • Ad-hoc scratchpad — a “Sandbox” collection with edit access keeps the main tree clean.
  • Embedded analytics for internal tools — use signed embeds or public links to drop a dashboard into a Retool app or wiki page under your own domain.

Dependencies for Metabase Collections Docker hosted on Railway

In practice the only hard dependency at deploy time is the companion Postgres service. Metabase's container (metabase/metabase, port 3000, health /api/health) stores collection trees, permissions, and question metadata in that app DB. Analytics warehouses are connected later in Admin → Databases — they are not part of this Railway canvas.

Deployment Dependencies for Managed Metabase Collections Service (Business Intelligence)

Two moving parts: the Metabase container running metabase/metabase (port 3000, health check /api/health) and a Postgres application database. Use the Railway Postgres template (ghcr.io/railwayapp-templates/postgres-ssl, version 17 ok). Do not use H2; it is wiped on redeploy. The app database is separate from analytics/warehouse databases, which you connect after first boot via Admin → Databases. Those external databases can be Postgres, MySQL, BigQuery, Snowflake, Redshift, MongoDB, and others.

Implementation Details for Metabase Collections (Using Metabase official docker image)

Set the Metabase service’s public port to 3000 and add a health check with path /api/health. Configure these environment variables on the Metabase service: MB_DB_TYPE=postgres, MB_DB_HOST (internal Postgres hostname, e.g. postgres.railway.internal), MB_DB_PORT=5432, MB_DB_USER, MB_DB_PASS, MB_DB_DBNAME, MB_ENCRYPTION_SECRET_KEY (stable across redeploys; changing it breaks encrypted settings like database passwords and SMTP credentials), and MB_SITE_URL (public HTTPS URL for links, embeds, and password reset emails). On first boot Metabase runs migrations against the app Postgres and shows the setup wizard where you create the admin user. After that, you can start building collections.

How does Metabase Collections compare against other BI workspace organization platforms

Metabase Collections vs Tableau (Tableau Alternative)

Tableau’s Projects split workbooks and data sources into two trees; Metabase keeps questions and dashboards in one collection tree, closer to how teams think. Tableau wins on visual polish and enterprise governance; Metabase wins on simplicity and understandable collection permissions.

Metabase Collections vs Power BI (Power BI Alternative)

Power BI Workspaces are tied to Microsoft 365 groups and OneDrive, so your folder tree lives in three places. Metabase collections are rows in Postgres, and you can share a dashboard without an Azure AD tenant. Power BI wins if you’re deep in Microsoft and need tight Excel integration.

Metabase Collections vs Looker (Looker Alternative)

Looker is a semantic-layer tool first; folders organize Looks and Explores. Metabase lets you save raw SQL questions directly into a collection, so an ops engineer can drop a useful query without waiting for a data team. Looker wins on governed metrics and LookML; Metabase wins on speed from question to shared dashboard.

Metabase Collections vs Apache Superset (Apache Superset Alternative)

Superset separates charts and dashboards into different lists; Metabase puts both in one hierarchy, so a team’s entire workspace lives in one place. Superset wins on advanced chart types and SQL Lab for power users; Metabase wins on day-one usability for non-analysts.

How to use Metabase Collections (the OSS Business Intelligence)?

Create a top-level collection per team, sub-collections for active work and archives, and avoid nesting deeper than three levels. Set collection permissions early: grant “Curate” to team leads and “View” to everyone else. Collection permissions are separate from data permissions; a view-only collection user can still run a new query if their data permission allows it and save it elsewhere. Pin only the one or two dashboards each collection actually needs daily. Schedule a monthly pruning session to move stale items to an “Archive” collection with view-only permissions. A clean folder tree is a product decision, not an accident.

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

Clone the Repository

Metabase’s source is on GitHub. You can clone https://github.com/metabase/metabase.git and check out a release tag, but most operators skip the clone and use the official metabase.jar for simplicity.

Install Dependencies

You need Java 17 or newer and Postgres 12+ for the app database. On Ubuntu, apt install openjdk-17-jre-headless postgresql works. Metabase also needs write access to a local directory for its H2 fallback, but you won’t use H2 in production.

Configure Environment Variables

Set the same variables as on Railway: MB_DB_TYPE=postgres, MB_DB_HOST=localhost, MB_DB_PORT=5432, MB_DB_USER, MB_DB_PASS, MB_DB_DBNAME, MB_ENCRYPTION_SECRET_KEY, and MB_SITE_URL. Export them in a shell profile or systemd unit with Environment= lines.

Start the Metabase Collections Application

Run java -jar metabase.jar; it listens on port 3000. For production, wrap it in a systemd service with Restart=always and a reverse proxy (Caddy or Nginx) for TLS. Point the proxy at 127.0.0.1:3000 and set MB_SITE_URL to your public HTTPS domain.

Official Pricing of Metabase Collections (Metabase Collections pricing)

Metabase OSS, including Collections, dashboards, SQL questions, and basic permissions, is free under AGPL. Metabase Cloud Starter starts around $85 per month


Template Content

More templates in this category

View Template
Typesense vs Meilisearch
self-hosted Typesense vs Meilisearch

onepush
0
View Template
Betterlytics
Betterlytics is a cookieless analytics platform GDPR-compliant.

OpenSource Templates
27
View Template
Finance Tracker
Private multi-user household finance ledger with budgets and CSV import.

wotonews
0