diff --git a/docs/introduction/index.md b/docs/introduction/index.md index 78e58a8..787dcd3 100644 --- a/docs/introduction/index.md +++ b/docs/introduction/index.md @@ -28,4 +28,19 @@ To my delight, NixOS has exceeded my expectations. The most astonishing aspect i The rollback capability and reproducibility of NixOS has instilled a great deal of confidence in me—I no longer fear breaking the system. I've even ventured into experimenting with new things on NixOS, such as the hyprland compositor. Previously, on EndeavourOS, I wouldn't have dared to tinker with such novel compositors, as any system mishaps would have entailed significant manual troubleshooting using various workarounds. -This is why I chose NixOS. +As I get more and more involved with NixOS and Nix, I find it also very suitable for synchronously managing the configuration of multiple hosts. +Currently my personal [ryan4yin/nix-config] (https://github.com/ryan4yin/nix-config) synchronously manages the configuration of many hosts: + +- Desktop computers + - 1 Macbook Pro 2020 (Intel amd64). + - 1 Macbook Pro 2022 (M2 aarch64). + - 1 NixOS desktop PC (amd64). +- Servers + - 3 NixOS virtual machines (amd64). + - Several development boards for aarch64 and riscv64. + +The development environment of three desktop computers is managed by Home Manager, +the main configuration is completely shared, and the configuration modified on any host can be seamlessly synchronized to other hosts through Git. + +Nix almost completely shielded me from the differences between OS and architecture at the bottom of the three machines, and the experience was very slippery! + diff --git a/docs/nixos-with-flakes/get-started-with-nixos.md b/docs/nixos-with-flakes/get-started-with-nixos.md index c24b27b..53a7783 100644 --- a/docs/nixos-with-flakes/get-started-with-nixos.md +++ b/docs/nixos-with-flakes/get-started-with-nixos.md @@ -2,7 +2,7 @@ Now that we have learned the basics of the Nix language, we can start using it to configure our NixOS system. The default configuration file for NixOS is located at `/etc/nixos/configuration.nix`. This file contains all the declarative configuration for the system, including settings for the time zone, language, keyboard layout, network, users, file system, and boot options. -To modify the system state in a reproducible manner (which is highly recommended), we need to manually edit the `/etc/nixos/configuration.nix` file and then execute `sudo nixos-rebuild switch` to apply the modified configuration. This command generates a new system environment based on the modified configuration file, sets the new environment as the default one, and preserves the previous environment in the boot options of grub/systemd-boot. This ensures that we can always roll back to the old environment if the new one fails to start. +To modify the system state in a reproducible manner (which is highly recommended), we need to manually edit the `/etc/nixos/configuration.nix` file and then execute `sudo nixos-rebuild switch` to apply the modified configuration. This command generates a new system environment based on the modified configuration file, sets the new environment as the default one, and preserves the previous environment in the boot options of grub/systemd-boot. This ensures that we can always roll back to the old environment even if the new one fails to start. While `/etc/nixos/configuration.nix` is the classic method for configuring NixOS, it relies on data sources configured by `nix-channel` and lacks a version-locking mechanism, making it challenging to ensure the reproducibility of the system. A better approach is to use Flakes, which provides reproducibility and facilitates configuration management. diff --git a/docs/zh/introduction/index.md b/docs/zh/introduction/index.md index d23881b..497804d 100644 --- a/docs/zh/introduction/index.md +++ b/docs/zh/introduction/index.md @@ -33,4 +33,17 @@ Nix 是一个声明式的软件包管理器,用户需要通过某些配置声 NixOS 的回滚能力与可复现能力给了我非常大的底气,我现在再也不用怕把系统搞挂了(挂了直接回滚就恢复了),于是我又在 NixOS 尝试了许多新鲜玩意儿! 在以前 EndeavourOS 上我肯定是不太敢这么玩的,因为万一要是把系统玩出问题了,就必须手动修复系统状态,那可是相当麻烦。 -这就是我选择 NixOS 的原因。 +随着我对 NixOS 与 Nix 的使用越来越深入,我发现它还非常适合用于同步管理多台主机的配置。 +目前我的个人配置 [ryan4yin/nix-config](https://github.com/ryan4yin/nix-config) 同步管理了许多主机的配置: + +- 桌面电脑 + - 一台 Macbook Pro 2020 (Intel amd64) + - 一台 Macbook Pro 2022 (M2 aarch64) + - 一台 NixOS 桌面 PC (amd64) +- 服务器 + - 三台 NixOS 虚拟机(amd64) + - 若干块 aarch64 跟 riscv64 的开发板 + +其中三台桌面电脑的开发环境都通过 Home Manager 管理,主要配置完全共用,在任意一台主机上修改的配置,可以通过 Git 无缝同步到其他主机上。NixOS 几乎完全帮我屏蔽了三台机器底层的 OS 与芯片架构差异,体验非常丝滑! + +