Dear selfhosters!
I come to you in the hope of help for avoiding some rookie mistakes.
I plan to migrate my very diverse hard- and software environment to a single machine.
Current mode of operation
I operate several RaspberryPis, a hardware firewall running on OpenWRT and a NUC like mini PC.
The RaspberryPis more or less are there for a single function; one runs Nextcloudpi, two run PiHoles, another one runs iSpy.
The mini PC is for the tasks that are heavier on CPU, RAM or storage space.
Maintaing this has become somwehat cumbersome and a replacement is dearly needed. My plan is to move all to a Proxmox sever.
I do have a general idea how to set up things, but as I'm brand new to Proxmox, I fear that there's a lot of mistakes to be made. I haven't read all documentation, but enough to know that it's no easy task to set up and operate Proxmox properly.
I'm aware that not having server hardware (e.g. no ECC RAM) is not the best setup, but AFAIU at least having a data centre SSD and lots of RAM is a good start.
Hardware
In the future all services are meant to run on this machine:
Case/Mainboard: AsRock Deskmeet X300
CPU: AMD Ryzen 5 5600GT
RAM: 64 GB
Storage:
- 480 GB SSD (Intel DC S4500 Series)
- 4 TB SSD (Team Group MP44)
- 16 TB HDD (Seagate Exos, yeah, I know, but realized too late...)
OS: Proxmox 8.3.1
Future mode of operation
Here's a high-level scheme of what I plan to do:
- Install Proxmox on the Intel SSD
- Use the 4 TB SSD as storage drive for the machines
- Use the 16 TB HDD as storage drive for backups and additional storage (for files that mainly get read like media) for the machines
- Migrate each physical device to a virtual machine (or create a new one to replicate the service)
- Repurpose the mini PC as Proxmox backup server
Help!
The areas where I think reading documents can't beat experience are:
- Do I use BTRFS or ZFS? I tend to use ZFS because of its advantages when making backups. What would you do?
- Do I use QEMU/KVM virtual machines or LXC/LXD cointainers? Performance wise QEMU emulating the host architecture should be the way to go, right?
- I shy away from running all services as Docker on the same machine for backup/restore purposes and rather have VMs per service. Is there anything wrong with this approach?
- I'd love to keep NextcloudPi (because it'd make it easy to migrate settings and files) and there's an LXD container for it. Would you recommend doing a switch to Nextcloud AIO instead?
- I've equipped the Deskmeet X300 with a WiFi card and antennas. AFAIU trying to use WLAN instead of LAN will create some trouble. Has anyone running Proxmox on a machine with WLAN insteal of LAN access successfully?
- I'm aware that Proxmox comes with a firewall, but I don't feel very confortable using a software firewall running on the same machine that hosts the virtual machines. Is this just me being paranoid or would you recommend putting a hardware firewall between the internet access and the Proxmox server?
- What else should I think of, but haven't talked about/asked yet?
Thank you very much for your time and your suggestions in advance!
Hopping in here to mention Proxmox Helper Scripts . They have many scripts that help you set up LXCs with software you may be using, including the full aar stack.
I tend to test things in a dedicated new VM, to get a feel for it, make sure I need to add it to my permanent services. If it does, I try to find a way to run it via LXC, and if that is too complicated/won’t work, I have a dedicated docker VM I throw it on. Everyone will answer the “LXC/VM/Docker” question differently, and they will all be correct. What is easiest for you is the right way.
I run a VM with opnsense as my network firewall. Moved it from a hardware install. I don’t see any issues, and there are loads of times it’s saved my ass having it backed up as a VM.
Slam as much ram as you can afford/fit inside the computer too. Every time I think I have enough, I always find I have need/use for more.
I got made aware of these scripts by @[email protected] already, but thank you for pointing me to this very helpful resource!
I suppose I will go that road for new things I'm about to try out if it's as easy as spinning up another VM or LXC.
Replicating services provided by the RaspberryPis and the mini PC I think I will try the LXC way and see how far I get.
This is leaning heavily on the experience of @[email protected] regarding performance advantages of LXC over VM.
Not having to deal with a dedicated piece of hardware/configuration is for sure in favour of a virtual firewall.
Then again the configuration of the firewall is pretty static, unless I plan on adding services in the firewall zone that need to reach the rest of the local network. I need to mull over this some more.
64 GB has pretty much reached the limit, if I don't want to throw the 4 DIMMs away and purchase a new set. Let me find out how far that carries me.