If it's just a private instance, your storage needs will be way less. We use object storage, so it's actually pretty cheap (like $5-10 a month iirc). We're not storing that all on the server disk.
I've been considering a private instance myself so that's good to know.
If you're federating with everything by default, would that not also federate all the images and take up space that way? Or are images always just referenced from their origin instance?
I'm on a private instance. My lemmy volume as a whole is currently 72G.
5 is probably a bit undersized and liable to cause pool timeouts. But like 15 should give you enough room depending on your provider's affordability. You can always delete old data periodically.
I'm running a quite small instance and currently the full media storage is 234GB. That being said I pay $3 per month for the storage on Cloudflare R2 so that's fine. You could get more for cheaper probably with a service like Backblaze B2.
The main database (non-media) currently takes up 36GB.
You can configure the maximum size of image you will federate. You could set it to essentially 0 and you will store like no images. Downside is you will have to fetch images from other instances, whose servers may not be close to you.
For reference, Feddit.dk has a 5MB image limit. My storage is only about ~60 GB