attofort, attoboxのnixos dotfiles
- Nix 89.2%
- Shell 10.8%
| containers/incus | ||
| docs | ||
| hosts | ||
| lib | ||
| modules | ||
| secrets | ||
| .gitignore | ||
| .sops.yaml | ||
| flake.lock | ||
| flake.nix | ||
| README.md | ||
server-dotfiles
attofort と attobox のヘッドレス NixOS サーバー構成です。アプリケーションとサービスは feature 単位で管理し、各 feature が導入先ホストを宣言します。
構成
| パス | 役割 |
|---|---|
flake.nix |
ホスト、feature、Incus image の出力を組み立てます。 |
hosts/<host>/ |
ハードウェア、物理ネットワーク、マウントなど実機固有設定を置きます。 |
modules/features/ |
アプリケーションとサービスごとの設定、導入先ホスト、依存関係を置きます。 |
modules/nixos/ |
全サーバーホスト共通の最小基盤を置きます。 |
containers/incus/ |
Incus コンテナの bootstrap image を定義します。 |
docs/ |
設計、サービス、初期準備、運用手順を説明します。 |
初期設定
実機で hardware 設定を生成し、対象ホストのファイルへ置き換えます。
sudo nixos-generate-config --show-hardware-config \
> hosts/<host>/hardware-configuration.nix
git add hosts/<host>/hardware-configuration.nix
<host> は attofort または attobox です。秘密情報はリポジトリへ保存せず、初期準備に従って実機へ配置します。
評価してから build、switch の順で適用します。
nix eval --no-write-lock-file --raw \
.#nixosConfigurations.<host>.config.system.build.toplevel.drvPath
sudo nixos-rebuild build --flake .#<host>
sudo nixos-rebuild switch --flake .#<host>
詳しい設計と作業手順は docs/ を参照してください。