Skip to content

Commit 7b459cd

Browse files
docs(self-hosting): document the v2 per-IP limit that applies without billing
1 parent efbb4f5 commit 7b459cd

1 file changed

Lines changed: 5 additions & 1 deletion

File tree

‎apps/docs/content/docs/platform/self-hosting/environment-variables.mdx‎

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -278,7 +278,7 @@ Configure at least one. Every configured provider stays active and is tried in o
278278

279279
## Limits
280280

281-
Self-hosted deployments (billing disabled) run without plan limits: no rate limits, no execution timeouts, no table or storage caps, and no retention-based data deletion. Each limit can be opted back in individually by explicitly setting its variable.
281+
Self-hosted deployments (billing disabled) run without plan limits: no plan rate limits, no execution timeouts, no table or storage caps, and no retention-based data deletion. Each limit can be opted back in individually by explicitly setting its variable.
282282

283283
| Variable | Opts in | Suggested value |
284284
|----------|---------|-----------------|
@@ -299,6 +299,10 @@ Self-hosted deployments (billing disabled) run without plan limits: no rate limi
299299
Neither deployment presets these. The Helm chart previously did, which enforced hosted-plan caps on self-hosted installs; chart 1.5.0 removed the presets so Compose and Kubernetes behave identically.
300300
</Callout>
301301

302+
<Callout type="info">
303+
One limit applies regardless of billing: the v2 API (`/api/v2/...`) allows each client IP a burst of 600 requests, then 300 per minute, checked before authentication. `BILLING_ENABLED` and the variables above don't change it. With Docker Compose, requests from the host machine all arrive from the bridge gateway address and share one budget. Behind a reverse proxy, set `AUTH_TRUSTED_PROXIES` so each client is counted by its own address.
304+
</Callout>
305+
302306
### Removing a limit you already inherited
303307

304308
If a limit is still enforced after upgrading — most often a `FREE_TABLES_LIMIT` or `FREE_TABLE_ROWS_LIMIT` carried forward from a chart older than 1.5.0, or copied into your own values file — the variable is still reaching the pod. On Helm, remove it by overriding it with `null`:

0 commit comments

Comments
 (0)