Deploy Metabase Actions

Write-back actions from Metabase dashboards and models

Deploy Metabase Actions

metabase/metabase

metabase/metabase

Just deployed

/var/lib/postgresql/data

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

Metabase Actions turn a dashboard into a small ops console: someone spots a bad order in a chart, clicks a button, and the row in your database changes. This template runs open-source Metabase with its own Postgres on Railway, so write-back works without paying for cloud seats.

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

Actions sit on top of models (curated, admin-defined layers over your tables) and let people create, update, or delete rows through buttons and forms. Railway runs the official metabase/metabase image next to a Postgres service that holds the Metabase application database: users, dashboards, models, and the action definitions themselves. The app listens on port 3000 with a health check at /api/health. Your warehouse, the database the actions actually write to, gets connected after first boot.

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

Tableau is great for exploration, but writing a value back usually means an extension or a separate app. Metabase ships write-back in the open-source edition, under AGPL, so you can read the code and keep the data on infrastructure you control.

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

On a DigitalOcean droplet you get SSH and a manual Postgres install. On AWS you can wire RDS, ECS, and a load balancer, and quietly end up with a bill bigger than the tool. Hetzner is cheap but everything is on you. Railway collapses the Metabase service and Postgres into one project with logs and health checks.

ProviderSetup timePostgres for the app DBOngoing maintenanceBest for
DigitalOceanHoursSeparate install or managed add-onHigh: SSH, updates, certificatesFull control
AWSDaysRDSHighest: config sprawlTeams already on AWS
HetznerHoursSeparate installMediumBudget EU hosting
RailwayMinutesIncluded in the templateLowSolo devs and small teams

Common Use Cases for hosted Metabase Actions

  • Finance approves a refund. A custom SQL action stamps the row with an approval time and the operator's ID.
  • Ops flags an order for fraud review. A basic update action sets needs_review to true and asks for a note.
  • Support changes a ticket status from a triage dashboard, with an optional owner field.
  • Category managers correct a price or a product category through a form on a model, instead of filing a ticket for an engineer.

Dependencies for Metabase Actions Docker hosted on Railway

The template needs two things: the Metabase container and a Postgres app database. Metabase falls back to an embedded H2 file without Postgres, and that file disappears on redeploy, taking your dashboards and action definitions with it. Postgres keeps them safe.

Deployment Dependencies for Managed Metabase Actions Service (Business Intelligence)

Metabase reads its app database settings from MB_DB_TYPE=postgres plus MB_DB_HOST, MB_DB_PORT, MB_DB_USER, MB_DB_PASS, and MB_DB_DBNAME. Keep MB_ENCRYPTION_SECRET_KEY stable, because it encrypts saved database credentials, and set MB_SITE_URL to your public HTTPS address so links in emails and shared forms point to the right place.

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

Actions are switched on per database. An admin opens Admin settings, Databases, picks the warehouse, and turns on Model actions. That toggle exists for PostgreSQL, MySQL, and H2; BigQuery and Snowflake don't get it. Then build a model over the table, and Metabase can generate basic create, update, and delete actions for it, or you write a custom SQL action with parameters like {{status}}. Actions run with the credentials of that database connection, so connect the warehouse with a dedicated user that only has the UPDATE and INSERT grants it really needs.

How does Metabase Actions compare against other Business Intelligence platforms

Write-back is the dividing line. Most BI tools treat a dashboard as something you look at, and pushing a change back needs a plugin, an embedded app, or an automation service.

Metabase Actions vs Tableau (Tableau Alternative)

Tableau is stronger for deep visual exploration and enterprise governance. Write-back there usually means an extension or a separate app. Metabase gives you a button on the dashboard, in the open-source edition.

Metabase Actions vs Power BI (Power BI Alternative)

Power BI wins if you live in the Microsoft stack. Write-back typically goes through Power Apps or Power Automate, which is more moving parts and more licensing. Metabase keeps the form and the update in one place.

Metabase Actions vs Looker (Looker Alternative)

Looker's LookML semantic layer is more powerful for governed metrics, but it's a commercial, Google Cloud product. Metabase with Actions runs on one container plus Postgres that you can host anywhere.

Metabase Actions vs Apache Superset (Superset Alternative)

Superset is a strong open-source choice for visualization at scale, but it has no built-in write-back. You'd have to build a custom plugin or call an external API. Metabase ships model actions and dashboard buttons out of the box.

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

After the setup wizard, connect your warehouse and enable Model actions on it. Build a model over the table you want to change, for example orders. Open the model's Actions tab and either generate the basic actions or write one yourself, such as UPDATE orders SET status = {{status}} WHERE id = {{order_id}}. Add an action button to a dashboard and map the dashboard filter or the clicked row to the action's parameters. Test it with a throwaway row first, and remember that actions respect Metabase permissions, so check which groups can see the model and the dashboard.

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

Metabase is a single Java container, so it runs on any Linux VPS.

Clone the Repository

You don't need to clone anything. Pull the image instead, pinned to a specific release tag rather than latest, for example docker pull metabase/metabase with the version tag you've tested.

Install Dependencies

Install Docker and a Postgres server, or use a managed Postgres. Create a database and user just for the Metabase app database and note the credentials.

Configure Environment Variables

Put MB_DB_TYPE=postgres, MB_DB_HOST, MB_DB_PORT, MB_DB_USER, MB_DB_PASS, and MB_DB_DBNAME in an .env file. Generate MB_ENCRYPTION_SECRET_KEY once with openssl rand -base64 32 and set MB_SITE_URL to your domain.

Start the Metabase Actions Application

Run docker run -d --name metabase -p 3000:3000 --env-file .env metabase/metabase with your pinned tag, put a reverse proxy with TLS in front, and open the setup wizard. Check /api/health before you connect the warehouse.

Official Pricing of Metabase Actions (Metabase Actions pricing)

Actions aren't a paid add-on: they're part of open-source Metabase under AGPL, so self-hosting costs only infrastructure. Metabase Cloud Starter runs about $100 a month plus per-user fees, and Pro costs more and adds SSO, row-level permissions, and audit logs. Check metabase.com/pricing for current numbers.

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

Cloud removes the infrastructure work and bundles paid features, but you pay per user. Self-hosted gives you full Actions in the open-source edition with no seat fees, and you own upgrades and Postgres backups.

Monthly cost of self hosting Metabase Actions on Railway

You pay for Metabase compute and Postgres. A small instance typically runs around $5 to $15 a month on the Hobby plan, and the $5 trial credit covers your first experiments.

System Requirements for Hosting Metabase Actions on a VPS

Plan for at least 2 GB of RAM and 1 vCPU for Metabase alone, or 4 GB if Postgres shares the box. The app database needs only a few GB of disk.

Frequently Asked Questions (FAQs)

Do Metabase Actions work on BigQuery or Snowflake?

No. Model actions are available for PostgreSQL, MySQL, and H2 connections only. If your warehouse is BigQuery or Snowflake, keep the write-back tables in a small Postgres or MySQL database and connect that too.

Can I share an action form with someone who doesn't have a Metabase account?

Yes, if an admin enables public sharing. Public action forms get a link anyone can submit, so keep them for low-risk inputs like feedback or simple requests.

Why does Metabase need its own Postgres?

That database stores your users, dashboards, models, and actions. Without it Metabase uses an H2 file inside the container, which a redeploy wipes. Your warehouse stays a separate connection.

What happens if MB_ENCRYPTION_SECRET_KEY changes?

Saved secrets such as database passwords can no longer be decrypted, so connections break until you re-enter them. Generate the key once, keep it in Railway variables, and don't rotate it casually.

Are actions audited in the open-source edition?

Not in detail. Rich audit logs are a Pro and Enterprise feature. On OSS you can add your own trail with a database trigger or an audit table written by the custom SQL action itself.


Template Content

More templates in this category

View Template
NEW
Typesense Multilingual
Locale-aware multilingual search with Typesense

onepush
0
View Template
NEW
Formbricks | Open-Source Typeform & Qualtrics Alternative
Surveys, NPS and in-app feedback on your own Postgres, Hub and Cube

Two Workspaces
2
View Template
Typesense PHP
official PHP client against Railway

onepush
0