|:.:.:.:.:.:.:.:.:/.:.:.:.:.:./.:.:.:.:.:.:.:.:.:.:.:.:.:./|   '. :.:.:.:.:.:.:.:.:.:.l.ヽ:.:.:.:.l:.:.:.:.:.:.:.:.:.:∧\:.:.:.',
          |:.:.:.:.:.:.:./.:.:.:.:.:./.:.:.:.:.:.:.:.:.:.:.:.: , ′   l :.:.:.:.:.:.:.:.:.:| ∨.:.:.l:.:.:.:.:.:.:.:.:.:.∧ \:.'.
          |:.:.:.:.:.:/.:.:.:.:.: /.:.:.:.:.:.:.:.:. ヽ/ /    |:.:.:.:.:.:.:./:.:.|   y'.:.:|:.:.:.:.|:.:.:.:.:.:.∧   ヘ.
          |:.:.:.:./.:.:.:.//.:.:.:.:.:.:.:.:.:.:/ \,′   !:.:.:.:.:.:/|:.:./,/ '.:.:| :.:.:.|:.:.:.:.:.:.:.:.|
          |:.:.:/.:.:./.:./.:.:.:.:.:.:.:.:./   /` ‐-‐'|:.:.:./ |ァ'´    |:.:| :.:.:.|:.:.:.:.:.:.:.:.|
          |:.:.i.:.:./.:.:.: '.:.:.:.:.:.:.:/   ,/       |:.:.:/   ′    }.:.| :.:.:.|:.:.:.| :.:.:.:|
          |:.:.|:./.: rヘ|:.:.:.:.:.:/:.| 三三三三三  |:./   三三三 ハ|:.:.:.:.|:.:.:.| :.:.:.:|
          |:.:.l〃.:{  |:.:.:.:./.:.:.|             l.'         .i.:.:.i.:.:.:∧ :.:|ヽ :.:|
          |:.:./.:.:.:.\|:.:.:/.:.:.:.:|                '       |:.:.||:.:/  :.:.| '.:.:l
          |:./.:.:.:.:.:.:. !:./.:.:.:.:.:.'、            ,.ー--、    }.:.:|レ′ ∨  V
          |/.:.:.:.:.:.:.:.:V '´  ̄`ヽ.、            ´`¨¨{. |_.  '.:.:.:.|
         /.:.:.:.:.:.:.:./         ヘ `    . __. -r1 |:.:.:.:.:.:.:.:.|
         :.:.:.:.:.:.:, '         '. \    | _.   -┴ー──┴┐
         :.:.:.:.:./           |  \  r' |   -──────i'
    

< KONAKONA.MOE >

Stop Recommending Docker for Beginners

Last Mod.: 2024-06-20 | Created On: 2024-05-07


I have started tinkering with homelab stuff somewhere in the summer or spring of 2020. Back then it was the first time I had ever installed a Linux distro, Lubuntu, only to make a Minecraft server and it was only okay, mostly because of my underpowered hardware. I also was completely new to the CLI and I didn’t even know SSH existed so I was running downstairs and upstairs every time I wanted to make a change. This computer I was using is long gone.

After this I built myself a computer somewhere in 2021, the one I’m using to type this, and I used my old computer as a server, I think I installed Ubuntu on it, mined some Monero, hosted Minecraft servers again, etc. I learned about SSH and a bunch of other, small things.

Then I bought some 2 hard drives to make a raid, I was fairly new to NASes at the time and this is the beginning of my uhm 2 and a half? year suffering with garbage WebUIs and poor decisions: In every forum you go and ESPECIALLY almost every YouTube tutorial you see, almost everyone recommends some sort of containerization slop the worst thing being Docker. I don’t think there’s nothing that awful about Docker when used by corporations or maybe people that are already familiar with it but for me it sucked.

Because of people shilling this garbage I automatically gravitated towards WebUIs, because “itz easy for beginners” they said; I didn’t want to learn how to use Docker from the CLI and because they all said it’s easy for normies I thought that using a WebUI to manage it was normal (apart from every tutorial on YouTube people used WebUI).

I have first used TrueNAS CORE, which doesn’t support Docker, as it’s FreeBSD-cringe but I’m including it anyway because of their “Jails” which behave like LXC containers IIRC, then I switched to TrueNAS SCALE, an even bigger mistake because it’s resource hungry and the UI is very, very slow. I think I used it for like an year or so but it was a bunch of copium. I eventually reinstalled everything and went with OpenMediaVault, it was an okay experience but then again, by using it I was heavy and naturally encouraged to use containers. They have some sort of unofficial(?) plugin system that can install support for Docker with Portainer and KVM with their own GUI. And guess what? I think I had enough ram for KVM but EVERY SINGLE VM I had made would leak memory and kill itself and as for docker, well, it worked, sometimes.

What I am more pissed off is that for like 2 and a half years I had tried to use Docker with low success, I guess: I still, after years of using this garbage, have barely no idea how it works, specially permissions and honestly Portainer has way to many fucking options, it’s almost like I need a PhD to get this shit working (then again “itz easy for beginners”, “lol you got filtered!!!”), Jellyfin worked, barely, I never got hardware acceleration to work under docker… I also had the impression that I was trying to defuse a bomb, after getting something “working” I didn’t want to change it from fear that it would break.

I think my realization came from me tinkering with VPSes. I don’t remember when I bought my first VPS, it was probably 1 year ago as from writing: The VPS that I bought naturally didn’t have that much ram and I followed some tutorials from landchad.net and others, those tutorials in particular installed stuff on bare metal, without using containers or anything and so I realized how much easier it was than messing with the garbage I was using.

Get a stable Linux distribution like Debian or something RHEL based with systemd. Add some repositories and PGP keys. Download the thing. Most software come with systemd unit files meaning that a simple systemctl start <service> simply works. I don’t need to mess with containers anymore, it literally just works. I had finally reinstalled my NAS: pure vanilla Debian (that I kind of regret now because I wish I had used something like Proxmox or some RHEL distribution, but it works): It’s a popular Linux distro: everything I want to host bare metal works. Even Home Assistant that calls this type of installation “Expert” (lol).

Because I’m using something bare metal like Debian I don’t have to worry about stuff like OpenMediaVault’s WebUI using NGINX as their webserver and creating reverse proxies or maybe changing web servers entirely (e.g. Caddy that makes my life easier) potentially being catastrophic during an upgrade of the system.

Simply installing a vanilla Linux distro with no web interface and just a CLI that I can SSH into freed me from using Docker because these WebUIs all gravitate you towards containers and even if I know that it’s possible to use containers without a GUI, I’ve already seen people shilling it by showing it with commands, I just can’t use them anymore after all of this.

Right now the “hardest” things I am hosting probably are: slskd and Home Assistant.

The soulseek “slskd” (which I made a tutorial for) is only “hard” because I had to download a .zip from github with the compiled .NET C# binaries (shite microcuck framework), tuck them under /opt and try to find someone’s systemd unit file because I’m too lazy to learn this shit. Then permissions, giving it an user for the slskd process that has permissions to look at the files, etc. STUFF THAT BEGINNERS SHOULD FUCKING LEARN INSTEAD OF USING CONTAINERS PERHAPS?

…And Home Assistant, which is made with Python, it’s not hard to host, just fucking annoying: I had to make a Python VENV under /opt, create an user for it, etc. Following the tutorial on their site’s documentation. The only thing they didn’t provide was again, the systemd unit file. I also have a problem now where the geniouses at Debian can’t maintain at Python fucking package meaning that my Python package is too old to support the newer versions of Home Assistant. That’s not the fault of Home Assistant but Debian maintainers being retarded. Nothing is going to make me install Docker just for one package.

All of the above are working flawlessly, it’s a bit harder to update, but I’d rather do it like this than to install that fucking garbage Docker again.

As to everything else like Gitea, Jellyfin, have APT packages that you can add, or that are already on the official Debian repositories, you just apt install and that’s it. Oh yeah and Jellyfin’s hardware acceleration works OOTB now lmao.


Prev:
How to Disable IPv6 Support on Cloudflare
Next:
Fixing Jellyfin Song Playlists (They SUCK!!!)