> ## Documentation Index
> Fetch the complete documentation index at: https://nicos.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Machine options

<h4 id="settings.fleet-manager.enable">
  <span class="hidden">`settings.fleet-manager.enable`</span>
</h4>

<ResponseField name="settings.fleet-manager.enable" type="boolean" default={false}>
  This Cluster is the Fleet Manager

  Declared in [modules/kubernetes/fleet-manager.nix](https://github.com/plmercereau/nicos/blob/main/modules/kubernetes/fleet-manager.nix#L21).
</ResponseField>

<h4 id="settings.git.repos">
  <span class="hidden">`settings.git.repos`</span>
</h4>

<ResponseField name="settings.git.repos" type="attribute set of path" default={{}}>
  Set of local git repositories to be committed locally on each activation.

  Declared in [modules/git/default.nix](https://github.com/plmercereau/nicos/blob/main/modules/git/default.nix#L12).
</ResponseField>

<h4 id="settings.impermanence.enable">
  <span class="hidden">`settings.impermanence.enable`</span>
</h4>

<ResponseField name="settings.impermanence.enable" type="boolean" default={false}>
  Whether to enable impermanence.

  ```nix Example theme={null}
  true
  ```

  Declared in [modules/impermanence.nix](https://github.com/plmercereau/nicos/blob/main/modules/impermanence.nix#L11).
</ResponseField>

<h4 id="settings.impermanence.persistentSystemPath">
  <span class="hidden">`settings.impermanence.persistentSystemPath`</span>
</h4>

<ResponseField name="settings.impermanence.persistentSystemPath" type="string" default={"/nix/persist/system"}>
  Path to where the persisted part of the system lies

  Declared in [modules/impermanence.nix](https://github.com/plmercereau/nicos/blob/main/modules/impermanence.nix#L12).
</ResponseField>

<h4 id="settings.kubernetes.enable">
  <span class="hidden">`settings.kubernetes.enable`</span>
</h4>

<ResponseField name="settings.kubernetes.enable" type="boolean" default={false}>
  Run a k3s Kubernetes node on the machine.

  Declared in [modules/kubernetes/default.nix](https://github.com/plmercereau/nicos/blob/main/modules/kubernetes/default.nix#L15).
</ResponseField>

<h4 id="settings.kubernetes.group">
  <span class="hidden">`settings.kubernetes.group`</span>
</h4>

<ResponseField name="settings.kubernetes.group" type="string" default={"k8s-admin"}>
  Group that has access to the k3s config and data.

  Declared in [modules/kubernetes/default.nix](https://github.com/plmercereau/nicos/blob/main/modules/kubernetes/default.nix#L29).
</ResponseField>

<h4 id="settings.kubernetes.labels">
  <span class="hidden">`settings.kubernetes.labels`</span>
</h4>

<ResponseField name="settings.kubernetes.labels" type="attribute set of string" default={{}}>
  Labels to add to the cluster

  Declared in [modules/kubernetes/default.nix](https://github.com/plmercereau/nicos/blob/main/modules/kubernetes/default.nix#L34).
</ResponseField>

<h4 id="settings.kubernetes.name">
  <span class="hidden">`settings.kubernetes.name`</span>
</h4>

<ResponseField name="settings.kubernetes.name" type="string" default={"nixos"}>
  Name of the k3s cluster.

  Declared in [modules/kubernetes/default.nix](https://github.com/plmercereau/nicos/blob/main/modules/kubernetes/default.nix#L24).
</ResponseField>

<h4 id="settings.kubernetes.oauthClientId">
  <span class="hidden">`settings.kubernetes.oauthClientId`</span>
</h4>

<ResponseField name="settings.kubernetes.oauthClientId" type="string" required>
  OAuth client ID for the tailscale operator.

  Declared in [modules/kubernetes/default.nix](https://github.com/plmercereau/nicos/blob/main/modules/kubernetes/default.nix#L20).
</ResponseField>

<h4 id="settings.kubernetes.values">
  <span class="hidden">`settings.kubernetes.values`</span>
</h4>

<ResponseField name="settings.kubernetes.values" type="attribute set of string" default={{}}>
  Template values of the cluster

  Declared in [modules/kubernetes/default.nix](https://github.com/plmercereau/nicos/blob/main/modules/kubernetes/default.nix#L39).
</ResponseField>

<h4 id="settings.local-server.enable">
  <span class="hidden">`settings.local-server.enable`</span>
</h4>

<ResponseField name="settings.local-server.enable" type="boolean" default={true}>
  Label this machine as a local server.

  Declared in [modules/local-server/default.nix](https://github.com/plmercereau/nicos/blob/main/modules/local-server/default.nix#L12).
</ResponseField>

<h4 id="settings.localIP">
  <span class="hidden">`settings.localIP`</span>
</h4>

<ResponseField name="settings.localIP" type="null or string">
  IP of the machine in the local network

  Declared in [modules/networking.nix](https://github.com/plmercereau/nicos/blob/main/modules/networking.nix#L18).
</ResponseField>

<h4 id="settings.prometheus.enable">
  <span class="hidden">`settings.prometheus.enable`</span>
</h4>

<ResponseField name="settings.prometheus.enable" type="boolean" default={false}>
  Label the machine as using the Prometheus monitoring system.

  By default, the machine is labeled when the Kubernetes cluster is enabled.

  Declared in [modules/prometheus/default.nix](https://github.com/plmercereau/nicos/blob/main/modules/prometheus/default.nix#L12).
</ResponseField>

<h4 id="settings.prometheus.federation.enable">
  <span class="hidden">`settings.prometheus.federation.enable`</span>
</h4>

<ResponseField name="settings.prometheus.federation.enable" type="boolean" default={true}>
  Label the machine as using Prometheus in a federation of multiple Prometheus instances.

  Declared in [modules/prometheus/default.nix](https://github.com/plmercereau/nicos/blob/main/modules/prometheus/default.nix#L23).
</ResponseField>

<h4 id="settings.prometheus.federation.upstream.enable">
  <span class="hidden">`settings.prometheus.federation.upstream.enable`</span>
</h4>

<ResponseField name="settings.prometheus.federation.upstream.enable" type="boolean" default={true}>
  Label the machine as being the upstream Prometheus instance in a federation.

  Declared in [modules/prometheus/default.nix](https://github.com/plmercereau/nicos/blob/main/modules/prometheus/default.nix#L31).
</ResponseField>

<h4 id="settings.publicIP">
  <span class="hidden">`settings.publicIP`</span>
</h4>

<ResponseField name="settings.publicIP" type="null or string">
  Public IP of the machine

  Declared in [modules/networking.nix](https://github.com/plmercereau/nicos/blob/main/modules/networking.nix#L12).
</ResponseField>

<h4 id="settings.ssh.fail2ban.enable">
  <span class="hidden">`settings.ssh.fail2ban.enable`</span>
</h4>

<ResponseField name="settings.ssh.fail2ban.enable" type="boolean" default={false}>
  Enable fail2ban to block SSH brute force attacks.

  By default, Fail2ban is enabled if sshguard is disabled.

  Declared in [modules/ssh.nix](https://github.com/plmercereau/nicos/blob/main/modules/ssh.nix#L22).
</ResponseField>

<h4 id="settings.ssh.sshguard.enable">
  <span class="hidden">`settings.ssh.sshguard.enable`</span>
</h4>

<ResponseField name="settings.ssh.sshguard.enable" type="boolean" default={true}>
  Enable sshguard to block SSH brute force attacks.

  Declared in [modules/ssh.nix](https://github.com/plmercereau/nicos/blob/main/modules/ssh.nix#L31).
</ResponseField>

<h4 id="settings.sshPublicKey">
  <span class="hidden">`settings.sshPublicKey`</span>
</h4>

<ResponseField name="settings.sshPublicKey" type="string" required>
  SSH public key of the machine.

  This option is required to decode the secrets defined in the main features like users, wireless networks, etc.

  Declared in [modules/ssh.nix](https://github.com/plmercereau/nicos/blob/main/modules/ssh.nix#L12).
</ResponseField>

<h4 id="settings.swap.file.enable">
  <span class="hidden">`settings.swap.file.enable`</span>
</h4>

<ResponseField name="settings.swap.file.enable" type="boolean" default={true}>
  Enable a swap file on the root partition.

  Declared in [modules/swap.nix](https://github.com/plmercereau/nicos/blob/main/modules/swap.nix#L19).
</ResponseField>

<h4 id="settings.swap.file.size">
  <span class="hidden">`settings.swap.file.size`</span>
</h4>

<ResponseField name="settings.swap.file.size" type="integer between 0 and 10 (both inclusive)" default={1}>
  Size of the swap file in GiB.

  Declared in [modules/swap.nix](https://github.com/plmercereau/nicos/blob/main/modules/swap.nix#L25).
</ResponseField>

<h4 id="settings.swap.zram.enable">
  <span class="hidden">`settings.swap.zram.enable`</span>
</h4>

<ResponseField name="settings.swap.zram.enable" type="boolean" default={true}>
  Enable a swap file in a zram device.

  Declared in [modules/swap.nix](https://github.com/plmercereau/nicos/blob/main/modules/swap.nix#L12).
</ResponseField>

<h4 id="settings.users.users">
  <span class="hidden">`settings.users.users`</span>
</h4>

<ResponseField name="settings.users.users" type="attribute set of (submodule)" default={{}}>
  Set of users to create and configure.

  Declared in [modules/users.nix](https://github.com/plmercereau/nicos/blob/main/modules/users.nix#L45).
</ResponseField>

<h4 id="settings.users.users.<name>.enable">
  <span class="hidden">`settings.users.users.<name>.enable`</span>
</h4>

<ResponseField name="settings.users.users.<name>.enable" type="boolean" default={false}>
  Whether the user is enabled in the machine.

  Declared in [modules/users.nix](https://github.com/plmercereau/nicos/blob/main/modules/users.nix#L17).
</ResponseField>

<h4 id="settings.users.users.<name>.isAdmin">
  <span class="hidden">`settings.users.users.<name>.isAdmin`</span>
</h4>

<ResponseField name="settings.users.users.<name>.isAdmin" type="boolean" default={false}>
  Whether the user is an admin of the machine.

  Declared in [modules/users.nix](https://github.com/plmercereau/nicos/blob/main/modules/users.nix#L23).
</ResponseField>

<h4 id="settings.users.users.<name>.isSystemUser">
  <span class="hidden">`settings.users.users.<name>.isSystemUser`</span>
</h4>

<ResponseField name="settings.users.users.<name>.isSystemUser" type="boolean" default={false}>
  Whether the user is a system user.

  Declared in [modules/users.nix](https://github.com/plmercereau/nicos/blob/main/modules/users.nix#L29).
</ResponseField>

<h4 id="settings.users.users.<name>.publicKeys">
  <span class="hidden">`settings.users.users.<name>.publicKeys`</span>
</h4>

<ResponseField name="settings.users.users.<name>.publicKeys" type="list of valid ecdsa-sha2-nistp256 or ssh-ed25519 or ssh-rsa key, meaning a string matching the pattern ^ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTY[[:lower:][:upper:][:digit:]\/+]{108}=$|^ssh-ed25519 AAAAC3NzaC1lZDI1NTE5[[:lower:][:upper:][:digit:]\/+]{48}$|^ssh-rsa AAAAB3NzaC1yc2E[[:lower:][:upper:][:digit:]\/+]{355,}={0,2}$" default={[]}>
  Public keys of the user, without the comment (user\@host) part.

  Declared in [modules/users.nix](https://github.com/plmercereau/nicos/blob/main/modules/users.nix#L35).
</ResponseField>
