NixOS Module Options
custom.programs.sudo-rs.enable
Enable sudo-rs, a secure sudo replacement
Type: boolean
Default: false
Example: true
custom.programs.teamviewer.enable
Enable TeamViewer remote desktop interface
Type: boolean
Default: false
Example: true
custom.programs.adb.enable
Enable Android build tools
Type: boolean
Default: false
Example: true
custom.programs.steam.enable
Enable Steam game launcher application
Type: boolean
Default: false
Example: true
custom.programs.mconnect.enable
Enable MConnect, a KDE connect implementation in Vala
Type: boolean
Default: false
Example: true
custom.programs.zsh.enable
Enable ZSH shell
Type: boolean
Default: false
Example: true
custom.hardware.power.tlp.enable
Enable TLP laptop power management
Type: boolean
Default: false
Example: true
custom.hardware.power.thermald.enable
Enable Thermald thermal management for Intel CPUs
Type: boolean
Default: false
Example: true
custom.hardware.argon40.enable
Enable Argon RPI case management service
Type: boolean
Default: false
Example: true
custom.hardware.argon40.eon.enable
Enable support for the EON case
Type: boolean
Default: false
Example: true
custom.hardware.hyperx.cloud-flight-s.enable
Enable hardware support for the HyperX Cloud Flight S
Type: boolean
Default: false
Example: true
custom.hardware.openrgb.enable
Enable OpenRGB application
Type: boolean
Default: false
Example: true
custom.hardware.bluetooth.enable
Enable Bluetooth
Type: boolean
Default: false
Example: true
custom.hardware.plymouth.enable
Enable boot loading animation
Type: boolean
Default: false
Example: true
custom.hardware.disko.enable
Enable Disko disk management
Type: boolean
Default: false
Example: true
custom.hardware.disko.device
The disk to use as the main boot drive
Type: lib.types.str
custom.hardware.disko.swap.size
How large the swap partition should be
Type: lib.types.str
custom.hardware.upower.enable
Enable Upower, a DBus service that provides power management support to applications.
Type: boolean
Default: false
Example: true
custom.hardware.sound.pipewire.enable
Enable pipewire sound engine
Type: boolean
Default: false
Example: true
custom.hardware.video.nvidia.enable
Enable NVIDIA gpu support
Type: boolean
Default: false
Example: true
custom.hardware.video.amd.enable
Enable AMD gpu support
Type: boolean
Default: false
Example: true
custom.hardware.video.amd.vrr.enable
Enable Variable Refresh Rate support
Type: boolean
Default: false
Example: true
custom.hardware.video.amd.polaris.enable
Enable OpenCL for RX 500 series based GPUs
Type: boolean
Default: false
Example: true
custom.hardware.input.logitech.enable
Enable Logitech hardware support
Type: boolean
Default: false
Example: true
custom.hardware.input.corsair.enable
Enable Corsair keyboard support application
Type: boolean
Default: false
Example: true
custom.hardware.backlight.enable
Enable Screen backlight control
Type: boolean
Default: false
Example: true
custom.fs.zfs.enable
Enable ZFS file system
Type: boolean
Default: false
Example: true
custom.virtualisation.qemu.enable
Enable virtualisation software
Type: boolean
Default: false
Example: true
custom.virtualisation.qemu.graphical
Enable graphical interface
Type: boolean
Default: false
Example: true
custom.virtualisation.docker.uptime-kuma.enable
Enable Uptime Kuma docker service
Type: boolean
Default: false
Example: true
custom.virtualisation.docker.dashdot.enable
Enable dashdot monitoring dashboard
Type: boolean
Default: false
Example: true
custom.virtualisation.docker.vaultwarden.enable
Enable Vaultwarden encrypted password store
Type: boolean
Default: false
Example: true
custom.virtualisation.docker.vaultwarden.externalDomain
Type: lib.types.str
custom.virtualisation.docker.twitch-miner.enable
Enable Twitch channel points miner service
Type: boolean
Default: false
Example: true
custom.virtualisation.docker.twitch-miner.username
The twitch username to login to
Type: lib.types.str
custom.virtualisation.docker.qbittorrent.enable
Enable qbittorrent client
Type: boolean
Default: false
Example: true
custom.virtualisation.docker.qbittorrent.webPort
Type: lib.types.ints.u16
Default: 8080
custom.virtualisation.docker.qbittorrent.downloadDir
Type: lib.types.str
Default: createqBittorrentDir "download"
custom.virtualisation.docker.qbittorrent.vpnContainerName
Type: lib.types.str
Default: config.custom.virtualisation.docker.gluetun.containerName
custom.virtualisation.docker.qbittorrent.user.uid
Type: lib.types.int
Default: config.users.users.qbittorrent.uid
custom.virtualisation.docker.qbittorrent.user.gid
Type: lib.types.int
Default: config.users.groups.qbittorrent.gid
custom.virtualisation.docker.enable
Enable docker compose services
Type: boolean
Default: false
Example: true
custom.virtualisation.docker.gluetun.enable
Enable Gluetun VPN client
Type: boolean
Default: false
Example: true
custom.virtualisation.docker.gluetun.containerName
Type: lib.types.str
Default: "gluetun"
custom.virtualisation.docker.gluetun.secretsFile
A path to a file that contains the env secrets.
The ones that are required are DB_NAME
, DB_USERNAME
& DB_PASSWORD
Type: lib.types.str
custom.virtualisation.docker.servarr.enable
Enable Servarr application suite
Type: boolean
Default: false
Example: true
custom.virtualisation.docker.servarr.downloadDir
Type: lib.types.str
Default: createServarrDir ["download"]
custom.virtualisation.docker.servarr.tvDir
Type: lib.types.str
Default: createServarrDir ["tv"]
custom.virtualisation.docker.servarr.movieDir
Type: lib.types.str
Default: createServarrDir ["movies"]
custom.virtualisation.docker.servarr.vpnContainerName
Type: lib.types.str
Default: config.custom.virtualisation.docker.gluetun.containerName
custom.virtualisation.docker.servarr.user.gid
Type: lib.types.int
custom.virtualisation.docker.servarr.bazarr.enable
Enable Bazarr subtitle manager
Type: boolean
Default: false
Example: true
custom.virtualisation.docker.servarr.bazarr.webPort
Type: lib.types.ints.u16
Default: 6767
custom.virtualisation.docker.servarr.prowlarr.enable
Enable Prowlarr indexer manager
Type: boolean
Default: false
Example: true
custom.virtualisation.docker.servarr.radarr.enable
Enable Radarr movie manager
Type: boolean
Default: false
Example: true
custom.virtualisation.docker.servarr.sonarr.enable
Enable Sonarr tv show manager
Type: boolean
Default: false
Example: true
custom.virtualisation.docker.ntfy.enable
Enable Ntfy notification service
Type: boolean
Default: false
Example: true
custom.virtualisation.docker.ntfy.externalDomain
Type: lib.types.str
custom.virtualisation.docker.syncthing.enable
Enable Syncthing docker service
Type: boolean
Default: false
Example: true
custom.virtualisation.docker.syncthing.syncDir
Type: lib.types.str
Default: storage.storageDir + "/syncthing/sync"
custom.virtualisation.docker.syncthing.configDir
Type: lib.types.str
Default: storage.storageDir + "/syncthing/config"
custom.virtualisation.docker.syncthing.fileTransferPort
Type: lib.types.ints.u16
Default: 22000
custom.virtualisation.docker.syncthing.discoveryPort
Type: lib.types.ints.u16
Default: 21027
custom.virtualisation.docker.syncthing.openFirewall
Open needed ports in firewall
Type: boolean
Default: false
Example: true
custom.virtualisation.docker.jellyfin.enable
Enable jellyfin media streaming service
Type: boolean
Default: false
Example: true
custom.virtualisation.docker.jellyfin.mediaDir
Type: lib.types.str
Default: createJellyfinDir "media"
custom.virtualisation.docker.jellyfin.user.uid
Type: lib.types.int
Default: config.users.users.jellyfin.uid
custom.virtualisation.docker.jellyfin.user.gid
Type: lib.types.int
Default: config.users.groups.jellyfin.gid
custom.virtualisation.docker.drone.enable
Enable drone git provider
Type: boolean
Default: false
Example: true
custom.virtualisation.docker.drone.externalDomain
The domain this instance can be reached from by the internet
Type: lib.types.str
custom.virtualisation.docker.drone.gitea.externalDomain
Type: lib.types.str
custom.virtualisation.docker.drone.adminUsername
The username for the default admin that is autocreated
Type: lib.types.str
custom.virtualisation.docker.drone.secretsFile
A path to a file that contains the env secrets.
The ones that are required are GITEA_CLIENT_ID
, GITEA_CLIENT_SECRET
& RPC_SECRET
Type: lib.types.path
custom.virtualisation.docker.immich.enable
Enable Immich photo and video library
Type: boolean
Default: false
Example: true
custom.virtualisation.docker.immich.uploadDir
Type: lib.types.str
Default: createImmichDir "upload"
custom.virtualisation.docker.immich.secretsFile
A path to a file that contains the env secrets.
The ones that are required are DB_PASSWORD
Type: lib.types.str
custom.virtualisation.docker.homeassistant.enable
Enable homeassistant home management service
Type: boolean
Default: false
Example: true
custom.virtualisation.docker.matrix.enable
Enable Matrix messaging server
Type: boolean
Default: false
Example: true
custom.virtualisation.docker.matrix.serverName
Type: lib.types.str
custom.virtualisation.docker.matrix.secretsFile
A path to a file that contains the env secrets. The ones that are required are DB_ROOT_PASSWORD
& DB_PASSWORD
Type: lib.types.str
custom.virtualisation.docker.caddy.enable
Enable Caddy HTTP proxy
Type: boolean
Default: false
Example: true
custom.virtualisation.docker.caddy.caddyFile
Type: lib.types.path
Default: pkgs.writeText "Caddyfile" ''''
custom.virtualisation.docker.caddy.certsDir
Type: lib.types.str
Default: createCaddyDir "certs"
custom.virtualisation.docker.caddy.httpPort
Type: lib.types.ints.u16
Default: 80
custom.virtualisation.docker.caddy.httpsPort
Type: lib.types.ints.u16
Default: 443
custom.virtualisation.docker.caddy.openFirewall
Open needed ports in firewall
Type: boolean
Default: false
Example: true
custom.virtualisation.docker.networking.defaultNetworkName
Type: lib.types.str
Default: "internet"
custom.virtualisation.docker.networking.internalNetworkName
Type: lib.types.str
Default: "internal"
custom.virtualisation.docker."feg".enable
Enable Free Epic Games service
Type: boolean
Default: false
Example: true
custom.virtualisation.docker."feg".secretsFile
A path to a file that contains the env secrets.
The ones that are required are SMTP_HOST, EMAIL_SENDER_ADDRESS, EMAIL_SENDER_NAME, EMAIL_RECIPIENT_ADDRESS, SMTP_USERNAME & SMTP_PASSWORD
Type: lib.types.str
custom.virtualisation.docker."feg".epicGamesEmail
The email address of the Epic Games account
Type: lib.types.str
custom.virtualisation.docker."feg".externalDomain
The domain this instance can be reached from by the internet
Type: lib.types.str
custom.virtualisation.docker.gitea.enable
Enable Gitea git provider
Type: boolean
Default: false
Example: true
custom.virtualisation.docker.gitea.dataDir
Type: lib.types.str
Default: createGiteaDir "data"
custom.virtualisation.docker.gitea.gitDataDir
Path to the directory that the git data will be stored on
Type: lib.types.str
Default: createGiteaDir "git"
custom.virtualisation.docker.gitea.sshPort
Type: lib.types.ints.u16
Default: 4444
custom.virtualisation.docker.gitea.secretsFile
A path to a file that contains the env secrets.
The ones that are required are DB_NAME
, DB_USERNAME
& DB_PASSWORD
Type: lib.types.str
custom.virtualisation.docker.portfolio.enable
Enable Portfolio service
Type: boolean
Default: false
Example: true
custom.virtualisation.docker.portfolio.dbDir
Type: lib.types.str
Default: createPortfolioDir "db"
custom.virtualisation.docker.unifi.enable
Enable Unifi network controller
Type: boolean
Default: false
Example: true
custom.virtualisation.docker.unifi.user.uid
Type: lib.types.int
Default: config.users.users.unifi.uid
custom.virtualisation.docker.unifi.user.gid
Type: lib.types.int
Default: config.users.groups.unifi.gid
custom.virtualisation.docker.unifi.secretsFile
A path to a file that contains the env secrets. The ones that are required are DB_ROOT_PASS
, DB_USER
, DB_PASS
, DB_NAME
Type: lib.types.str
custom.virtualisation.docker.unifi.openFirewall
Open default ports
Type: boolean
Default: false
Example: true
custom.virtualisation.docker.nextcloud.enable
Enable Nextcloud cloud storage service
Type: boolean
Default: false
Example: true
custom.virtualisation.docker.nextcloud.dataDir
Type: lib.types.str
Default: createNextcloudDir "data"
custom.virtualisation.docker.nextcloud.appDir
Type: lib.types.str
Default: createNextcloudDir "app"
custom.virtualisation.docker.nextcloud.secretsFile
A path to a file that contains the env secrets. The ones that are required are DB_ROOT_PASSWORD
& DB_PASSWORD
Type: lib.types.str
custom.virtualisation.docker.watchtower.enable
Enable watchtower docker service
Type: boolean
Default: false
Example: true
custom.virtualisation.docker.watchtower.schedule
Type: lib.types.str
Default: "@daily"
custom.virtualisation.docker.storage.storageDir
Type: lib.types.str
Default: "/var/lib"
custom.virtualisation.docker.searxng.enable
Enable SearXNG search engine
Type: boolean
Default: false
Example: true
custom.virtualisation.docker.searxng.externalDomain
Type: lib.types.str
custom.virtualisation.waydroid.enable
Enable Android virtualisation software
Type: boolean
Default: false
Example: true
custom.usersGlobalGroups
A list of groups that every user on this machine should be part of
Type: with lib.types; listOf str
Default: []
custom.users
Type:
with lib.types;
attrsOf (submodule {
options = {
isSuperUser = lib.mkEnableOption "Whether this user is a super user";
groups = lib.mkOption {
type = listOf str;
description = "A list of groups that this user should be in";
default = [];
};
homeManager = {
enable = lib.mkEnableOption "Enable home-manager configuration for this user";
config = lib.mkOption {
type = path;
description = "Path to the home-manager config file";
};
};
ssh = {
keys = lib.mkOption {
type = listOf str;
description = "A list of public keys that are authorized to connect";
default = [];
};
};
};
})
custom.dm.emptty.enable
Enable emptty display manager
Type: boolean
Default: false
Example: true
custom.dm.greetd.enable
Enable greetd display manager
Type: boolean
Default: false
Example: true
custom.networking.mullvad.enable
Enable Mullvad VPN client
Type: boolean
Default: false
Example: true
custom.networking.wireguard.enable
Enable Wireguard client
Type: boolean
Default: false
Example: true
custom.networking.wireguard.openFirewall
Open default port
Type: boolean
Default: false
Example: true
custom.networking.wireguard.port
The port to use for Wireguard connections
Type: lib.types.port
Default: 49999
custom.networking.wireguard.networks
Type:
with lib.types;
attrsOf (submodule ({name, ...}: {
options = {
enable = lib.mkEnableOption "Enable this network";
privateKeyFile = lib.mkOption {
type = lib.types.str;
default = "/secrets/wireguard/${name}/private";
};
keepAlive = lib.mkEnableOption "Send keep alive to main server to keep NAT open";
};
}))
Default: {}
custom.wm.kodi.enable
Enable Kodi home theater software
Type: boolean
Default: false
Example: true
custom.wm.default.name
The window managers name
Type: lib.types.str
custom.wm.default.path
The path to the window managers executable file
Type: lib.types.str
custom.wm.x11.i3.enable
Enable i3 wm
Type: boolean
Default: false
Example: true
custom.wm.wayland.sway.enable
Enable sway window manager
Type: boolean
Default: false
Example: true
custom.wm.wayland.sway.useFx
Type: lib.types.bool
Default: true
custom.wm.wayland.sway.osd.enable
Enable sway osd
Type: lib.types.bool
Default: config.custom.wm.wayland.sway.enable
custom.security.keyring.enable
Enable keyring
Type: boolean
Default: false
Example: true
custom.builders.enable
Enable remote build
Type: boolean
Default: false
Example: true
custom.builders.machines
Type:
lib.types.listOf (lib.types.submodule {
options = {
hostName = lib.mkOption {
type = lib.types.str;
description = "The hostname of the build machine.";
};
system = lib.mkOption {
type = lib.types.nullOr lib.types.str;
default = null;
example = "x86_64-linux";
description = ''
The system type the build machine can execute derivations on.
Either this attribute or {var}`systems` must be
present, where {var}`system` takes precedence if
both are set.
'';
};
};
})
Default: []
custom.services.searx.enable
Enable Searxng search engine
Type: boolean
Default: false
Example: true
custom.services.searx.port
The port to run the service on
Type: lib.types.int
custom.services.searx.domain
The external domain the service can be reached from
Type: lib.types.str
custom.services.sunshine.enable
Enable sunshine game streaming host
Type: boolean
Default: false
Example: true
custom.services.sunshine.openFirewall
Open required ports on firewall
Type: boolean
Default: false
Example: true
custom.services.invidious.enable
Enable Invidious YouTube frontend
Type: boolean
Default: false
Example: true
custom.services.invidious.port
The port to run the service on
Type: lib.types.int
custom.services.invidious.domain
The external domain the service can be reached from
Type: lib.types.str
custom.services.samba.server.enable
Enable Samba file sharing server
Type: boolean
Default: false
Example: true
custom.services.samba.server.shares
Paths to share using samba
Type: with lib.types; attrsOf str
Default: {}
custom.services.samba.client.enable
Enable Samba share mount client
Type: boolean
Default: false
Example: true
custom.services.samba.client.credentialsFile
The location of the credentials file
Type: lib.types.str
Default: "/secrets/samba/client/default"
custom.services.samba.client.shares
Type:
lib.types.listOf (lib.types.submodule {
options = {
host = {
dir = lib.mkOption {
type = lib.types.str;
description = "The location of the mount on the host";
};
uid = lib.mkOption {
type = lib.types.nullOr lib.types.ints.u16;
default = null;
};
gid = lib.mkOption {
type = lib.types.nullOr lib.types.ints.u16;
default = null;
};
dirMode = lib.mkOption {
type = lib.types.str;
default = "0755";
};
fileMode = lib.mkOption {
type = lib.types.str;
default = "0644";
};
credentialsFile = lib.mkOption {
type = lib.types.str;
description = "The location of the credentials file";
default = cfg.credentialsFile;
};
};
remote = {
host = lib.mkOption {
type = lib.types.str;
description = "The hostname of the machine running the samba server";
};
dir = lib.mkOption {
type = lib.types.str;
description = "The location of the mount on the host";
};
};
};
})
Default: []
custom.services.syncthing.enable
Enable Syncthing file sync client
Type: boolean
Default: false
Example: true
custom.services.syncthing.user
Type: lib.types.str
Default: "guus"
custom.services.syncthing.group
Type: lib.types.str
Default: "users"
custom.services.syncthing.dataDir
Type: lib.types.str
Default: "/home/guus"
custom.services.syncthing.keyFile
Type: lib.types.str
Default: "/secrets/syncthing/key.pem"
custom.services.syncthing.certFile
Type: lib.types.str
Default: "/secrets/syncthing/cert.pem"
custom.services.syncthing.port
The port to run the service on
Type: lib.types.ints.u16
Default: 8384
custom.services.syncthing.caddy.enable
Enable Caddy integration
Type: lib.types.bool
Default: config.services.caddy.enable
custom.services.syncthing.caddy.url
The external domain the service can be reached from
Type: lib.types.str
custom.services.syncthing.folders
A list of folders that should be shared
Type: with lib.types; attrsOf str
Default: {}
custom.services.syncthing.openFirewall
Open syncthing ports in firewall
Type: lib.types.bool
Default: cfg.enable
custom.services.syncthing.fileTransferPort
Type: lib.types.ints.u16
Default: 22000
custom.services.syncthing.discoveryPort
Type: lib.types.ints.u16
Default: 21027
custom.services.kdeconnect.openFirewall
Open needed ports in firewall
Type: boolean
Default: false
Example: true
custom.services.openssh.enable
Enable OpenSSH server
Type: boolean
Default: false
Example: true
custom.services.openssh.openFirewall
Open firewall ports
Type: lib.types.bool
Default: config.networking.firewall.enable
custom.services.dnsmasq.enable
Enable dnsmasq DNS service
Type: boolean
Default: false
Example: true
custom.services.dnsmasq.redirects
Redirect a given domain name to a given ip address
Type: lib.types.attrsOf lib.types.str
Default: {}
custom.services.dnsmasq.upstream-servers
The servers to reroute the dns requests to
Type: lib.types.listOf lib.types.str
Default: ["1.1.1.1"]
custom.services.dnsmasq.openFirewall
Open default firewall ports
Type: boolean
Default: false
Example: true
custom.services.gvfs.enable
Enable GVFS virtual fs
Type: boolean
Default: false
Example: true
custom.services.nginx.enable
Enable NGINX web server
Type: boolean
Default: false
Example: true
custom.services.gamemode.enable
Enable Gamemode performance optimizer
Type: boolean
Default: false
Example: true
custom.services.fail2ban.enable
Enable Fail2ban intrusion prevention software
Type: boolean
Default: false
Example: true
custom.services.autoUpgrade.enable
Enable system auto upgrade service
Type: boolean
Default: false
Example: true
custom.services.autoUpgrade.flake
The flake uri of the NixOS config to upgrade to
Type: lib.types.str
Default: "github:guusvanmeerveld/nixos-config"
custom.services.motd.enable
Enable custom MOTD
Type: boolean
Default: false
Example: true
custom.services.motd.settings.docker
A list of docker containers that should be shown Local containers MUST start with a slash
Type: lib.types.attrsOf lib.types.str
Default: {}
custom.services.motd.settings.fileSystems
A list of filesystems that should be shown
Type: lib.types.attrsOf lib.types.str
Default: {}
Generated with nix-options-doc