modSizeControl
Watch the site size against its limit and see what fills it
Creator: Gulomov Bakhtovar (gulomov)
About modSizeControl
modSizeControl walks every file of the site once, so "where did the space go" is answered inside the manager. A dashboard widget shows the limit as a ring and the categories as slices; the component page has folders largest first, extras, file types, largest files and history. Scanning runs in steps, so a large site never hits max_execution_time. Cleanup frees cache, logs and old packages.
Information
Released
September 29, 2026
Supported Database
MySQL
License
GPLv2
Instructions
Install the package with the Package Manager. Nothing to configure: the dashboard widget appears on first install, and the component page is at Extras -> modSizeControl (the settings permission).
Press "Refresh" in the widget or "Scan" on the component page to run the first scan. Optional: modsizecontrol_site_limit sets the limit in megabytes, modsizecontrol_control refuses uploads that do not fit, and core/components/modsizecontrol/cli/scan.php runs the same scan from cron.
New in 2.0.0-pl
Rewritten from scratch. The system setting keys are unchanged, so a limit set by the old version keeps working.
- A component page of its own (Extras -> modSizeControl, the settings permission) with six tabs: Overview, Explorer, Extras, File types, Largest files and History. The tab, the folder and the filters live in the page URL, so they survive a reload and the browser's Back returns to the previous folder.
- Stepped scanning through the manager connector: a large site no longer hits max_execution_time, an interrupted scan resumes where it stopped, and two windows never walk the same folders. Whatever MODX keeps outside the site root is covered too: a relocated core, assets, manager, connectors and media sources.
- Scanning from cron: core/components/modsizecontrol/cli/scan.php. It continues a scan started in the manager instead of starting a second one.
- Cleanup with confirmation and the stock permissions: the MODX cache, the logs in core/cache/logs and old package versions, removed by the same core processor as the manager's own button and only below the installed version.
- The dashboard widget was rewritten: the ring is the limit, the slices are categories, and with no limit set the widget compares the site against free space on the disk. It places itself on the dashboard on first install.
- Upload control no longer measures the site on every upload: it takes the last scan plus everything uploaded since.
- pdoTools and Ace are no longer required. MODX 2 and MODX 3 install from one package.
- The world-readable assets/components/modsizecontrol/action.php, through which anyone could start a full scan of the site, is gone; a resolver removes it and the unused modsizecontrol_tpl setting on upgrade.