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?

  • nasezero [comrade/them]@hexbear.net
    link
    fedilink
    English
    arrow-up
    7
    ·
    1 month ago

    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 that is required to access anything inside your LAN from the outside internet.

    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 my 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 tunnel setup or dedicated 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.

      • nasezero [comrade/them]@hexbear.net
        link
        fedilink
        English
        arrow-up
        2
        ·
        1 month ago

        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.

        And what makes it hard if a machine is already a standalone ubuntu machine???

        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.

          • nasezero [comrade/them]@hexbear.net
            link
            fedilink
            English
            arrow-up
            2
            ·
            edit-2
            1 month ago

            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, which itself installs from an .iso into its own VM on your cluster.)

            • DutchMZTer [none/use name]@hexbear.netOP
              link
              fedilink
              English
              arrow-up
              2
              ·
              1 month ago

              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

            • DutchMZTer [none/use name]@hexbear.netOP
              link
              fedilink
              English
              arrow-up
              2
              ·
              1 month ago

              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?

              • nasezero [comrade/them]@hexbear.net
                link
                fedilink
                English
                arrow-up
                2
                ·
                1 month ago

                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.

                • DutchMZTer [none/use name]@hexbear.netOP
                  link
                  fedilink
                  English
                  arrow-up
                  2
                  ·
                  1 month ago

                  Hey I wanted to profusely thank you for your help. It was genuinely amazing help… im still learning just from reading your comments, looking up a term, and then coming back after a rabbit hole. But Im practicing proxmox on 15 year old laptop right now before implementing it on the pc.

                  I ended up getting a 2nd pc, but am looking now into dual booting my gaming pc with Ubuntu to do some tasks that only need to happen every once in a while. But i dont really understand clustering all that well nor how I would integrate it with my proxmox main server box… like to do backups on my gaming pc once a week and have thay backup go once a month to my friend’s or something using that gaming pc… is that sensible or nonsense?? I just imagine it having a different psu in a 2nd computer as some layer of redundancy? Is that right?

                  My plan is to use the free tier of corporate clouds for like the most recent month of photos so that theres a 3rd save location until I like monthly do a backup to my friend’s, have a permanent HDD with data every year or so (so like a 500gb cheap one) that I then store at my parents’, and using proxmox ZFS on my important data with 3 hdds. This is expensive, but I saved so much on the hardware due to all of your (plural, the whole thread was amazing) advice.

                  But that all being said, can I come back to you every once in a while to bounce an idea off to hear if I’m still being logical? Im so scared of losing precious photos.

                  Like, a question i can’t wrap my head around now: I want proxmox to handle my ZFS, but immich to also have thumbnails on an SSD. Should thay ssd be separate from the one which promox is on? And what about the one that has the cache of new data (to not have the hdds always on but only once a threshold is met?)

                  • DutchMZTer [none/use name]@hexbear.netOP
                    link
                    fedilink
                    English
                    arrow-up
                    2
                    ·
                    1 month ago

                    Jesus I typed a lot. Sorry, I dont want to take advantage of a stranger, but your messages are just so useful right now to me so I’m like enamored hahahaa

                  • nasezero [comrade/them]@hexbear.net
                    link
                    fedilink
                    English
                    arrow-up
                    2
                    ·
                    30 days ago

                    That’s awesome to hear! This has been my hyperfixation for the past several months, so I’m happy to share all I’ve learned (and admittedly, there’s still a lot for me learn myself)!

                    Here are a couple of videos which might help, one on clustering two machines together and one on Proxmox Backup Server (PBS). Although, I’m not sure if PBS can back up physical hosts (i.e., any arbitrary OS root filesystem running on bare metal as opposed to in a VM), but there’s a ton of open source backup services you can run which might fit your needs. I think Duplicati might fit the bill for backing up desktop/laptop environments.

                    For Immich, I think your question depends on how you’re running it. I’m not super familiar with ZFS (my NAS uses it internally, but it’s mostly abstracted from my pov), but if you can set it up to use NFS (Network File Storage) then you should be able to use it from any networked system. So for example, if you’re using a docker container (running on a Proxmox VM, LXC, etc), then you’d configure the docker volume to your ZFS NFS path.