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 minimum | 4 GB |
|---|---|
| RAM — what it really needs | 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 |
| CPU | 2 cores minimum (vendor) |
| Disk | 40 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 time | 30 minutes with the standalone compose file; half a day with a domain, HTTPS and object storage |
| How you install it | 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 |
| Ongoing maintenance | 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. |
| Where it stops scaling | A 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
- Self-hosting LibreOffice2 GB with a large spreadsheet open
- Self-hosting ONLYOFFICE6 GB for the Document Server with a handful of concurrent editors
- Self-hosting Collabora Online4 GB, and roughly 1 GB per 20 concurrent documents
- Self-hosting CryptPad2 GB for a small instance
- Self-hosting Mattermost4 GB for a team of 50 with PostgreSQL on the same box
- Self-hosting Rocket.Chat6 GB with MongoDB on the same machine
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.