vuls: init at 0.27.0
[NixPkgs.git] / nixos / doc / manual / development / importing-modules.section.md
blob65d78959b8e08439e890a63a19a5698b0cde4055
1 # Importing Modules {#sec-importing-modules}
3 Sometimes NixOS modules need to be used in configuration but exist
4 outside of Nixpkgs. These modules can be imported:
6 ```nix
7 { config, lib, pkgs, ... }:
10   imports =
11     [ # Use a locally-available module definition in
12       # ./example-module/default.nix
13         ./example-module
14     ];
16   services.exampleModule.enable = true;
18 ```
20 The environment variable `NIXOS_EXTRA_MODULE_PATH` is an absolute path
21 to a NixOS module that is included alongside the Nixpkgs NixOS modules.
22 Like any NixOS module, this module can import additional modules:
24 ```nix
25 # ./module-list/default.nix
27   ./example-module1
28   ./example-module2
30 ```
32 ```nix
33 # ./extra-module/default.nix
34 { imports = import ./module-list.nix; }
35 ```
37 ```nix
38 # NIXOS_EXTRA_MODULE_PATH=/absolute/path/to/extra-module
39 { config, lib, pkgs, ... }:
42   # No `imports` needed
44   services.exampleModule1.enable = true;
46 ```