A forum administrator celebrates a milestone: 10,000 registered members. The MySQL database weighs 2 GB — manageable. The uploads/ folder weighs 180 GB. Nightly backups exceed the six-hour window, the host sends a "disk full" warning, and nobody planned for every avatar thumbnail and screenshot counting as much as a classic blog page.
Community forums rarely fail on the home page. They fail on silent storage: attachments, inline images, shared ZIP archives, log dumps posted by members. Traffic growth shows up in Analytics; disk growth only shows when backup fails.
Why attachments change the hosting equation
A typical forum post is light in the database: a few kilobytes of text. Add a smartphone photo (3–8 MB), a PDF (2 MB), a generated thumbnail (200 KB), and you multiply load by hundreds every day.
| Component | Growth | Hosting impact |
|---|---|---|
| Text + metadata | Linear, slow | MySQL / PostgreSQL |
| Avatars & signatures | Medium | Disk + CDN |
| Thread attachments | Fast | Disk, inodes, backup |
| Full-text search | Accelerating | RAM, indexes, CPU |
| Moderation (queues) | Variable | Workers, queue |
On a forum, disk is the metric that lies least. Traffic can be cached; a 5 MB JPG is not, until it is served via CDN or object storage.
Storage architecture: local, object, or hybrid
Phase 1 — Launch (< 500 active members). Local uploads/ with strict quotas: 2 MB per image, allowed types, automatic resize on upload. Watch inodes as closely as gigabytes.
Phase 2 — Growth. Externalize to object storage (Scaleway Object Storage, OVHcloud Object Storage, AWS S3 in an EU region). The forum stores a URL, not a local path. Backups: database snapshot + object versioning.
Phase 3 — Scale. CDN in front of media, read replicas for the database, async moderation via queue (Redis + workers).
Quotas and upload policy: prevent rather than apologize
Rules that hold in production:
- Maximum size per tier (member / moderator / staff).
- Automatic WebP/AVIF compression for images.
- Delay before upload for new accounts (anti-spam).
- Async moderation of a user's first files.
- Purge orphans (deleted post → deleted file).
Without automatic purge, uploads/ becomes a landfill. Weekly cron: files with no database reference → trash then delete.
Hosting: criteria beyond "unlimited sites"
| Criterion | Question to ask | Warning sign |
|---|---|---|
| Disk space | Total quota and inodes? | "Unlimited" with no number |
| I/O | SSD or NVMe? | Backups slow the site |
| Backup | Single-file restore included? | Paid on-demand backup only |
| PHP workers | Enough for moderation + upload? | 503 during evening peaks |
| Object storage | Native S3 compatible? | FTP only |
A 40 GB VPS looks large at launch. At 500 photos per week, you hit the ceiling in months — not years.
Moderation and load: the hidden cost of queues
Each uploaded image can trigger: antivirus scan, thumbnail generation, search indexing, email notification to 50 thread subscribers. That is not one HTTP request — it is five jobs.
Plan Redis or a Celery/RabbitMQ queue, workers separate from the web tier, and rate limits on the upload API. Otherwise a bot spam raid with 10 MB PNGs takes down PHP-FPM before the disk is full.
The peak: the community may forgive slowness, not lost history
Hosts sell traffic and CPU. Your forum mostly lives on files nobody revisits until something breaks.
Decide and move forward without blind spots
Measure uploads/ today and project ×24 months with member growth. Set quotas and image resizing before the next acquisition push. Test restore of one file plus its associated post. Plan object externalization from 20 GB of media or 70% disk used. Put a CDN in front of media once readers span Europe.
Explore object-storage offers in our directory. For job queues, see Celery: keep a task queue from becoming a black box. Track disk growth monthly the same way you track monthly active users — both curves predict when infrastructure breaks.
Frequently asked questions
How much storage should you plan for a growing forum?
Average attachment size × messages per month × 24 months, plus 30% headroom. An image-rich forum quickly exceeds 100 GB per year without HTTP traffic looking enormous. Revisit the projection after every viral thread or photo contest.
Should files live on the same server as the database?
From a few thousand active users, split: database on SSD, files on object storage or NAS. Backups and CDN benefit immediately. Co-located uploads also compete with database I/O during backup windows.
What upload limits should you enforce?
Maximum size, MIME types, user quota, image compression, scan or async moderation for new accounts. Publish limits in community rules so moderation is predictable, not arbitrary. Staff tiers can allow larger archives without opening the floodgates for everyone.
Is shared hosting suitable for a forum?
Yes to start, with strict upload discipline under roughly 500 active members. Beyond that, inode, I/O and backup limits hit first — long before CPU becomes the bottleneck.
A forum grows in the silence of the uploads folder. Prepare it before the community discovers, through your dead links, that you did not.