TL;DR:
- I can't decide between Debian and the new "immutable" Fedora server variants
- Currently I use Debian with pretty much everything being containerised, and it works fine.
- I'm neither very good at what I'm doing, nor want to spend my weekends troubleshooting. Opting for something new could cause some headaches I guess?
- How did you set up CoreOS? Are there simple ways?
- Would you recommend me something different?
My backstory with Debian
I will soon set up a new home server and need your opinion and experiences.
I'm using Debian as the OS for my current one.
While it doesn't match my "taste" perfectly, as I slightly prefer RedHat stuff, I really don't have much preference, since I don't interact with the host much anyway.
Everything is containerised via Docker, and I don't even know why I like Rocky-/ Alma more. I tried Alma once and it just clicked better, I can't explain it...
But that doesn't mean I dislike Debian, not at all!
Still, at that time I decided to go with Debian, since it's the standard for most selfhosters, has the best software support, and is completely community run, opposed to RHEL and its clones.
At that time I didn't know Distrobox/ Toolbx, and I really wanted to install CasaOS (basically a simplified Cockpit + Portainer for less techy people), because I was a total noob back than and didn't want to do everything via CLI.
Nowadays, I found alternatives, like Cockpit, and I also do more via the terminal.
And if I want to install something that doesn't support my host OS, then I just enter my Toolbx and install it there.
Still, I absolutely don't regret going for Debian. It was a good choice. It's solid and doesn't get in my way.
What has changed in the last year(s)
In the last year now, I really began to enjoy using image based distros, especially Fedora Atomic.
I really love Atomic as desktop distro, because it is pretty close to upstream, while still being stable (as in how often things change).
For a desktop workstation, that's great, because DEs for example get only better with each update imo, and I want to be as close to upstream as possible, without sacrificing reliability, like on a rolling release.
The two major releases each year cycle is great for that.
But for a server, even with the more stable kernel that's used in CoreOS from what I've heard, I think that's maybe too unstable?
I think Debian is less maintenance, because it doesn't change as often, and also doesn't require rebooting after each transaction.
But, on the contrary, I wouldn't loose much to the "immutability", because I use containers for everything anyway.
Having way better security (sane SELinux setup, rootless containers, untampered OSA, etc.) and the ability to roll back in case something doesn't work, while self updating, sounds very promising.
Setting up CoreOS; FCOS vs FIOT
The major thing that's keeping me away from CoreOS/ uCore is all the ignition-butane-stuff.
From what I've heard, it's needlessly complicated for home use, and FCOS is best suited for fleets/ clusters of servers, not just for one.
Fedora IOT seems to be simpler, but doesn't have the same great defaults and features as uCore, since there isn't an IOT variant of uBlue.
But hey, at least I have my Anaconda installer.
What do you think about installing IOT, and then rebasing to uCore?
Or, do you think FCOS is just not the right thing for my use case?
In general, do you think that it is worth it, compared to plain old Debian?
Pros vs. cons
Anyway. I'm really thinking about all of this for a long time now, and can't decide.
On the one side, it all sounds promising and great.
But, on the other side, selfhosting isn't a primary hobby of mine.
I just want a solid setup I don't have to maintain much after setting everything up. Image based server OSs are still very new and often unheard of, and being an early adopter might cause a lot of headache in that case when it comes to servers.
The "right" use case?
Just in case no one has tried FCOS or FIOT here, I will continue using Debian for my main server, and only use Fedora IOT for my Octoprint server, which only gets turned on sporadically, and would greatly benefit from that.
But if there are positive experiences, then I might give it a try.
Alternatives
Or, would you recommend me something entirely different?
NixOS for example sounds great in theory, but is way too complicated for me personally.
Or, would you recommend me to give Alma another try?
Is there something even better?
I never had an IT background and also "just tried" Linux a few years ago.
Now, I'm still not an Linux expert, but relatively proficient with it.
I tried reading "How Linux works" (free e-book), but didn't have a great time with it.
It's just too detailed for someone who just wants to use Linux. It might be an absolutely great resource if you plan to work in IT, but other than that, just it's too much wasted time.
What helped me a lot was to use Linux as an OS for my homeserver.
You don't need anything fancy for it. Just use an old spare laptop or something similar you have laying around, or buy an used small form factor PC, like those Mini-PCs many businesses use. Those often cost less than 50 bucks and would otherwise land on the trash.
Then, install your server OS of choice. The most popular one is just plain ol' Debian, and it's what I used. It's a great choice!
Servers run without a display or GUI (DE/ WM). You set it up once, and then connect to it remotely via SSH.
With that, you can either install a web interface like CasaOS or Cockpit, or just use the CLI for everything.
For the start, you can choose just Nextcloud AIO and call it a day. It comes with all things needed for a functioning webserver. But, things said, the learning experience ends here pretty quickly. It's made to be easy and painless.
If you want to learn more, then consider setting up the stuff for yourself. It's also really not hard (coming from someone who doesn't IT stuff professionally!), but takes a bit more time, because you have a lot of choices.
For that, you might consider checking out c/Selfhosted and
awesome-selfhosted
on GitHub.Theres a lot of really cool things you can discover!
The main reason I recommend that, and not just "Try LFS, Arch, Void, Gentoo, or whatever" is because I find it pretty much useless. Sure, you learn how it works, but for what price?
When you set up your own homelab, then you have actual useful things running, you also learn a lot, and maybe you can add it to your CV when applying for jobs. I for example work in the chemistry sector, where IT stuff like this is pretty useless on the first glance, but I often got invited for a job interview exactly because of that. It's just a nice skill to have!
For checking out great CLI tools, check out the according video from TheLinuxExperiment or other YouTube/ PeerTube videos.
Try to learn the basic commands, like
cd
,ls
orcat
, then look up for more advanced/ alternative tools, liketree
(instead of ls),bat
(instead of cat), and so on, and then try to learn shell scripting.I really like using
fish
instead ofbash
, because it's a very friendly and interactive shell ;)I hope that my comment was helpful! :)