

I would still consider myself a noob but i do feel accomplished enough to answer this properly.
Hardware depends on your budget. It does not need to be bleeding edge either, i would focus on a good server case that makes it easy to upgrade over time and maybe fits a few harddrives if you don’t plan on having a nas.
Also make sure to check how much sata connections your motherboard can handle, using an m.2 slots may occupy some of the physical sata connections.
I highly, highly recommend proxmox for an OS.
You can set up every different service into its own lxc container, its wonderful to know you can experiment with whatever and everything else will be unaffected and just keep working. Within lxc things can just run using docker (though this is officially not recommended it works fine). The resource sharing between lxc containers is excellent. Taking snapshots a breeze. And when an lxc is not enough you can easily spin up some vm with whatever distro or even windows also. Best server-choice i made ever!
The zfs format for your storage pool is also very good. And you definitely want redundancy, redundancy makes it so x amount of drives can fail and the system just keeps running like normal while you replace the broken drive, otherwise a single drive failing ruins all your data.
Unless you make every drive its own pool with specific items that you backup separately but thats honestly more troublesome then learning how to setup a pool.
How you want a pool and how much redundancy is a personal choice but i can tell you how i arranged mine.
I have 5 identical drives which is the max My system can handle. 4 of them are in a pool with a raidz1 configuration (equivalent to raid-5) this setup gives me 1 drive of redundancy and leaves me 3 drives of actual usable space.
I could have added the fifth drive in the pool fo more but i opted not too, to protect my immich photons against complete critical failure. This fifth drive is unmounted when not used.
Basically my immich storage are in a dataset, which you can think of as a directory on your pool that you can assign to different lxc to keep things separate.
Every week a script will mount the fifth drive, rsync copy my immich dataset from the pool onto it. Unmount the drive again. Its a backup of the most important stuff outside of the pool.
This drive can also be removed from the cases front in an emergency, which is part of why I recommend spending some time finding a case that fits your wants more then worrying about how much ram.
Best of luck!










“Linux is superior, i am in full control and free to use my device however”