Hello everyone,
I am about to renovate my selfhosting setup (software wise). And then thought about how I could help my favourite lemmy community become more active. Since I am still learning many things and am far away from being a sysadmin I don’t (just) want tell my point of view but thought about a series of posts:
Your favourite piece of selfhosting
I thought about asking everyone of you for your favourite piece of software for a specific use case. But we have to start at the bottom:
Operating systems and/or type 1 hypervisors
You don’t have to be an expert or a professional. You don’t even have to be using it. Tell us about your thoughts about one piece of software. Why would you want to try it out? Did you try it out already? What worked great? What didn’t? Where are you stuck right now? What are your next steps? Why do you think it is the best tool for this job? Is it aimed at beginners or veterans?
I am eager to hear about your thoughts and stories in the comments!
And please also give me feedback to this idea in general.
OS: Unraid
It’s primarily NAS software, with a form of software raid functionality built in.
I like it mainly because it works well and the GUI makes is very easy to use and work with.On top of that you can run VMs and docker containers, so it is very versatile as well.
I use it to host the following services on my network:
- Nextcloud
- Jellyfin
- CUPS
It costs a bit of money up-front, but for me it was well-worth the investment.
Love Unraid. Been using it for a few years now on an old Dell server. I’m about to transform my current gaming PC into the main server so I can utilize the GPU pass-through and CPU pinning for things like running a VM just for LLM/AI and a VM for EndeavourOS for gaming. I just need to figure out how to keep my old server somehow working still bc of all the drive storage I have already setup, which my PC doesn’t have space for without a new case.
For anyone looking to setup Unraid, I highly recommend the SpaceInvaderOne YouTube channel. It helped tremendously when I got started.
+1 for unraid. Nice OS that let’s me easily do what I want
I’m interested in learning more about nixOS but until i get there, proxmox all day
I use TrueNAS SCALE at home on my NAS and since they ditched kubernetes (and Truecharts, which was a happy little accident) it’s been great.
It’s free.
New hardware is incorporated into the kernel reasonably regularly IMO.
ZFS file system
Pretty easy to control with GUI exclusively
Docker is now very easy to use, images are community supported mostly but I’ve not had issues with Jellyfin, *arr, pihole, reverse proxy etc.
I’ve been using Ubuntu server on my server for close to a decade now and it has been just rock solid.
I know Ubuntu gets (deserved) hate for things like snaps shenanigans, but the LTS is pretty great. Not having to worry about a full OS upgrade for up to 10 years (5 years standard, 10 years if you go Ubuntu pro (which is free for personal use)) is great.
A couple times I’ve considered switching my server to another distro, but honestly, I love how little I worry about the state of my server os.
I’m pretty happy with Debian as my server’s OS. I recently gave in to temptation and switched from stable to testing, on my home systems I run Arch because i like to have the most up to date stuff, but with my servers that’s a bit less important, even so debian testing is usually pretty stable itself anyway so I’m not worried much about things breaking because of it.
I used to really like esxi, but broadcom screwed us on that.
Hyper-v sucks to run and manage. It’s also pretty bloated.
Proxmox is pretty awesome if you want full VMs. I’m gonna move everything I have onto it eventually.
For ease of use, if you have Synology that can run containers, it’s okay.
I also like and tend to use unraid at my house, but that’s more because of my insane storage requirements and how I upgrade with dissimilar disks fairly frequently. (I’m just shy of 500tb and my server holds 38 disks.)
Damn, 38 disks! How do you connect them all? Some kind of server hardware?
Curious because I’m currently using all 6 SATA ports on an old consumer motherboard and not sure how I’ll be able to expand my storage capacity. The best option I’ve seen so far would probably be adding PCIe SATA controller(s), but I can’t imagine having enough PCIe slots to reach 38 disks that way! Wondering if there’s another option I haven’t seen yet.
Yep. It’s a 4u super micro chassis with the associated backplanes.
I had some servers left over from work. It’s set up to also take jbod cards with mini-sas to expand into additional shelf’s if I need that.
My setup really isn’t much of an entry setup. It’s similar to this: https://store.supermicro.com/us_en/4u-superstorage-ssg-641e-e1cr36h.html
Proxmox Virtual Environment (PVE, Hypervisor), my beloved. Especially in combination with Proxmox Backup Server (PBS).
My homelab would not exist without Proxmox VE, as I’m definitely not going to use Nutanix or VMWare. I love working with linux and Proxmox VE is literally debian with a modified kernel and a Management Webinterface on top.
I first learned about Proxmox VE in my company, while we still had VMWare for us and all of our customers. We gradually switched everyone over to Proxmox VE and now I’m using it at home too. Proxmox is an Austrian (my country) company, so I was double hyped about this software.
A few things I like most about Proxmox VE
- Ease of access to the correct part of the documentation you currently need (*)
- Open Source
- Company resides in my country (no US big tech walled garden)
- Linux / Debian based, so no learning new OS’s and toolchains
- Free version available
- Forum available and actually used
(*) What I mean by ease of access to the correct part of the documentation is: Whenever you’re in the WebUI and need to decide on some settings, there’s a button somewhere on the same page which is going to lead you directly to the portion of the documentation you need right now. I don’t know why this seems like such a great luxury, every software should have something like this.
Next steps
My “server” (some mini PC with spare parts I already had) is getting too weak for the workload I put it through, so I’m going to migrate to a better “server”. I already have a PC and most of the necessary parts, I just need some SSDs and an AMD CPU.
Even migrating from PVE (old) -> PVE (new) couldn’t be easier:
- PVE (old): create last backup to PBS, shut down PVE (old)
- PVE (new): add PBS, restore Backups
- ???
- profit
I think it’s great to have a series posting about personal achievements and troubles with selfhosting. There’s so much software out there, you always get to see someone doing something you didn’t even know could be done or using a software you didn’t realize even existed. Sharing is caring.
Kinda dumb but I run DietPi on a mini PC. Just nice and simple
+1. Very easy, very stable.
I also started with DietPi an every device, works like a charm. But I personally want to try something else to learn a bit more.
Edit:
I think about trying NixOS in the near future.
I think this is a great idea. With such a foundational deployment concept like OS there are so many options and each can change the very core of one’s self hosted journey. And then expanding to different services and the different ways to manage everything could be a great discussion for every existence level.
I myself have been considering Proxmox with LXCs deployed via the Community Scripts repo versus bare metal running a declarative OS with Docker compose or direct packages versus a regular Ubuntu/Debian OS with Docker compose. I am hoping to create a self-documenting setup with versioning via the various config and compose files, but I don’t know what would end up being the most effective for me.
I think my overarching deployment strategy is portability. If it’s easy to take a replacement PC, get a base install loaded, then have a setup script configure the base software/user(s) and pull config/compose files and start services, and then be able to swap out the older box with minimal switchover or downtime, I think that’s my goal. That may require several OS tools (Ansible, NixOS config, Docker compose, etc.) but I think once the tooling is set up it will make further service startups and full box swaps easier.
Currently I have a single machine that I started spinning up services with Docker compose but without thought to those larger goals. And now if I need to fiddle with that box and need to reboot or take it offline then all my services go down. I think my next step is to come up with a deployment strategy that remains consistent, but I use that strategy to segment services across several physical machines so that critical services (router, DNS, etc.) wouldn’t be affected if I was testing out a new service and accidentally crashed a machine.
I love seeing all the different ways folks deploy their setups because I can see what might work well for me. I’m hoping this series of discussions will help me flesh out my deployment strategy and get me started on that migration.
This sounds very interesting! I came from DietPi to MicroOS and am now thinking about NixOS, also because of the portability aspect.
I skipped Ansible for now but maybe I have to try that out together with NixOS.
Are you using a VM manager of some sort? I saw libvirtd mentioned in this thread a couple of times.
Proxmox and truenas for all my physical boxes and then Debian for all my VMs and LXCs. I’m not all that adventurous when it comes to OS choice as I found things that worked years ago and I’ve stick with them ever since as I’ve not seen anything that really looks like it does anything interesting/new that makes it worth switching.
PVE running on a pile of e-waste. Most of the parts are leftovers from my parents’ old PC that couldn’t handle Win10. Proxmox loves it. Even the 10GB mis-matched DDR3 memory. The only full VM is OPNSense (formerly pfSense), everything else runs inside Debian containers. It only struggles when Jellyfin has to transcode something because I don’t have a spare GPU.
Debian on the host and everything else in containers
openSUSE MicroOS
I’ve only tried it out on a VPS, so I’m not completely sold on it yet, but I do think I’ll be switching to it eventually. I’m currently on Leap, but since almost everything is containerized, I’m not getting much benefit from the slow release cycle.
For your questions:
Why would you want to try it out? Did you try it out already? What worked great? What didn’t
The main appeal is unattended, atomic updates using bleeding edge packages. You keep your apps as separate from the base system as possible (containerized), and the base handles itself.
My main issue is with the toolbox utility, which runs a container to hold userland utilities for debugging stuff. So far, it has been buggy with the underprivileged user I configured, and I’d really rather not login as root. I’ve worked around it for now, but it leaves a lot to be desired.
Where are you stuck right now? What are your next steps?
Mostly figuring out how I want to handle my VPN (for exposing LAN services to the outside world) config. My options are:
- containerize, and configure iptables rules to route traffic properly
- install the needed tools to the base system and configure it on the host
The main sticking point is that I need HAProxy in front and route traffic to the given device, so the VPN and HAProxy need to talk. The easiest solution is to put both on the host, but that breaks the whole point of MicroOS. The ideal is to have both the VPN and HAProxy containerized, but I ran into some issues with podman.
Why do you think it is the best tool for this job? Is it aimed at beginners or veterans?
This is definitely a veteran system right now, but I think it’s ideal because it means I can completely automate system updates and not worry about my apps breaking. It also means I can automate setting up a new server (say, if I move to a different VPS) or even new OS since I only need to deploy my containers and don’t need anything special from the OS setup.
I’m also playing with Aeon on my laptop, but that’d going a lot less smoothly than MicroOS on the server.
Maybe crazy, but I’ve been running flatcar lately. Automatic OS updates are nice and I pretty much exclusively use most of my machines to run containers.
Proxmox all day, every day.
Generally speaking I start with Debian and install proxmox on top rather than use their installer, this way I can config things as I want them before getting proxmox going, which I guess counts as a more advanced user use case, though not really complicated.
Edit: and if it wasn’t obvious, everything is Debian, even those not on proxmox (which is just debian anyway, and isn’t much tbh).