自己造成的牢笼。
A prison of my own making

原始链接: https://jsteuernagel.de/posts/a-prison-of-my-own-making/

作者意识到他们的自建实验室,曾经是一种放松的爱好,却因为自己设定的过于复杂的标准而成为了压力的来源。他们受到基础设施即代码、不可变性、自动化(Kubernetes、GitOps、CI/CD)等理念的驱动,创建了一个系统,甚至简单的任务——比如共享文件或安装软件——也变得非常复杂。 这甚至延伸到了他们的日常使用系统(Fedora Silverblue),进一步限制了快速实验。作者意识到这种“纯粹性”并没有带来乐趣,反而阻碍了享受。他们现在正在积极简化配置,除非有益,否则拒绝不可变系统,优先考虑易用性而非严格遵守最佳实践,并放弃复杂的流水线,转而使用更简单的解决方案,如shell脚本。核心要点是:对于个人项目,优先考虑个人享受和实用性,而不是僵化、理论上“更好”的方法。

## 家庭实验室中的“自我制造的牢笼” 一则 Hacker News 的讨论集中在个人项目和家庭实验室过度工程化的倾向,这反映了大型企业 IT 的复杂性。许多评论者对原作者的观点表示认同,他们发现自己陷入了不必要的工具和配置的循环。 核心问题是将为大规模设计的解决方案(“像牲畜一样管理服务器,而非宠物”)应用于小型个人项目。用户通过简化找到了自由——拥抱手动配置,减少自动化,并接受“足够好”而不是完美。 几位用户强调了当专注于*构建*而不是*工具*时,乐趣回归。 提到的解决方案包括使用轻量级系统如 Alpine Linux,将 Bundlewrap 作为 Ansible 的替代方案的简洁性,甚至像 Silverblue 这样的系统所施加的约束,防止对系统级别的调整。 最终,讨论强调爱好应该是有趣的,过度的复杂性会导致拖延症和对实际项目目标的注意力丧失。
相关文章

原文

2025-06-30 - Killing the joy of homelabbing with my own expectation

Yesterday I realized something: I've built myself into a prison and didn't realize it.

Let me explain:

Working on tech projects has always been something relaxing for me. If I was stressed about something, I could always turn to my homelab as a source of calm and it would usually provide exactly the balance that I needed to keep going.

But recently I found this not to be the case anymore. I would turn to a project and just stare at the screen. I was thinking of all of the things I would need to do to set something new up and I felt overwhelmed.

I was overwhelmed by all of the things that I convinced myself to be necessary.

  • Everything needs to be declarative
  • Machines as cattle, not pets
  • Immutable systems and containers
  • GitOps all the things
  • Automated deployment
  • CI/CD pipeline
  • Security considerations

This lead me to my current setup, where it feels impossible to just do something.

Want to try out a new program? Better first figure out how to run it in a container and make it run on Kubernetes. And manifests need to be committed to Git.

Quickly spinning up a simple file share to give a friend a download link? Impossible. I don't have a single machine where I could just touch an nginx config and point it at a folder.

Install something on the home server? Change the Nix config. Oh, I didn't update it in a while, let's also do that. Aaaand the rebuild is broken or there is yet another bug in nixpkgs that only shows itself after a few days.

Now today I realized that this goes even further: I use Fedora Silverblue on my laptop. That's an immutable distro and what has it caused? I can't just install a program anymore. I need to figure out whether it is available as a Flatpak, run it in distrobox (which I hate) or layer it and reboot.

None of these things are inherently bad. All of these practices have their place. Many make working on something with multiple people way easier. But I am just myself and just documenting what I did in markdown files works incredibly well for me.

Spelling it out now, it feels like I should have realized way earlier what was killing my joy. But now I did, so I'll be undoing a lot of this mess.

So here are a rough set of rules I have decided on for myself, so I hopefully don't fall into the same trap again:

  • Stay away from immutable distros
  • Only use deployment tools if they make things easier (Like setting up multiple machines at once)
    • And only use them for the parts that they actually make easier. I don't need purity here.
  • Ditch CI/CD pipelines (I want to go back to the simplicity of a shell script in a cronjob)
  • Stuff gets installed in the easiest way possible, preferable a container on a single host with Containerfiles neatly organized in a directory, otherwise throw it into a VM
  • Not everything needs to be fully declarative. Just doing a backup of state is fine!
  • Purity is a sin. Accept compromise if it makes something work better for me.
联系我们 contact @ memedata.com