Личный flake-репозиторий для управления NixOS-конфигурациями нескольких хостов и Home Manager-профилями пользователей.
- Один
flake.nixс двумя каналамиnixpkgs(stableиunstable) и двумя входами Home Manager. - Набор хостов в
hosts.nix. - Общие системные модули в
system/modules. - Хост-специфичные модули в
system/hosts/<hostname>. - Home Manager-конфигурация в
home. - Кастомные пакеты и overlay в
custom-packagesиoverlays/nixpkgs.
Сейчас определены:
thinkbook(x86_64-linux,nixpkgs-unstable)mini-server(x86_64-linux,nixpkgs-stable, включен impermanence)
Список и базовые параметры хостов находятся в hosts.nix.
.
├── flake.nix
├── hosts.nix
├── libx/ # генерация nixosConfigurations
├── system/
│ ├── default.nix # подключение system + host + home-manager
│ ├── modules/ # общие системные модули
│ └── hosts/<host>/ # конкретный хост
├── home/
│ ├── default.nix # интеграция home-manager в NixOS
│ ├── modules/ # общие home-модули
│ └── users/<user>/ # пользовательские настройки
├── overlays/nixpkgs/ # overlay для pkgs
└── custom-packages/ # локальные пакеты (например adb-wifi)
- Клонируй репозиторий и перейди в него:
git clone <your-repo-url> nixos-configuration
cd nixos-configuration- Применяй конфигурацию для текущего хоста:
sudo nixos-rebuild switch --flake .#thinkbook
# или
sudo nixos-rebuild switch --flake .#mini-serverПроверка сборки без применения:
sudo nixos-rebuild test --flake .#thinkbookСделать конфигурацию следующей загрузкой (без немедленного переключения):
sudo nixos-rebuild boot --flake .#thinkbookОбновить входы flake:
nix flake updateПоказать доступные outputs:
nix flake show- Добавь хост в
hosts.nix. - Создай
system/hosts/<new-host>/default.nix. - Создай
system/hosts/<new-host>/modules/с нужными модулями. - Примени:
sudo nixos-rebuild switch --flake .#<new-host>- Home Manager подключается как часть NixOS-конфигурации через
home/default.nix. - Канал Home Manager выбирается автоматически на основе
nixpkgsChannelхоста. - В репозитории есть локальный пакет
adb-wifiи systemd-сервисadb-wifid.