Дакументацыя пакуль толькі на англійскай мове. Астатняя частка сайта адпавядае вашай мове.
Limits and storage
Cap what each workspace and website may use, turn admin features off per site, set the defaults new sites start with, and measure local and external storage.
7 хв чытання
On a multisite installation, a platform operator sets ceilings on the workspace page and on each website page under Admin → Platform. An empty field means no limit. When a limit is lowered, existing items stay; only the next create is refused.
What can be limited
| Where | Limit | Counts |
|---|---|---|
| Workspace | sites | Websites in the workspace, including the first one |
| Website | users | Accounts that can use the website. Shared users count a membership as well as a home account |
| Website | content | Content entries in any status |
| Website | content.<type> | Entries of one type, for example content.post |
| Website | content.types | Custom content types (built-in Post and Page are not counted) |
| Website | media.files / media.bytes | Media files and media library bytes. The environment library cap still applies; the smaller one wins |
| Website | files.count / files.bytes | Private files plugins store, such as products sold as downloads |
| Website | storage.bytes | Total storage, local plus external (see below) |
| Website | plugins | Installed plugins |
| Website | roles | Custom roles |
| Website | domains.custom | Connected custom domains |
Feature switches
The same pages turn admin features off per website: comments, theme upload, design, custom roles, responsive images, security, PWA, redirects, and the other site admin sections, plus feature.ownStorage, feature.customDomains, and feature.managedDns. Off hides the menu item and its controls and the server refuses the action. On, or never set, leaves the feature available.
Defaults for new sites
Platform → Defaults holds the numbers and switches a new workspace or website starts with. Content types that already exist on any website are listed too, including ones a plugin created, such as Shop's products. Saving a default does not change workspaces or websites that already exist; they keep the limits on their own pages.
Storage
Root Diagnostics and Platform → Website show the storage each website uses, split into local and external (S3-compatible, including OVH) and into media, private files, and static exports. The measurement includes trash, image variants, staging, export objects, and retained copies, and runs in the background. A figure that cannot be read stays unknown instead of showing zero. Logical record totals are shown separately from physical bytes.
Total storage (local + external) in a website's Limits (storage.bytes) caps the physical bytes across all of it. Media uploads and image variants, private files, storage copies, S3 trash and restore moves, and static-export writes all check the remaining room under a database lock shared by every worker. With a cap set, growth is refused when usage cannot be measured. Existing files stay when the cap is lowered.
Note
GET /api/diagnostics/storage (root administrator) and GET /api/platform/sites/{id}/storage (platform operator) return the latest measurement. External totals need ListObjectsV2 permission on the bucket. Adds migrations 0038_quota_limits and 0043_storage_quota_locks.
Limits from plugins
Plugins register their own meters with ctx.quotas.register and call ctx.quotas.check before they insert a row; the host does not count plugin tables, so the plugin passes used. With platform:tenancy, a plugin on the installation's root site can also write limits, which is how a subscription plan gives a workspace its allowance. Without a target, set writes the plugin's own workspace or site.
await ctx.quotas.set("storage.bytes", 10 * 1024 ** 3, { siteId });
await ctx.quotas.set("sites", 3, { tenantId });
const current = await ctx.quotas.get("sites", { tenantId });
const meters = await ctx.quotas.meters(); // every meter with its ownerThe quota.effectiveLimit filter can lower a stored limit but never raise it, and the quota.updated action runs after limits are saved. Both need platform:tenancy. The same reads and writes are on the Management API at /api/manage/v1/tenants/{id}/quotas and /api/manage/v1/sites/{id}/quotas.