Omarchy: A Pragmatic Review of Nix-Driven Desktop Automation for Self-Hosted Workflows
说明与用途
Omarchy 使家庭实验室实现了大部分声明式配置,简化了恢复流程,但需要手动调整 Traefik 存储、Neovim LSP 冲突和 DNS 隔离。整体实现了 95% 的声明式化,降低了经验丰富的 Nix 用户的认知负担,但新手需要约 40 小时的学习曲线。
问题
Integrating a Nix-based declarative desktop configuration (Omarchy) into a self-hosted homelab with Open-WebUI, Tailscale, and Traefik while maintaining existing tooling and workflows.
结果
Omarchy enabled a largely declarative homelab with reproducible builds and simplified recovery, but required manual adjustments for Traefik storage, Neovim LSP conflicts, and DNS isolation. The stack achieved 95% declarativity, reducing cognitive overhead for experienced Nix users while exposing a 40‑hour learning curve for newcomers.
工作流
- 1. Add Omarchy flake to git repo and enable virtualisation.docker in configuration.
- 2. Deploy docker-compose.yml for Open-WebUI and Traefik, ensuring volumes and networks are correctly defined.
- 3. Persist Tailscale routes by enabling systemd service wrappers in Omarchy.
- 4. Resolve Traefik ACME storage issue by creating /var/lib/traefik via tmpfiles rule.
- 5. Disable Omarchy’s Neovim LSP module to avoid conflict with coc.nvim.
- 6. Add firewall trustedInterfaces for tailscale0 to allow DNS resolution for external LLM relay.
- 7. Test LLM streaming latency and verify 340 ms TTFT.
- 8. Use git clone + nixos-rebuild for disaster recovery.
- 9. Document remaining imperative components (VPN clients, legacy Java apps).
证据
Omarchy wraps NixOS/Home Manager patterns into an opinionated starter kit.
Our docker-compose.yml spun up cleanly: ...
Traefik's ACME certificate storage expects writable /etc/traefik/acme.json. Nix's /nix/store immutability requires remapping to /var/lib/traefik.
When benchmarking Open-WebUI's streaming responses through the B-Lost relay at https://b-lost.com/v1, we observed consistent 340ms TTFT.
- 记录日期: 2026-10-20T14:41:04.268Z