File storage
Oct 15, 2026
Settings > File Storage says where each kind of uploaded file lives.
The kinds of file
- Ticket attachments
- Email template attachments
- Product downloads (with the Product Downloads plugin)
- Receipts (with the Finance & Expenses plugin)
Public uploads such as your logo, CMS images and page builder files are not included. They are served directly by URL.
The default place
Out of the box every kind is stored inside the application, in storage/app/private. That works, but it makes backups and updates bigger as files accumulate.
Add a place outside the application
- Click to add a new place and enter a full folder path outside the website, for example
/home/SITEUSER/whbmp-files. - WHBMP creates the folder if it does not exist, and tests it by writing a small file. Relative paths,
.., the public folder and the document root are refused. - Choose which kind of file should use the new place.
Moving existing files
When you switch a kind to a new place, WHBMP copies the existing files in the background:
- It counts the files.
- It copies them, checking each copy by size (and by hash up to 20 MB).
- It copies anything added meanwhile.
- It switches to the new place and does a final pass.
Good to know:
- Moves run through the cron job, a few minutes of work at a time. For a very large amount, run
php artisan file-storage:migrateover SSH. - Nothing is deleted from the old place. Delete the old files yourself after you have checked the new place.
- If a move stops, the page shows where, and you can resume from where it stopped.
- A place that is in use, or is being moved to, is locked: its folder cannot be changed. To use another folder, add a new place and move the files to it.
Health check
System > System Health warns while any kind is still stored inside the application folder.
Backups
Include the new folder in your backups. The database only stores relative file names like ticket-attachments/12/a.pdf.