this post was submitted on 30 Jan 2024
213 points (94.9% liked)

Selfhosted

40006 readers
624 users here now

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:

  1. Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.

  2. No spam posting.

  3. 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.

  4. Don't duplicate the full text of your blog or github here. Just post the link for folks to click.

  5. Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).

  6. No trolling.

Resources:

Any issues on the community? Report it using the report flag.

Questions? DM the mods!

founded 1 year ago
MODERATORS
 

I wrote a blog post detailing my homelab setup throughout 2023. It includes the hardware I use, as well as the applications I selfhosted. I also detailed how I automate my home Kubernetes cluster and how I back up my data.

all 18 comments
sorted by: hot top controversial new old
[–] [email protected] 21 points 9 months ago (3 children)

ResizedImage_2024-01-31_00-06-56_6577

makes me wander, what ai/prompt did you use to generate the pic. Looks neat!

[–] [email protected] 6 points 9 months ago

I use DALL·E via ChatGPT Plus. The prompt is the first two paragraph in this post plus "Draw a picture for this article titled My 2023 Homelab Setup".

I retried several times and picked my favorite one :)

[–] [email protected] 3 points 9 months ago
[–] [email protected] 13 points 9 months ago (1 children)

I really like self hosting too but Kubernetes is overkill in complexity. I use nomad. :)

[–] [email protected] 2 points 9 months ago (2 children)

In a cluster? I'm actually thinking about using Nomad between my three sff pc that I use as servers, but I have no clue as to how to sync storage between them (container side I mean, with nextcloud data for example)?

[–] [email protected] 8 points 9 months ago (1 children)

Storage is hard to do right :(

If you can get away with it, use a separate NAS that exposes NFS to your other machines. Iscsi with a csi might be an option too.

For databases, it's usually better to not put their data on shared storage and instead use the databases built in replication (and take backups!).

But if you want to go down the rabbit hole, check out ceph, glusterfs, moosefs, seaweedfs, juicefs, and garagehq.

Most shared file systems aren't fully posix compliant so things like file locking may not work. This affects databases and sqlite a lot. Glusterfs and moosefs seen to behave the best imo with sqlite db files. Seaweedfs should as well, but I'm still working on testing it.

[–] [email protected] 4 points 9 months ago

Yep, as someone who just recently setup a hyperconverged mini proxmox cluster running ceph for a kubernetes cluster atop it, storage is hard to do right. Wasn't until after I migrated my minor services to the new cluster that I realized that ceph's rbd csi can't be used by multiple pods at once, so having replicas of something like Nextcloud means I'll have to use object storage instead of block storage. I mean. I can do that, I just don't want to lol. It also heavily complicates installing apps into Nextcloud.

[–] [email protected] 2 points 9 months ago

Yeah in a cluster with consul. Consul gives automatic service discovery and works with traefik so I don't even have to care which node my service is running on since traefik knows how to find it using consul.

For the storage I went with a simple solution. I installed nfs on a machine running in nomad, and then configured the nomad clients to mount that disk. All of this with ansible so I don't have to do it more than once.

[–] [email protected] 5 points 9 months ago

Nice setup. Going to steal some ideas for my own setup!

[–] [email protected] 5 points 9 months ago (1 children)

Nice, gave me a couple of ideas about some other software I might be interested in hosting for myself.

I couldn't get the top-level navigation shortcuts to work in your blog, just FYI.

[–] [email protected] 2 points 9 months ago

Thanks for pointing out! It should be fixed now 😄

[–] [email protected] 4 points 9 months ago (1 children)

Upvoted for the pic. Did you draw that? Looks cool :)

[–] [email protected] 4 points 9 months ago (1 children)

The manifest of my Kubernetes cluster is managed in a Git repository and is automatically deployed via a GitOps tool named Flux CD. When I push changes to the repository, such as adding a new application or upgrading Docker images, the deployment occurs within a few minutes.

This is the way.

Although I use Flux ImageUpdateAutomation instead of Renovate Bot. Did you consider using Flux to do auto updates? Are there any downsides that made you choose Renovate Bot instead?

[–] [email protected] 1 points 9 months ago

Thanks! I looked at the documentation of Flux image update automation first but I didn't figured out how to handle Helm chart versions, and it seems it requires manual "marker" to handle image tags in Helm values (which Renovate can manage automatically), so it looks like Renovate fits my needs more.

[–] [email protected] 3 points 9 months ago

Is that really the chair you're going for?

[–] [email protected] 1 points 8 months ago

not sure that's legal to use pleX in 2024, and 90% of that is never used