@pfr @cyntheon As someone who has torn out several homelabs over the years (aka advice granted through rack nut blood, 3am something not working sweat, and migration tears), I want to emphasize that the scaling is not just up, but out. Even if you run it on the same machine initially, separating your storage and compute will do wonders for your sanity later. Keep your compute as slim as you can to start, and only add more resources as necessary. If it needs storage, attach it over the network - even if that means it’s just using the loopback right now. When you need to add more storage, your compute is designed to be easily pointed at the new target. When you need to add more compute resources or tasks, your storage is designed to be unbothered and uninterrupted by the new demands.
I still run compute and storage on the same machine, but I’ve gone:
* One independent system
* Two independent systems
* Three independent systems
* Two independent systems, plus a cluster of four servers
* Just the cluster of four servers (I finally moved all of my storage to the cluster so I could shut down the power hogs)
Migrating to the cluster took by far the longest, because I had to tear out and rebuild everything I had never planned to scale in any way. Nextcloud was running on a VM with a 2TB boot disk that both took up too much space 24/7 yet would also run out of space if I ever reached that level.
Tl;dr: If you think you will ever want to do more, plan on it from the start. That’s my advice.