macrostack

Layer 5 · self-hosting reality check

What it actually takes to self-host Metabase

The docs say 1 GB (with 1 core), Metabase's stated baseline. In practice you want 2 GB for Metabase, which Metabase says is 'more than enough' for solo users or small teams, plus 2 GB for its PostgreSQL application database. Here is the honest version — real requirements, real monthly cost, what you will be maintaining, and the one thing that catches people out.

Usually reached from Tableau alternatives, where Metabase is one of the picks.

Wondering whether you need to at all? Is Tableau free? — what the free tier actually allows, and where the wall is.

RAM — documented minimum1 GB (with 1 core), Metabase's stated baseline
RAM — what it really needs2 GB for Metabase, which Metabase says is 'more than enough' for solo users or small teams, plus 2 GB for its PostgreSQL application database
CPU1 core for Metabase and 1 for the application database; add about 1 core per 20 concurrent users
DiskSmall. The application database holds questions, dashboards, users and history, not your data; the data stays in the database Metabase queries.
Monthly cost$12–24/mo for a 5-user instance on a 4 GB VPS running Metabase and its PostgreSQL application database side by side
Setup time15 minutes to try; an hour to do properly with a PostgreSQL application database and HTTPS
How you install itdocker run of metabase/metabase with MB_DB_TYPE=postgres and the MB_DB_* variables pointing at a PostgreSQL application database. The image alone falls back to embedded H2
Ongoing maintenanceWeekly point releases and a new major version several times a year. Majors migrate the application database, with some downtime. Metabase says to back that database up daily and vacuum it weekly.
Where it stops scalingOne 4 GB box for a small team; Metabase says 4–8 GB machines handle hundreds of users. Past that, run several Metabase instances behind a load balancer on a shared PostgreSQL application database, which H2 cannot do.

The thing that catches people out

Metabase keeps its own questions, dashboards and users in an embedded H2 file unless you tell it otherwise, and the Docker image gives you H2 without asking. Metabase's own production guide says that if you stick with it, the database 'will eventually become irrevocably corrupted', and you start over. Moving off later works only on the exact Metabase version that created the file, with Metabase shut down and the file backed up first. Set MB_DB_TYPE=postgres before anyone builds a dashboard. If you are already on H2, back the file up and run load-from-h2 now, on the same version.

When not to self-host Metabase

You need row- and column-level permissions, SSO or usage auditing without paying. Those are Pro features at $575/mo with 10 users included. Apache Superset includes row-level security in its free Apache-2.0 release, at the cost of a much heavier install.

Every guide here carries this section. A site that only ever tells you to self-host is selling something — the useful answer is sometimes no.

Other Layer 5 self-hosting guides

Common questions

How much RAM does Metabase actually need?
2 GB for Metabase, which Metabase says is 'more than enough' for solo users or small teams, plus 2 GB for its PostgreSQL application database in practice. The documented minimum is 1 GB (with 1 core), Metabase's stated baseline, which is the figure at which the process starts rather than the figure at which it works under real use. 1 core for Metabase and 1 for the application database; add about 1 core per 20 concurrent users alongside it.
What does self-hosting Metabase cost per month?
$12–24/mo for a 5-user instance on a 4 GB VPS running Metabase and its PostgreSQL application database side by side This is commodity VPS pricing and excludes your time, which is the larger cost for most people — budget for weekly point releases and a new major version several times a year. Majors migrate the application database, with some downtime. Metabase says to back that database up daily and vacuum it weekly.
How long does it take to set up Metabase?
15 minutes to try; an hour to do properly with a PostgreSQL application database and HTTPS, via docker run of metabase/metabase with MB_DB_TYPE=postgres and the MB_DB_* variables pointing at a PostgreSQL application database. The image alone falls back to embedded H2.
When should I NOT self-host Metabase?
You need row- and column-level permissions, SSO or usage auditing without paying. Those are Pro features at $575/mo with 10 users included. Apache Superset includes row-level security in its free Apache-2.0 release, at the cost of a much heavier install.
What is the most common mistake when self-hosting Metabase?
Metabase keeps its own questions, dashboards and users in an embedded H2 file unless you tell it otherwise, and the Docker image gives you H2 without asking. Metabase's own production guide says that if you stick with it, the database 'will eventually become irrevocably corrupted', and you start over. Moving off later works only on the exact Metabase version that created the file, with Metabase shut down and the file backed up first. Set MB_DB_TYPE=postgres before anyone builds a dashboard. If you are already on H2, back the file up and run load-from-h2 now, on the same version.
The Macrostack brief

New swaps, worth your inbox.

A short, occasional email when we add a high-intent alternative or ship a new head-to-head. No spam, no selling your address — unsubscribe in one click.