Этот репозиторий содержит мою личную конфигурацию NixOS, управляемую с помощью Nix Flakes. Он предназначен для декларативного и воспроизводимого способа управления моими системами.
- Декларативность: Вся конфигурация системы определена в виде кода.
- Воспроизводимость: Одна и та же конфигурация может быть развернута на нескольких машинах, обеспечивая согласованность.
- Управление с помощью Flakes: Проект использует Nix Flakes для управления зависимостями и улучшения воспроизводимости.
- Home Manager: Пользовательские конфигурации (дотфайлы, пакеты) управляются с помощью Home Manager.
- Stylix: Темы и стили управляются с помощью Stylix.
Репозиторий организован следующим образом:
.
├── flake.nix # Основная точка входа для Nix Flake
├── home-manager/ # Конфигурация Home Manager для пользовательских настроек
├── hosts/ # Конфигурации для конкретных хостов
├── nixos/ # Общесистемные модули NixOS
├── wallpapers/ # Обои для рабочего стола
└── LICENSE # Файл лицензии
flake.nix
: Определяет входы, выходы и общую структуру flake.home-manager/
: Содержит конфигурацию Home Manager для пользователяadmsys
. Здесь настраиваются дотфайлы, пользовательские пакеты и службы.hosts/
: Каждый подкаталог соответствует определенной машине. Он содержитconfiguration.nix
для этого хоста.nixos/
: Содержит переиспользуемые модули NixOS, которые можно импортировать в различные конфигурации хостов.wallpapers/
: Хранит обои, используемые для рабочего стола.
Эта конфигурация управляет следующими хостами:
Huawei
srv-home
x-disk
В репозитории также присутствуют конфигурации для 330-15ARR
и slim3
, но они на данный момент не управляются через flake.nix
.
Чтобы развернуть эту конфигурацию на новой машине с NixOS, выполните следующие шаги:
-
Включите Flakes: Убедитесь, что в вашей системе включены Nix Flakes. Это можно сделать, добавив
experimental-features = nix-command flakes
в ваш файл/etc/nix/nix.conf
. -
Клонируйте репозиторий:
git clone https://github.com/alphaserver777/GitOps.git /home/admsys/
- Соберите систему:
cd /etc/nixos
sudo nixos-rebuild switch --flake .#$(hostname)
```
Замените `<hostname>` на имя хоста, на который вы разворачиваете конфигурацию (например, `Huawei`).
## Кастомизация
### Добавление нового хоста
1. Создайте новый каталог в `hosts/` с именем вашего нового хоста.
2. Создайте файл `configuration.nix` внутри нового каталога. Вы можете использовать одну из существующих конфигураций хоста в качестве шаблона.
3. Добавьте новый хост в список `hosts` в файле `flake.nix`.
### Добавление нового модуля
1. Создайте новый `.nix` файл в каталоге `nixos/` или `home-manager/modules/`.
2. Импортируйте новый модуль в соответствующий файл `configuration.nix` или `home.nix`.
## Лицензия
Этот проект лицензирован в соответствии с условиями, указанными в файле `LICENSE`.