自己造成的牢笼。
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 的复杂性。许多评论者都认同陷入工具泥潭的感觉——CI/CD 管道、容器化、大量的监控——而这些项目实际上并不需要这些。 核心问题是将为管理数千台服务器而设计的解决方案应用于单人爱好。一些用户通过简化找到了自由,选择手动配置,并在处理少量服务时避免“牲畜 vs. 宠物”的心态。另一些人则强调了无休止地调整配置而不是真正*构建*东西的陷阱。 解决方案包括使用轻量级自动化工具(如 Bundlewrap),采用更简单的操作系统(如 Alpine Linux),甚至故意限制自定义(如使用 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