I am technologically skilled to some extent, but not nearly enough to justify the financial investment I'm about to make In a home server without checking that I'm not way off the mark. Reddit tech answers are usually useless, all jerking each other off about being the most vague and useless. So I'm here, just humbly asking if my plan will work before I waste a ton of money if it doesn't.
So I want to run immich, jellyfin, vaultwarden, and a couple other small programs (including backup automation) on a home server. The photos and videos are very important and I want off of large corporate cloud services for all the reasons you can imagine. There are about 2TB of important photos and data right now to backup.
So my plan: a mini pc with a low-level i3 or i5 chip but about 256gb SSD and 8gb ram. I will buy a UPS, a hub/NAS for 2 4TB HDDs, and a separate hub for backups elsewhere on another 4TB HDD. I already have a pc with an ok graphics card (only like 8 years old, but it was above average then) and good processor. My plan is to run the server with Linux, docker, and portainer on the mini-pc, and do the most intensive work (things like local Machine Learning on the photo library in immich) on the gaming pc. To save on energy, the mini pc is the only thing on most of the time, and I will turn on the old gaming pc to do the hard tasks.
I am hoping a friend will allow me to (somehow? I don't know how yet) keep a hub+HDD backup at their place which is updated weekly automatically whenever their computer turns on.
Is this all achievable? Am I missing something small or huge? Any tech people here know something that I'll likely miss on my first attempt?
Are you planning to expose services to the internet, or are you keeping everything only locally-accessible? If the former, you'll definitely want either: a reverse proxy handling SSL certs between your router and any exposed services; or a vpn tunnel like wireguard.
I'd also recommend giving Proxmox a try. I was a little intimidated when I first started setting up my own cluster, but it's honestly not that hard and I wish I had done it before I set up some of machines as standalone ubuntu and debian. Even with 1-2 machines I'd recommend it for the convenience of being able to manage VMs on every machine within a single web UI, as well as making backups much easier especially with Proxmox backup server. Note that the default installation has some subscription nag and defaults to an Enterprise repository for system updates, but there's this post-install script that takes care of all of that.
For off-site backups at friends' houses, you could set up S3 storage on a device they plug into their network, although this would require its own dedicate reverse proxy and cert management + said friend letting you into their router's settings page. You could also offer to host your own and "trade" space, using the argument that even if they're not interested in self-hosting it's still a good idea for everyone to have some off-site backup space that isn't at the whims of Google.
Does proxmox replace portainer?? And what makes it hard if a machine is already a standalone ubuntu machine??? Thanks for your reply!
No, but Portainer can be used to help manage multiple VMs within a Proxmox cluster. You'd set up Portainer on a VM like you would any other system, and then deploy an agent to other VMs (or even other machines on your network). Think of Proxmox as your hardware abstraction layer, and tools like Portainer (or dockge, dockhand, etc) as further abstractions for your containers.
I would have to wipe the Ubuntu boot drive and replace it with the Proxmox iso, and then re-set up anything I have running on Ubuntu within the new environment. It's mostly just tedious migrations that I don't want to do badly enough right now, lol.
Is it not possible to run proxmox on Ubuntu? Or did you set all this up in just ubuntu to where it must be completely translated to proxmox?
I mean I guess you could run Proxmox on a VM in Ubuntu, but I'm not aware of any use cases for such a setup (it's fine for trying it out, I guess). Proxmox is more intended to be the platform which you manage VMs on top of.
What I'm suggesting is installing Proxmox as the root OS on your machines (at least any that would run Linux anyways), join them together into a cluster, and then install VMs on top of that. To be clear, the VMs would still run on individual machines, but Proxmox gives you a handy web UI from which you can mange any machine and any VM on those machines. You can also later explore LXC's, docker swarm, and kubernetes, but I think just starting out with a simple Proxmox cluster running a couple of VMs is a good place to start. (And then backup said VMs using Proxmox Backup Server)
Ok I read a bunch more on this, but am left with one really technical question. I am now leaning towards making my pc double as my server because it already meets most requirements and would save me a lot of money.
But if I do it via proxmox, I can't see a way I could still use the pc for any gaming without turning off the proxmox servers. I could do an Ubuntu or windows VM within proxmox, but from what I know, games will not run well on VMs, so it would require a dual boot setup with separate drives.... meaning my server turns off to turn on games.
Am I correct in my conundrum?
Ah yeah, you can enable a desktop environment on the Proxmox machine and (I assume, haven't tried it myself) have an experience more or less like regular Debian with VMs running in the background (that you can shut down to free up resources when gaming). I would consider this really over-engineered, and only worth doing if you're happy to get the learning experience and dealing with the added complexity, and possibly tearing it all down and starting over if it doesn't perform well. Absolutely nothing wrong with just running Ubuntu/Bazzite/whatever natively, and running docker containers on that can be spun down when gaming.
Holy shit thats a lot of layers and im not following entirely... but I think I need to figure it out myself a bit. So ProxMox is just the base OS and I could install Ubuntu within Proxmox on a VM, but all my server shit is just within proxmox but not within the Ubuntu VM.... I didnt understand Proxmox at all before this, turns out