No description
Find a file
2026-04-10 17:04:39 +02:00
bin git tls cert 2026-01-31 13:09:05 +01:00
devshells maintenance 2025-11-01 11:58:11 +01:00
dotfiles/emacs emacs packages using nix 2025-11-23 13:30:43 +01:00
home major refactor 2025-12-23 23:05:32 +01:00
host syncthing changes 2026-04-04 17:39:41 +02:00
mod remove faulty type from home option 2026-04-10 17:04:39 +02:00
packages add supernote-tool 2026-01-08 12:45:46 +01:00
pgp update pgp id 2026-01-30 00:05:25 +01:00
pki git tls cert 2026-01-31 13:09:05 +01:00
secrets roam: add forgejo instance 2026-03-19 11:27:45 +01:00
var Comments & Readme 2026-04-04 15:19:21 +02:00
.gitignore vm + cleanup 2026-02-06 20:06:09 +01:00
flake.lock update flake inputs and fw kernel 6.19 2026-04-03 01:08:53 +02:00
flake.nix further improvements 2026-04-04 15:08:45 +02:00
lib.nix improve syncthing config 2025-12-30 14:49:21 +01:00
LICENSE qbittorrent wip 2026-03-23 00:04:05 +01:00
README.md Comments & Readme 2026-04-04 15:19:21 +02:00
secrets.nix simplify var 2026-04-04 14:47:10 +02:00

Nix Configurations

Repository structure:

  • host/
    One subdirectory per NixOS host, each containing its host-specific configuration.

  • mod/
    NixOS modules.

    • mod/common/: Modules enabled by default on all hosts.
    • mod/desktop/: Modules enabled on desktop hosts (i.e. hosts with hd.desktop.enable = true).
  • home/
    Home Manager modules. Home Manager is integrated into the system configuration via the home option defined in mod/desktop/default.nix.

  • bin/
    Helper scripts for generating parts of the configuration.

  • dotfiles/
    Raw configuration files deployed using Home Manager.

  • devshells/
    Nix development shells.

  • pki/
    Certificates used by the configuration.

  • secrets/
    Age-encrypted secrets managed and deployed via agenix.

  • var/ Shared data used across the configuration. hosts.nix is the single source of truth for per-host data (SSH keys, WireGuard config). Adding a new host means adding an entry there and running bin/gen-syncthing-cert.

Network topology

WireGuard overlay network (onet, 10.10.11.0/24). Roam is the hub and the only publicly reachable node; desktops peer with roam only. Roam also runs a Mullvad WireGuard tunnel used as an egress for the torrent container configured in table 1000.

TODO

  • WireGuard key: Manage /var/secrets/wg.key via agenix.
  • Forgejo: Provision the hd user (with email, admin flag) and SSH keys via a systemd service.
  • Firefox sync server (host/roam/firefox-sync.nix): Containerize.
  • systemd-resolved (mod/desktop/network.nix): Enable DoH.
  • Remote builder (mod/build-machines.nix): declarative SSH jump server.