Overview
Each client is assigned a disk quota enforced at the OS level. Writes fail gracefully when the limit is reached — SFTP uploads and PHP file operations are blocked, but existing content is unaffected. Default is 2 GB.
Check usage
repquota -s / # all clients at a glance quota -u clientname # one client du -sh /var/www/clients/acme/ # actual directory size
Change a client's quota
cx1-set-quota.sh acme 5G # set to 5GB cx1-set-quota.sh acme 500M # set to 500MB cx1-set-quota.sh acme 20G # set to 20GB
✅ Change takes effect immediately — no restart required.
Recommended sizes
| Client type | Suggested quota |
|---|---|
| Brochure / small business site | 2–5 GB |
| Blog / media-heavy site | 5–20 GB |
| eCommerce with product images | 20–50 GB |
| High-volume file storage | 50 GB+ |
What happens when quota is full
- File writes fail with "Disk quota exceeded"
- SFTP uploads are rejected
- PHP uploads and cache writes fail
- Existing files are untouched — nothing is deleted
⚠️ WordPress and CMSs may show errors when quota is full. Increase quota before the client reports problems — a weekly cron alerts at 80% usage.
Quota alerts
A cron runs every Sunday 06:00 and emails root when any client exceeds 80%. To change the recipient, edit /etc/cron.d/cx1-quota-alerts.
Remove quota limit (unlimited)
setquota -u clientname 0 0 0 0 /
Troubleshooting
quotaon -v / # ensure quotas are active mount | grep usrquota # confirm mount option repquota -s / # full usage report