Commit 54a254596a

54a254596a0d303618fc89273d414a2710330f70

parent: fd71ed422e

Verified · cmc

cmc <hello@cleberg.net> · 2026-06-27 04:30 UTC

publish new post: homelab-maintenance

Layout: unified · split

content/blog/2026-06-26-homelab-maintenance.org added +99
@@ -0,0 +1,99 @@
1#+date: [2026-06-26 Fri 23:01:11]
2#+title: I Don't Maintain My Homelab
3#+description: I don't maintain my homelab... it maintains itself.
4#+slug: homelab-maintenance
5#+filetags: :self-hosting:
6
7It's true. I *don't* maintain my homelab... it maintains itself.
8
9Have I reached nirvana? Is this the ultimate goal of homelabbers? It seems
10that I've somehow automated myself out of a job (hobby?) by building a resilient
11homelab.
12
13Let's figure out where it all went "wrong".
14
15* Infrastructure
16** Server
17I have used a few different servers over the years, but have since consolidated
18all of my services onto a single server ([[https://cleberg.net/blog/server-build.html][build guide here]]), reducing the
19complexity of my environment.
20
21Because of the single-server setup, maintenance is down 75% (from four
22servers to one). Yes, clusters and hypervisors and hybrid cloud solutions are
23shiny and fancy and popular, but I just don't care for it. Instead, I have a
24single metal box I can pick up with my hands sitting in my basement.
25
26I /do/ have one more "server": a Raspberry Pi 4, but it uses Home Assistant OS,
27updates itself, and requires literally *zero* maintenance. Is that really a
28server? I guess, by technical definition. But it certainly doesn't feel like it;
29it feels like I've turned a potential server device into a self-sustaining IoT
30device instead.
31
32** Network
33Aside from the server itself, I have a mini rack of UniFi gear (server is in the
34same rack). A UniFi Dream Machine Pro, a switch, and a couple of access points
35(APs) constitute my personal data center sitting in my basement.
36
37Again, it really just maintains itself. UniFi supports automatic and scheduled
38updates, allowing you to disconnect from any manual maintenance of the hardware.
39UniFi truly is a "set it and forget it" platform.
40
41* Software
42
43There's a single crontab line on my server, which runs all updates for my Docker
44services on a weekly basis.
45
46#+begin_src
470 0 * * 0 docker-update
48#+end_src
49
50I do run a few crontab schedules via the =root= user as well, to account for
51permission issues. These jobs are really just for backups, to be honest. I've
52never required a backup, but it's good to be safe.
53
54#+begin_src
55# Generate a daily system report
560 8 * * * /home/cmc/daily_sys_report.sh
57
58# Backup
59SHELL=/bin/bash
60PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
61
62## App-aware database dumps
6345 1 * * * mkdir -p /tank/cloud/server/backups/immich && sudo docker exec -t immich_postgres pg_dumpall -U postgres > /tank/cloud/server/backups/immich/immich-postgres-$(date +\%F).sql
6450 1 * * * mkdir -p /tank/cloud/server/backups/piped && sudo docker exec -t piped-postgres pg_dumpall -U piped > /tank/cloud/server/backups/piped/piped-postgres-$(date +\%F).sql
65
66## Backup files to ZFS pool
670 2 * * * rsync -aHAX --delete /var/lib/plexmediaserver/ /tank/cloud/plexmediaserver/
685 2 * * * rsync -aHAX --delete /var/www/ /tank/cloud/server/web_server/
6910 2 * * * rsync -aHAX --delete /etc/nginx/ /tank/cloud/server/nginx/
7015 2 * * * rsync -aHAX --delete --exclude='**/postgres/' --exclude='**/postgresql/' --exclude='**/mysql/' --exclude='**/mariadb/' --exclude='**/redis/' --exclude='**/valkey/' --exclude='**/database/' --exclude='**/cache/' --exclude='**/tmp/' --exclude='**/logs/' /home/cmc/docker/ /tank/cloud/server/docker/
7120 2 * * * rsync -aHAX --delete /home/cmc/.ssh/ /tank/cloud/server/ssh/
72#+end_src
73
74Aside from this, the only other required updates are running =apt update= and
75potentially restarting. This requires about 60 seconds of time whenever I want
76to do it.
77
78#+begin_src sh
79sudo apt update && sudo apt upgrade -y && sudo apt autoremove -y
80#+end_src
81
82* The Outcome
83
84So, what's the end result? I've approximated it somewhere around /15 minutes of
85maintenance per month/, barring an emergency.
86
87If that's normal to you, congrats - you've peaked in life. However, that's
88*absolutely absurd* to me. I used to spend days on end building, maintaining, and
89debugging various aspects of my servers, databases, apps, etc.
90
91You know what's even crazier? If I don't have 15 minutes in a month to =ssh= into
92my server and update things, it literally does not affect anything. I could
93probably go 6 months (maybe more?) without touching it and it wouldn't break.
94
95/(This is not a challenge, please don't break my server.)/
96
97What a great situation to be in - especially for someone who's become as busy in
98their career as I have. I feel like I've struck a fantastic balance between
99privacy, security, and convenience.