1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
diff --git a/post/rebuilding-the-lan.md b/post/rebuilding-the-lan.md
new file mode 100644
index 0000000..3e6b5d5
--- /dev/null
+++ b/post/rebuilding-the-lan.md
@@ -0,0 +1,54 @@
+---
+title: "That time I decided to redo the whole homelab"
+date: 2025-08-25T09:10:11
+draft: true
+tags: [
+ "tech",
+ "devops",
+]
+---
+
+This is a story about victory and defeat. It's a story about a do-it-yourself
+stalwart who insists on understanding every little thing about his computer
+deciding to lean into Claude, and promptly really regretting that decision.[^1]
+It's about the simplicity of `systemd`, the complexity of Kubernetes, and the
+miscibility of those concepts when you get into Quadlets. And finally, it's a
+story about me getting more into devops than I have in so many years I had to
+bust out a completely new tag on my blog.
+
+But more than any of that, it's a story about just diving in and making
+mistakes.
+
+I'm very much not burned out with coding. For the past nearly a year, I've been
+back heads-first into the bytes, and I've been loving it. It's not all been
+roses---I've dealt with the AI onslaught same as anyone else, except that I also
+went about three years without writing any code other than small projects for
+fun, so that was great---but my day-to-day has been way better.
+
+What I was burned out on (until this past week) was my homelab. Somewhere in the
+middle of the pandemic, when the world was falling apart instead of merely the
+United States, I bought a Synology NAS, and filled it to what for me was "the
+brim" at about 6 TB. And that much was fine, as far as it went, but I didn't buy
+any server to go with it; instead, I just slavishly chucked anything I might be
+interested in at
+
+At about this point, I gave up, and simply created a `.volume`, figuring I'd
+sort things out later. Which I did, gradually: first, I verified that I hadn't
+actually hosed any of the relevant permissions on the actual account. Then, I
+verified that setting `PUID` and `PGID` to `0` would do what I wanted in terms
+of actual local permissions. Finally, I verified that things did not, in fact,
+work.
+
+My next clue came at 16:15, when the clock stopped, and the following clue an
+hour later at 16:15 when I discovered the actual meaning of a trailing `:z` on a
+volume sharing description! See, with Docker, at some point, I'd begun just
+slavishly slapping `:z` on volumes. Monkey see, monkey do, after all. But when I
+was converting everything to Quadlets, I dropped it, because "that must be a
+Docker thing." But, no, turns out it's an _SELinux_ thing. Specifically, for
+reasons I'll have to learn about later, adding `:z` tells SELinux somehow that I
+meant to do the thing I'm very obviously deliberately doing. Yay!
+
+[^1]: For those from Lobsters or other similarly minded sites, please don't tag
+ this as `vibecoding`, because that's a minor point in this piece, and also,
+ while I did not necessarily regret that decision, I did both rue and lament
+ it.
|