Loading page...Загружаем страницу...正在加载页面...
AtlasRepo

Omarchy: A Pragmatic Review of Nix-Driven Desktop Automation for Self-Hosted Workflows

Description and use

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.

Problem

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.

Outcome

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.

Workflow

  • 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).

Evidence

Omarchy wraps NixOS/Home Manager patterns into an opinionated starter kit.

Source

Our docker-compose.yml spun up cleanly: ...

Source

Traefik's ACME certificate storage expects writable /etc/traefik/acme.json. Nix's /nix/store immutability requires remapping to /var/lib/traefik.

Source

When benchmarking Open-WebUI's streaming responses through the B-Lost relay at https://b-lost.com/v1, we observed consistent 340ms TTFT.

Source

  • Record date: 2026-10-20T14:41:04.268Z