nanuqsaurus/docs/adopt.md
2026-02-04 21:01:03 +02:00

2.2 KiB
Raw Blame History

Adopt Nanuqsaurus on an existing NixOS install (no repartitioning)

This repo intentionally does not ship a “one size fits all” nixosConfiguration for installed systems. Disk layouts, filesystems, initrd modules, and bootloader details are machine-specific and live in your local hardware-configuration.nix.

The recommended workflow is to create a small local wrapper flake that:

  • keeps your machines hardware-configuration.nix as the source of truth for mounts/boot,
  • imports nanuqsaurus as a feature/profile module from its URL,
  • keeps your personal changes in your own repo (or /etc/nixos).

1) Create a wrapper flake in /etc/nixos

On the target machine:

  1. Ensure you have a hardware-configuration.nix (generated by nixos-generate-config).
  2. Create /etc/nixos/flake.nix like this (adjust hostName and stateVersion):
{
  description = "Local wrapper for the nanuqsaurus profile";

  inputs = {
    nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.11";
    nanuqsaurus.url = "git+https://codeberg.org/randogoth/nanuqsaurus.git";
    nanuqsaurus.inputs.nixpkgs.follows = "nixpkgs";
  };

  outputs =
    inputs@{ self, nixpkgs, nanuqsaurus, ... }:
    {
      nixosConfigurations.my-host = nixpkgs.lib.nixosSystem {
        system = "x86_64-linux";
        # Only needed if your local modules require access to flake inputs.
        specialArgs = { inherit inputs; };
        modules = [
          ./hardware-configuration.nix
          nanuqsaurus.nixosModules.nanuqsaurus

          # Your local overrides/customizations:
          ({ ... }: {
            # Optional: change the default admin username ("admin")
            nanuqsaurus.admin.username = "admin";
            networking.hostName = "my-host";
            system.stateVersion = "25.11";
          })
        ];
      };
    };
}

2) Switch to it

sudo nixos-rebuild switch --flake /etc/nixos#my-host

Updating later

  • If you keep nanuqsaurus.url pointing at the repo, you can update with:

    • nix flake update (in /etc/nixos), then
    • sudo nixos-rebuild switch --flake /etc/nixos#my-host
  • Keep all your machine-specific changes in the wrapper flake (additional modules, packages, services, etc.).