NixOS 配置项目教程

随笔1周前发布 雷子的书
24 0 0

NixOS 配置项目教程

nixos-configsMy NixOS and nix-darwin configs项目地址:https://gitcode.com/gh_mirrors/ni/nixos-configs

1. 项目的目录结构及介绍




nixos-configs/


├── configurations/


│   ├── desktop.nix


│   ├── laptop.nix


│   └── server.nix


├── modules/


│   ├── desktop/


│   │   ├── default.nix


│   │   └── gnome.nix


│   ├── server/


│   │   ├── default.nix


│   │   └── nginx.nix


│   └── shared/


│       ├── default.nix


│       └── common.nix


├── overlays/


│   ├── custom-packages.nix


│   └── default.nix


├── secrets/


│   ├── ssh-keys/


│   └── passwords.nix


├── flake.nix


└── README.md

configurations/: 包含不同设备的配置文件,如桌面、笔记本和服务器。modules/: 包含各种模块配置,如桌面环境、服务器服务和共享配置。overlays/: 包含自定义包的覆盖层。secrets/: 包含敏感信息,如SSH密钥和密码。flake.nix: 项目的Nix Flakes配置文件。README.md: 项目的说明文档。

2. 项目的启动文件介绍

flake.nix: 这是项目的启动文件,定义了项目的依赖、输入和输出。它使用Nix Flakes来管理依赖和构建。




{


  description = "NixOS configurations";


 


  inputs = {


    nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";


    home-manager.url = "github:nix-community/home-manager";


  };


 


  outputs = { self, nixpkgs, home-manager }: {


    nixosConfigurations = {


      desktop = nixpkgs.lib.nixosSystem {


        system = "x86_64-linux";


        modules = [


          ./configurations/desktop.nix


          home-manager.nixosModules.home-manager


          {


            home-manager.useGlobalPkgs = true;


            home-manager.useUserPackages = true;


          }


        ];


      };


      # 其他设备的配置


    };


  };


}

3. 项目的配置文件介绍

configurations/desktop.nix: 桌面设备的配置文件,包含系统和服务配置。




{ config, pkgs, ... }:


 


{


  imports = [


    ../modules/desktop/default.nix


    ../modules/shared/common.nix


  ];


 


  environment.systemPackages = with pkgs; [


    vim


    git


    firefox


  ];


 


  services.xserver.enable = true;


  services.xserver.desktopManager.gnome.enable = true;


 


  # 其他配置


}

modules/desktop/default.nix: 桌面模块的默认配置文件,包含桌面环境的配置。




{ config, pkgs, ... }:


 


{


  environment.systemPackages = with pkgs; [


    gnome3.gnome-shell


    gnome3.gnome-terminal


  ];


 


  services.xserver.desktopManager.gnome.enable = true;


 


  # 其他配置


}

modules/shared/common.nix: 共享模块的配置文件,包含所有设备通用的配置。




{ config, pkgs, ... }:


 


{


  networking.hostName = "nixos";


  time.timeZone = "Europe/Berlin";


 


  users.users.username = {


    isNormalUser = true;


    extraGroups = [ "wheel" ];


    password = "password";


  };


 


  # 其他配置


}

以上是基于开源项目 https://github.com/reckenrode/nixos-configs.git 的教程,包含了项目的目录结构、启动文件和配置文件的介绍。希望对你有所帮助!

nixos-configsMy NixOS and nix-darwin configs项目地址:https://gitcode.com/gh_mirrors/ni/nixos-configs

© 版权声明

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...