Selfhosted
A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.
Rules:
-
Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.
-
No spam posting.
-
Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it's not obvious why your post topic revolves around selfhosting, please include details to make it clear.
-
Don't duplicate the full text of your blog or github here. Just post the link for folks to click.
-
Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).
-
No trolling.
Resources:
- selfh.st Newsletter and index of selfhosted software and apps
- awesome-selfhosted software
- awesome-sysadmin resources
- Self-Hosted Podcast from Jupiter Broadcasting
Any issues on the community? Report it using the report flag.
Questions? DM the mods!
view the rest of the comments
Don't you think recommending k8s to someone who just wants to run some services, which partly don't even have k8s support/helmcharts on the same machine is a bit too much? Compared to docker compose or whatever op is using, it's way more complex if you're not already familiar with kubernetes resources.
I don't know much about k3s in particular admittedly, but I wouldn't recommend k8s for this unless op just wants to use it as a lab.
Probably overkill and I agree with you.
K8 is for scale. Like managing a whole fleet of servers. Even with my devops team, it's quite a lift to suggest it to someone who is getting their feet wet.
Of the services OP is asking about, I've only run Lemmy, but I will say that running fediverse services are quite advanced, which is exactly what k8s is made for - Running advanced web applications.
I'm firmly on the "k8s at any scale" team. If you can figure out how to run the k3s install command and are willing to look at some yaml documentation, you will have a much easier time setting up database and networking, running backups, porting your infrastructure to other providers, and maintaining everything, than with legacy control panels or docker compose. The main reason why Docker Compose is so much more accessible for self-hosters is because of the quantity of noob-focused documentation for Docker Compose, But learning either system requires learning the same concepts of containers, IP adresses, storage, etc. Docker Compose also has some disk and networking shortcuts for single-server workloads, but they also have their downsides (what is a macvlan?).
The main reason why I think Kubernetes is critical for this specific workload is the number of production-critical databases that OP will need to run. OP will be running something like 4-8 postgres databases, with high uptime and 100% durability requirements. Trying to do that manually with Docker compose just isn't feasible unless you're willing to code. Kubernetes makes all of that automated with CNPG. See how easy it is to create a database and have automated backups to S3 with Kubernetes
The biggest challenge for kubernetes is probably that the smaller applications don't come with example configs for Kubernetes. I only see mastodon having one officially. Still, I've provided my config for Lemmy, and there are docker containers available for Friendica and mbin (though docker isn't officially supported for these two). I'm happy to help give yaml examples for the installation of the applications.
I really don't see this. Database? Same but needs a service. Networking? Services and namespaces instead of docker networks. Backups? Basically same as Docker but k8s has cronjobs so you can have it at the same place as your other stuff which is a good point. Porting infrastrutcture? Copy compose file, env files and volumes vs. copying all resources and pv.
I am absolutely not against self hosting in k8s and if IP already had k8s running, I'd recommend it too. But I don't see the benefits for the scenario op described.
You might be right with the better/more accessible docker docs everywhere being the main reason it's so popular, but it's also usually just one file that describes everything AND is usually the supported install method of many projects where helm charts are often third party and lack configurability.
CNPG is cool, but then OP also needs to learn about operators and custom resources :) More efficient? Yes. More complex? Also yes.
As said above, I agree it's one challenge, but added complexity is not to underestimate.
Completely off topic: Your post did make me think about running my own cluster again though. I also work on k8s at my devops dayjob but with a cloud provider it's not the same than running your own ofc. I've also been thinking about tinkering with old smartphones in that potential cluster..