macrostack

Layer 5 · self-hosting reality check

What it actually takes to self-host Teable

The docs say 4 GB. In practice you want 4 GB. That is the vendor's stated minimum for the app, PostgreSQL and Redis together, and Teable publishes no higher recommended figure. Treat it as the floor and watch memory once tables grow large. 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 Airtable alternatives, where Teable is one of the picks.

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

RAM — documented minimum4 GB
RAM — what it really needs4 GB. That is the vendor's stated minimum for the app, PostgreSQL and Redis together, and Teable publishes no higher recommended figure. Treat it as the floor and watch memory once tables grow large
CPU2 cores minimum (vendor)
Disk40 GB minimum per the vendor. PostgreSQL holds every table and grows with rows and history. Attachments grow in the local data volume, or in S3/MinIO if you move them there.
Monthly cost$12–24/mo for a 5-user instance on a 4 GB VPS. PostgreSQL and Redis run in the same compose file; S3 or MinIO is needed only if you move attachments off the disk
Setup time30 minutes with the standalone compose file; half a day with a domain, HTTPS and object storage
How you install itThe standalone docker-compose from the Teable repo runs the Teable app, PostgreSQL 15 and Redis 7, with PUBLIC_ORIGIN and SECRET_KEY set in a .env file. The full-featured edition (AI, App Builder) uses the separate teable-deployment repo
Ongoing maintenanceTeable ships several releases a week under the latest tag, so pin a dated release tag and upgrade on purpose, with a PostgreSQL dump before each jump. Budget an hour a month.
Where it stops scalingA 4 GB box for a small team. Past that, move PostgreSQL to its own host, put attachments on S3, and use the Kubernetes (Helm) route in teable-deployment for production isolation.

The thing that catches people out

Teable builds every file link from PUBLIC_ORIGIN, and when attachments go to MinIO or S3 the server signs URLs that each user's browser then fetches directly. That means the storage endpoint has to be reachable under one name from inside the container and from every browser. Point it at an internal Docker name like minio, or at localhost, and uploads and images fail for users while the app itself looks healthy. A maintainer explains exactly this, and an open issue documents four reverse-proxy setups that each broke a different half. For a small team, keep the built-in file storage and set PUBLIC_ORIGIN to the exact public https address. Only move to object storage once it has a public hostname.

When not to self-host Teable

You need the AI features or the App Builder without paying. The Community Edition covers tables, collaboration, the API and automation only. Also skip it if you want the fewest moving parts, because Baserow runs as a single container.

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 Teable actually need?
4 GB. That is the vendor's stated minimum for the app, PostgreSQL and Redis together, and Teable publishes no higher recommended figure. Treat it as the floor and watch memory once tables grow large in practice. The documented minimum is 4 GB, which is the figure at which the process starts rather than the figure at which it works under real use. 2 cores minimum (vendor) alongside it.
What does self-hosting Teable cost per month?
$12–24/mo for a 5-user instance on a 4 GB VPS. PostgreSQL and Redis run in the same compose file; S3 or MinIO is needed only if you move attachments off the disk This is commodity VPS pricing and excludes your time, which is the larger cost for most people — budget for teable ships several releases a week under the latest tag, so pin a dated release tag and upgrade on purpose, with a PostgreSQL dump before each jump. Budget an hour a month.
How long does it take to set up Teable?
30 minutes with the standalone compose file; half a day with a domain, HTTPS and object storage, via The standalone docker-compose from the Teable repo runs the Teable app, PostgreSQL 15 and Redis 7, with PUBLIC_ORIGIN and SECRET_KEY set in a .env file. The full-featured edition (AI, App Builder) uses the separate teable-deployment repo.
When should I NOT self-host Teable?
You need the AI features or the App Builder without paying. The Community Edition covers tables, collaboration, the API and automation only. Also skip it if you want the fewest moving parts, because Baserow runs as a single container.
What is the most common mistake when self-hosting Teable?
Teable builds every file link from PUBLIC_ORIGIN, and when attachments go to MinIO or S3 the server signs URLs that each user's browser then fetches directly. That means the storage endpoint has to be reachable under one name from inside the container and from every browser. Point it at an internal Docker name like minio, or at localhost, and uploads and images fail for users while the app itself looks healthy. A maintainer explains exactly this, and an open issue documents four reverse-proxy setups that each broke a different half. For a small team, keep the built-in file storage and set PUBLIC_ORIGIN to the exact public https address. Only move to object storage once it has a public hostname.
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.