NixOS Options List
- Option List
- _module.args
- basement.enableAgenix
- basement.healthchecks.enable
- basement.healthchecks.exclude
- basement.healthchecks.providerFunctions
- basement.healthchecks.providers.healthchecks-io.enable
- basement.healthchecks.providers.healthchecks-io.services
- basement.healthchecks.providers.prometheus.address
- basement.healthchecks.providers.prometheus.enable
- basement.healthchecks.providers.prometheus.stateDir
- basement.healthchecks.services
- basement.netboot
- basement.netboot.enable
- basement.netboot.isRpi
- basement.netboot.uid
- basement.presets.common
- basement.presets.darwinvm
- basement.presets.server
- basement.services.docker.enable
- basement.services.gitlab-runner.commonFlags
- basement.services.gitlab-runner.commonTags
- basement.services.gitlab-runner.concurrentJobs
- basement.services.gitlab-runner.configs
- basement.services.gitlab-runner.configs.<name>.addNixRunner
- basement.services.gitlab-runner.configs.<name>.forwardDockerSocket
- basement.services.gitlab-runner.configs.<name>.registrationConfigFile
- basement.services.gitlab-runner.configs.<name>.tags
- basement.services.gitlab-runner.configs.<name>.useLocalCache
- basement.services.gitlab-runner.enable
- basement.services.gitlab-runner.namePrefix
- basement.services.k3s.clusterCIDR
- basement.services.k3s.clusterDNS
- basement.services.k3s.dns.nameservers
- basement.services.k3s.dns.searchPath
- basement.services.k3s.docker
- basement.services.k3s.enable
- basement.services.k3s.extraFlags
- basement.services.k3s.maxPods
- basement.services.k3s.nodeIp
- basement.services.k3s.role
- basement.services.k3s.serverAddr
- basement.services.k3s.serviceCIDR
- basement.services.netboot-host
- basement.services.netboot-host.configurations
- basement.services.netboot-host.enable
- basement.services.netboot-host.nfsRanges
- basement.services.ssh.enable
- basement.services.ssh.users
- basement.services.ssh.users.<name>.authorizedKeys
- basement.services.ssh.users.<name>.authorizedUsers
- basement.services.weblate.address
- basement.services.weblate.backup.enable
- basement.services.weblate.backup.startAt
- basement.services.weblate.backup.target
- basement.services.weblate.domain
- basement.services.weblate.enable
- basement.services.weblate.envFile
- basement.services.weblate.path
- basement.services.weblate.port
- secrets
Option List
_module.args
- Description
-
Additional arguments passed to each module in addition to ones like
lib
,config
, andpkgs
,modulesPath
.
This option is also available to all submodules. Submodules do not
inherit args from their parent module, nor do they provide args to their
parent module or sibling submodules. The sole exception to this is the
argument name
which is provided by parent modules to a submodule and
contains the attribute name the submodule is bound to, or a unique
generated name if it is not bound to an attribute.
Some arguments are already passed by default, of which the following cannot be changed with this option:
-
lib
: The nixpkgs library. -
config
: The results of all options after merging the values from all modules together. -
options
: The options declared in all modules. -
specialArgs
: ThespecialArgs
argument passed toevalModules
. -
All attributes of
specialArgs
Whereas option values can generally depend on other option values thanks to laziness, this does not apply to
imports
, which must be computed statically before anything else.For this reason, callers of the module system can provide
specialArgs
which are available during import resolution.For NixOS,
specialArgs
includesmodulesPath
, which allows you to import extra modules from the nixpkgs package tree without having to somehow make the module aware of the location of thenixpkgs
or NixOS directories.{ modulesPath, ... }: { imports = [ (modulesPath + "/profiles/minimal.nix") ]; }
For NixOS, the default value for this option includes at least this argument:
-
pkgs
: The nixpkgs package set according to thenixpkgs.pkgs
option.
basement.enableAgenix
- Description
-
decrypt encrypted secrets using agenix
basement.healthchecks.enable
- Description
-
Whether to enable heathchecks.io monitoring.
basement.healthchecks.exclude
- Description
-
Names of systemd units that should not be monitored (this is ownly used for the warning)
basement.healthchecks.providerFunctions
- Description
-
None
basement.healthchecks.providers.healthchecks-io.enable
- Description
-
Whether to enable healthchecks.io healthcheck provider.
basement.healthchecks.providers.healthchecks-io.services
- Description
-
Healthchecks.io IDs or ping URLs
basement.healthchecks.providers.prometheus.address
- Description
-
Address to serve the prometheus exporter on (go format)
basement.healthchecks.providers.prometheus.enable
- Description
-
Whether to enable prometheus healthcheck provider.
basement.healthchecks.providers.prometheus.stateDir
- Description
-
None
basement.healthchecks.services
- Description
-
Names of systemd units that should be monitored
basement.netboot
- Description
-
Configuration of a nix-basement netboot client.
basement.netboot.enable
- Description
-
Whether to enable Enables nix-basement netboot client configuration.
basement.netboot.isRpi
- Description
-
is this a raspberry pi?
basement.netboot.uid
- Description
-
On a UEFI/BIOS system, the MAC Address of the PXEing interface. On a Raspberry Pi, its Serial. To get a RPi’s Serial run
cat /proc/cpuinfo | grep Serial | tail -c 9
on it.
basement.presets.common
- Description
-
Whether to enable Default settings for any kind of system.
basement.presets.darwinvm
- Description
-
Preset for VMs booted by the linuxvm darwinModule
basement.presets.server
- Description
-
Whether to enable Default settings for servers.
basement.services.docker.enable
- Description
-
Whether to enable the docker container engine.
basement.services.gitlab-runner.commonFlags
- Description
-
Flags to add to all runners
basement.services.gitlab-runner.commonTags
- Description
-
Tags to add to all runners
basement.services.gitlab-runner.concurrentJobs
- Description
-
Maximum number of jobs to run concurrently
basement.services.gitlab-runner.configs
- Description
-
GitLab Runner regsitration configurations
basement.services.gitlab-runner.configs.<name>.addNixRunner
- Description
-
Add an additional runner that uses the nix daemon
basement.services.gitlab-runner.configs.<name>.forwardDockerSocket
- Description
-
Allow jobs to access the host’s docker daemon
basement.services.gitlab-runner.configs.<name>.registrationConfigFile
- Description
-
GitLab Runner registration configuration file
basement.services.gitlab-runner.configs.<name>.tags
- Description
-
GitLab Runner tags
basement.services.gitlab-runner.configs.<name>.useLocalCache
- Description
-
Use a local cache for the runner (disable this if you use S3 or some other remote cache)
basement.services.gitlab-runner.enable
- Description
-
Whether to enable GitLab runner.
basement.services.gitlab-runner.namePrefix
- Description
-
Prefix for the runner name
basement.services.k3s.clusterCIDR
- Description
-
IP range for pods in the cluster
basement.services.k3s.clusterDNS
- Description
-
IP of the CoreDNS service (must be within serviceCIDR)
basement.services.k3s.dns.nameservers
- Description
-
IPs of the upstream DNS server for CoreDNS
basement.services.k3s.dns.searchPath
- Description
-
Upstream DNS search path
basement.services.k3s.docker
- Description
-
Whether to use docker instead of containerd
basement.services.k3s.enable
- Description
-
Whether to enable customized k3s module.
basement.services.k3s.extraFlags
- Description
-
Additional flags to pass to k3s
basement.services.k3s.maxPods
- Description
-
Maximum number of pods that can be run on this node
basement.services.k3s.nodeIp
- Description
-
IP that this machine can be reached on by other nodes
basement.services.k3s.role
- Description
-
Role of this node. Either server or agent
basement.services.k3s.serverAddr
- Description
-
IP of the k3s server to connect to (agent only)
basement.services.k3s.serviceCIDR
- Description
-
IP range for services in the cluster
basement.services.netboot-host
- Description
-
This is the server component of the nix-basement netboot system.
To use it, your DHCP Server needs to have PXE configured to boot
-
undionly
for X86 BIOS systems -
snponly.efi
for X86-64 UEFI systems
of the tftp server running as part of this module.
The following dnsmasq(1)
configuration is known to work (with
192.168.3.1 as the netboot server)
dhcp-boot=undionly,192.168.3.1 dhcp-vendorclass=BIOS,PXEClient:Arch:00000 dhcp-vendorclass=UEFI32,PXEClient:Arch:00006 dhcp-vendorclass=UEFI,PXEClient:Arch:00007 dhcp-vendorclass=UEFI64,PXEClient:Arch:00009 dhcp-boot=net:UEFI,snponly.efi,192.168.3.1 dhcp-boot=net:UEFI64,snponly.efi,192.168.3.1 pxe-prompt="nix-basement netboot", 0 pxe-service=X86PC, "biosboot", undionly,192.168.3.1 pxe-service=X86PC, "biosboot", unionly,192.168.3.1 pxe-service=X86-64_EFI, "uefi boot", snponly.efi,192.168.3.1 pxe-service=X86-64_EFI, "uefi boot", snponly.efi,192.168.3.1 pxe-service=0,"other boot",192.168.3.1
The netboot server will do the following:
-
Build the nixos configurations in into it’s store
-
Create a directory with all configurations and supplementary ipxe configuration
-
Make this directory accessible via HTTP and TFTP (ipxe boots via HTTP)
-
Make the nix store accessible via NFS
Clients will boot via PXE, get their kernel/initramfs via HTTP (or TFTP on Raspberry Pis) and mount the NFS Store read only.
basement.services.netboot-host.configurations
- Description
-
All the nixosConfigurations that should be bootable all configurations have to have a
networking.hostName
and abasement.netboot.uid
basement.services.netboot-host.enable
- Description
-
Whether to enable Enables the nix-basement netboot server.
basement.services.netboot-host.nfsRanges
- Description
-
IP ranges the NFS Server should expose the nix-store on
basement.services.ssh.enable
- Description
-
Whether to enable OpenSSH server and key management.
basement.services.ssh.users
- Description
-
None
basement.services.ssh.users.<name>.authorizedKeys
- Description
-
List of additional public keys that can log in with this account
basement.services.ssh.users.<name>.authorizedUsers
- Description
-
List of users in authorizedKeys.nix who should be able to log in with this account
basement.services.weblate.address
- Description
-
Address that weblate should listen on
basement.services.weblate.backup.enable
- Description
-
Enable automatic backups
basement.services.weblate.backup.startAt
- Description
-
Backup schedule in systemd format
basement.services.weblate.backup.target
- Description
-
Target directory for backups
basement.services.weblate.domain
- Description
-
Domain under which the service will be available
basement.services.weblate.enable
- Description
-
Whether to enable weblate web-based translation tool.
basement.services.weblate.envFile
- Description
-
Path to the file with weblate environment variables
basement.services.weblate.path
- Description
-
Path where weblate stores its data
basement.services.weblate.port
- Description
-
Port that weblate should listen on
secrets
- Description
-
None