Files
nix/README.md
2024-12-20 10:00:01 +00:00

2.9 KiB

nix

NixOS dotfiles and configuration for various hosts and users.

Structure

  • flake.lock and flake.nix: Core Nix flake files defining the repository's dependencies and entry points.

  • hosts/: All host-specific configurations.

    • common/: Shared configuration definitions.
      • system/: System-level configurations and scripts.
        • configs/: System configurations applicable to all hosts.
        • scripts/: Utility scripts, such as nix-cleanup.
        • shells/: Nix dev shells.
      • user/: Per-user options.
        • configs/: User configurations, split into:
          • console/: Console-related settings.
          • gui/: GUI-related settings.
        • scripts/: User-specific scripts and utilities.
    • <name>/: Individual host configurations.
      • scripts/: Host-specific scripts.
      • secrets/: Host-specific secrets, such as machineId.
      • users/: User-specific settings for the host.
      • format.nix: Disk layout definition using disko.
  • secrets/<namespace>/: Global secrets for individual namespaces that apply across all hosts.

  • lib/: Nix library function definitions and utilities.

    • scripts/: Utility scripts for managing the repository.
      • add-host.sh: Instantiate the keys for a new host configuration.
      • remove-host.sh: Remove references to a host.
      • update-keys.sh: Update the encryption keys in all relevant files using sops.yaml configurations.
      • update.sh: Update flake and all git submodules.
      • install.sh: Install or repair a selected NixOS host.
  • submodules/: Flake forks used in the repository, such as nixpkgs and home-manager.

Any options.nix files create custom option definitions when present.

Hosts

Below is a table of all hosts, with links to their respective README files, which may provide further details and/or post-installation checklists.

Host README
installer hosts/installer/README.md
eirene hosts/eirene/README.md
elara hosts/elara/README.md