nanuqsaurus/docs/adopt.md

64 lines
2.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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`):
```nix
{
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";
};
};
outputs = inputs@{ nixpkgs, nanuqsaurus, ... }: {
nixosConfigurations.my-host = 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
nanuqsaurus.nixosModules.nanuqsaurus
{
# Optional: change the default admin username ("admin")
nanuqsaurus.admin.username = "admin";
networking.hostName = "my-host";
system.stateVersion = "25.11";
}
];
};
};
}
```
## 2) Switch to it
```bash
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.).