nanuqsaurus/docs/adopt.md
2026-02-05 08:18:06 +02:00

2.7 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";
      inputs.nixpkgs.follows = "nixpkgs";
    };
    nixos-hardware = {
      url = "github:NixOS/nixos-hardware";
      inputs.nixpkgs.follows = "nixpkgs";
    };
  };

  outputs = inputs@{ nixpkgs, nanuqsaurus, nixos-hardware, ... }: {
    nixosConfigurations.nanuqsaurus = nixpkgs.lib.nixosSystem {
      system = "x86_64-linux";
      # Optional: only needed if your local modules require access to flake inputs.
      specialArgs = { inherit inputs; };
      modules = [
        ./hardware-configuration.nix
        # Optional: pick the right hardware module for your machine.
        # Find your model at https://github.com/NixOS/nixos-hardware or use one of these generic profiles:
        #nixos-hardware.nixosModules.common-cpu-intel
        #nixos-hardware.nixosModules.common-cpu-amd
        #nixos-hardware.nixosModules.common-gpu-intel
        #nixos-hardware.nixosModules.common-gpu-amd
        #nixos-hardware.nixosModules.common-gpu-nvidia
        nanuqsaurus.nixosModules.nanuqsaurus
        {
          # Optional: change the default admin username ("admin")
          nanuqsaurus.admin.username = "admin";
          networking.hostName = "nanuqsaurus";
          system.stateVersion = "25.11";
        }
      ];
    };
  };
}

2) Switch to it

sudo nixos-rebuild switch --flake /etc/nixos#nanuqsaurus

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#nanuqsaurus
  • Keep all your machine-specific changes in the wrapper flake (additional modules, packages, services, etc.).