Enabling disk quota¶
The panel allows a per-package disk limit (DiskQuotaMB) and a file/inode limit (MaxInodes — caps the number of files/directories and guards against inode exhaustion that a byte limit alone misses). For those limits to actually be enforced, the operating system must have Linux filesystem quotas enabled on the root filesystem (/).
On a fresh install: automatic
The one-liner installer (get.enconf.com) has enabled quota automatically for a while now — a freshly installed box has no customer data yet that a remount could put at risk. It's best-effort: on unsupported filesystems (e.g. overlay/Btrfs) or containers without their own block device, the step is skipped cleanly without blocking the install. The Security Advisor shows whether it succeeded on a given box.
On existing, already-running servers enconf still does not enable this automatically for safety (e.g. during an update) — changing fstab and remounting/rebooting a live root filesystem that already has provisioned customer sites on it remains a deliberate, admin-timed step.
Honesty over security theatre
While quota is not active, configured DiskQuotaMB/MaxInodes values are stored but not enforced. The Security Advisor shows the real status under the "Disk quota" check (green = active, yellow = not active). Once enabled, both limits apply automatically to newly provisioned sites.
Check the status¶
If it prints "no quota enabled", quota is not active. The Security Advisor (Admin → Security Advisor) shows the same status.
Enable (ext4)¶
-
Edit
fstab— addusrquotato the root entry's mount options: -
Remount (or reboot):
-
Build the quota database and turn it on:
Afterwards repquota -u / shows a table instead of the error, and the advisor check turns green. Per-package DiskQuotaMB values apply from the next provisioning operation; for existing users they are re-applied on the next package save.
Enable (XFS)¶
On XFS, quotas are controlled via the uquota mount option and activate at mount time — no quotacheck needed:
An XFS root can only pick up quota options at boot, so a reboot is required here.
Notes¶
- Only the root filesystem mount matters, since customer directories live under
/var/www/customers/. - Cloud images without a separate
/device work the same way — what counts is the mount option on/. - Container hosts without their own root filesystem (LXC/OpenVZ) don't support classic quotas; there the cgroup-based limits (RAM/CPU/IO) still apply, only disk quota does not.