Options

nixfiles.bookdb.dataDir

Directory to store uploaded files to.

If the erase-your-darlings module is enabled, this is overridden to be on the persistent volume.

Type: string

Default: "/srv/bookdb"

Declared in: shared/bookdb/options.nix

nixfiles.bookdb.elasticsearchPort

Port (on 127.0.0.1) to expose the elasticsearch container on.

Type: signed integer

Default: 47164

Declared in: shared/bookdb/options.nix

nixfiles.bookdb.elasticsearchTag

Tag to use of the elasticsearch container image.

Type: string

Default: "8.0.0"

Declared in: shared/bookdb/options.nix

nixfiles.bookdb.enable

Enable the bookdb service.

Type: boolean

Default: false

Declared in: shared/bookdb/options.nix

nixfiles.bookdb.logFormat

Format of the log messages.

Type: string

Default: "json,no-time"

Declared in: shared/bookdb/options.nix

nixfiles.bookdb.logLevel

Verbosity of the log messages.

Type: string

Default: "info"

Declared in: shared/bookdb/options.nix

nixfiles.bookdb.port

Port (on 127.0.0.1) to expose bookdb on.

Type: signed integer

Default: 46667

Declared in: shared/bookdb/options.nix

nixfiles.bookdb.readOnly

Launch the service in "read-only" mode. Enable this if exposing it to a public network.

Type: boolean

Default: false

Declared in: shared/bookdb/options.nix

nixfiles.bookmarks.elasticsearchPort

Port (on 127.0.0.1) to expose the elasticsearch container on.

Type: signed integer

Default: 43389

Declared in: shared/bookmarks/options.nix

nixfiles.bookmarks.elasticsearchTag

Tag to use of the elasticsearch container image.

Type: string

Default: "8.0.0"

Declared in: shared/bookmarks/options.nix

nixfiles.bookmarks.enable

Enable the bookmarks service.

Type: boolean

Default: false

Declared in: shared/bookmarks/options.nix

nixfiles.bookmarks.logFormat

Format of the log messages.

Type: string

Default: "json,no-time"

Declared in: shared/bookmarks/options.nix

nixfiles.bookmarks.logLevel

Verbosity of the log messages.

Type: string

Default: "info"

Declared in: shared/bookmarks/options.nix

nixfiles.bookmarks.port

Port (on 127.0.0.1) to expose bookmarks on.

Type: signed integer

Default: 48372

Declared in: shared/bookmarks/options.nix

nixfiles.bookmarks.readOnly

Launch the service in "read-only" mode. Enable this if exposing it to a public network.

Type: boolean

Default: false

Declared in: shared/bookmarks/options.nix

nixfiles.concourse.concourseTag

Tag to use of the concourse/concourse container image.

Type: string

Default: "7.11.2"

Declared in: shared/concourse/options.nix

nixfiles.concourse.enable

Enable the Concourse CI service.

Type: boolean

Default: false

Declared in: shared/concourse/options.nix

nixfiles.concourse.environmentFile

Environment file to pass secrets into the service. This is of the form:

# GitHub OAuth credentials
CONCOURSE_GITHUB_CLIENT_ID="..."
CONCOURSE_GITHUB_CLIENT_SECRET="..."

# AWS SSM credentials
CONCOURSE_AWS_SSM_REGION="..."
CONCOURSE_AWS_SSM_ACCESS_KEY="..."
CONCOURSE_AWS_SSM_SECRET_KEY="..."

Type: string

Declared in: shared/concourse/options.nix

nixfiles.concourse.githubUser

The GitHub user to authenticate with.

Type: string

Default: "barrucadu"

Declared in: shared/concourse/options.nix

nixfiles.concourse.metricsPort

Port (on 127.0.0.1) to expose the Prometheus metrics on.

Type: signed integer

Default: 45811

Declared in: shared/concourse/options.nix

nixfiles.concourse.port

Port (on 127.0.0.1) to expose Concourse CI on.

Type: signed integer

Default: 46498

Declared in: shared/concourse/options.nix

nixfiles.concourse.postgresTag

Tag to use of the postgres container image.

Type: string

Default: "16"

Declared in: shared/concourse/options.nix

nixfiles.concourse.workerScratchDir

Mount a directory from the host into the worker container to use as temporary storage. This is useful if the filesystem used for container volumes isn't very big.

Type: null or path

Default: null

Declared in: shared/concourse/options.nix

nixfiles.eraseYourDarlings.barrucaduPasswordFile

File containing the hashed password for barrucadu.

If using sops-nix set the neededForUsers option on the secret.

Type: string

Declared in: shared/erase-your-darlings/options.nix

nixfiles.eraseYourDarlings.enable

Enable wiping / on boot and storing persistent data in ${persistDir}.

Type: boolean

Default: false

Declared in: shared/erase-your-darlings/options.nix

nixfiles.eraseYourDarlings.machineId

An arbitrary 32-character hexadecimal string, used to identify the host. This is needed for journalctl logs from previous boots to be accessible.

See the systemd documentation.

Type: string

Example: "64b1b10f3bef4616a7faf5edf1ef3ca5"

Declared in: shared/erase-your-darlings/options.nix

nixfiles.eraseYourDarlings.persistDir

Persistent directory which will not be erased. This must be on a different ZFS dataset that will not be wiped when rolling back to the rootSnapshot.

This module moves various files from / to here.

Type: path

Default: "/persist"

Declared in: shared/erase-your-darlings/options.nix

nixfiles.eraseYourDarlings.rootSnapshot

ZFS snapshot to roll back to on boot.

Type: string

Default: "local/volatile/root@blank"

Declared in: shared/erase-your-darlings/options.nix

nixfiles.finder.elasticsearchTag

Tag to use of the elasticsearch container image.

Type: string

Default: "8.0.0"

Declared in: shared/finder/options.nix

nixfiles.finder.enable

Enable the finder service.

Type: boolean

Default: false

Declared in: shared/finder/options.nix

nixfiles.finder.image

Container image to run.

Type: string

Declared in: shared/finder/options.nix

nixfiles.finder.mangaDir

Directory to serve manga files from.

Type: path

Example: "/mnt/nas/manga"

Declared in: shared/finder/options.nix

nixfiles.finder.port

Port (on 127.0.0.1) to expose finder on.

Type: signed integer

Default: 44986

Declared in: shared/finder/options.nix

nixfiles.firewall.ipBlocklistFile

File containing IPs to block. This is of the form:

ip-address # comment
ip-address # comment
...

Type: null or string

Default: null

Declared in: shared/options.nix

nixfiles.foundryvtt.dataDir

Directory to store data files in.

The downloaded FoundryVTT program files must be in ${dataDir}/bin.

If the erase-your-darlings module is enabled, this is overridden to be on the persistent volume.

Type: string

Default: "/var/lib/foundryvtt"

Declared in: shared/foundryvtt/options.nix

nixfiles.foundryvtt.enable

Enable the FoundryVTT service.

Type: boolean

Default: false

Declared in: shared/foundryvtt/options.nix

nixfiles.foundryvtt.port

Port (on 127.0.0.1) to expose FoundryVTT on.

Type: signed integer

Default: 46885

Declared in: shared/foundryvtt/options.nix

nixfiles.minecraft.dataDir

Directory to store data files in.

If the erase-your-darlings module is enabled, this is overridden to be on the persistent volume.

Type: path

Default: "/var/lib/minecraft"

Declared in: shared/minecraft/options.nix

nixfiles.minecraft.enable

Enable the Minecraft service.

Type: boolean

Default: false

Declared in: shared/minecraft/options.nix

nixfiles.minecraft.servers

Attrset of minecraft server definitions. Each server {name} is run in the working directory ${dataDir}/{name}.

Type: attribute set of (submodule)

Default: { }

Declared in: shared/minecraft/options.nix

nixfiles.minecraft.servers.<name>.autoStart

Start the server automatically on boot.

Type: boolean

Default: true

Declared in: shared/minecraft/options.nix

nixfiles.minecraft.servers.<name>.jar

Name of the JAR file to use. This file must be in the working directory.

Type: string

Default: "minecraft-server.jar"

Declared in: shared/minecraft/options.nix

nixfiles.minecraft.servers.<name>.jre

Java runtime package to use.

Type: package

Default: <derivation openjdk-headless-17.0.7+7>

Declared in: shared/minecraft/options.nix

nixfiles.minecraft.servers.<name>.jvmOpts

Java runtime arguments. Cargo cult these from a forum post and then never think about them again.

Type: strings concatenated with " "

Default: "-Xmx4G -Xms4G -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:G1NewSizePercent=20 -XX:G1ReservePercent=20 -XX:MaxGCPauseMillis=50 -XX:G1HeapRegionSize=32M"

Declared in: shared/minecraft/options.nix

nixfiles.minecraft.servers.<name>.port

Port to open in the firewall. This must match the port in the server.properties file.

Type: signed integer

Declared in: shared/minecraft/options.nix

nixfiles.oci-containers.backend

The container runtime.

Type: one of "docker", "podman"

Default: "docker"

Declared in: shared/oci-containers/options.nix

nixfiles.oci-containers.pods

Attrset of pod definitions.

Type: attribute set of (submodule)

Default: { }

Declared in: shared/oci-containers/options.nix

nixfiles.oci-containers.pods.<name>.containers

Attrset of container definitions.

Type: attribute set of (submodule)

Default: { }

Declared in: shared/oci-containers/options.nix

nixfiles.oci-containers.pods.<name>.containers.<name>.autoStart

Start the container automatically on boot.

Type: boolean

Default: true

Declared in: shared/oci-containers/options.nix

nixfiles.oci-containers.pods.<name>.containers.<name>.cmd

Command-line arguments to pass to the container image's entrypoint.

Type: list of string

Default: [ ]

Declared in: shared/oci-containers/options.nix

nixfiles.oci-containers.pods.<name>.containers.<name>.dependsOn

Other containers that this one depends on, in ${pod}-${name} format.

Type: list of string

Default: [ ]

Example: [ "concourse-db" ]

Declared in: shared/oci-containers/options.nix

nixfiles.oci-containers.pods.<name>.containers.<name>.environment

Environment variables to set for this container.

Type: attribute set of string

Default: { }

Declared in: shared/oci-containers/options.nix

nixfiles.oci-containers.pods.<name>.containers.<name>.environmentFiles

List of environment files for this container.

Type: list of path

Default: [ ]

Declared in: shared/oci-containers/options.nix

nixfiles.oci-containers.pods.<name>.containers.<name>.extraOptions

Extra options to pass to docker run / podman run.

Type: list of string

Default: [ ]

Declared in: shared/oci-containers/options.nix

nixfiles.oci-containers.pods.<name>.containers.<name>.image

Container image to run.

Type: string

Declared in: shared/oci-containers/options.nix

nixfiles.oci-containers.pods.<name>.containers.<name>.login.passwordFile

File containing the password for the container registry.

Type: null or string

Default: null

Declared in: shared/oci-containers/options.nix

nixfiles.oci-containers.pods.<name>.containers.<name>.login.registry

Container registry to authenticate with.

Type: null or string

Default: null

Declared in: shared/oci-containers/options.nix

nixfiles.oci-containers.pods.<name>.containers.<name>.login.username

Username for the container registry.

Type: null or string

Default: null

Declared in: shared/oci-containers/options.nix

nixfiles.oci-containers.pods.<name>.containers.<name>.ports

List of ports to expose.

Type: list of (submodule)

Default: [ ]

Declared in: shared/oci-containers/options.nix

nixfiles.oci-containers.pods.<name>.containers.<name>.ports.*.host

Host port (on 127.0.0.1) to expose the container port on.

Type: signed integer

Declared in: shared/oci-containers/options.nix

nixfiles.oci-containers.pods.<name>.containers.<name>.ports.*.inner

The container port to expose to the hosti.

Type: signed integer

Declared in: shared/oci-containers/options.nix

nixfiles.oci-containers.pods.<name>.containers.<name>.pullOnStart

Pull the container image when starting (useful for :latest images).

Type: boolean

Default: true

Declared in: shared/oci-containers/options.nix

nixfiles.oci-containers.pods.<name>.containers.<name>.volumes

List of volume definitions.

Type: list of (submodule)

Default: [ ]

Declared in: shared/oci-containers/options.nix

nixfiles.oci-containers.pods.<name>.containers.<name>.volumes.*.host

Directory on the host to bind-mount into the container.

This option conflicts with ${name}.

Type: null or string

Default: null

Declared in: shared/oci-containers/options.nix

nixfiles.oci-containers.pods.<name>.containers.<name>.volumes.*.inner

Directory in the container to mount the volume to.

Type: string

Declared in: shared/oci-containers/options.nix

nixfiles.oci-containers.pods.<name>.containers.<name>.volumes.*.name

Name of the volume. This is equivalent to:

host = "${volumeBaseDir}/${volumeSubDir}/${name}";

This option c.logonflicts with ${host}.

Type: null or string

Default: null

Declared in: shared/oci-containers/options.nix

nixfiles.oci-containers.pods.<name>.volumeSubDir

Subdirectory of the ${volumeBaseDir} to store bind-mounts under.

Type: string

Default: "‹name›"

Declared in: shared/oci-containers/options.nix

nixfiles.oci-containers.volumeBaseDir

Directory to store volume bind-mounts under.

If the erase-your-darlings module is enabled, this is overridden to be on the persistent volume.

Type: string

Declared in: shared/oci-containers/options.nix

nixfiles.pleroma.adminEmail

Email address used to contact the server operator.

Type: string

Default: "mike@barrucadu.co.uk"

Declared in: shared/pleroma/options.nix

nixfiles.pleroma.allowRegistration

Allow new users to sign up.

Type: boolean

Default: false

Declared in: shared/pleroma/options.nix

nixfiles.pleroma.domain

Domain which Pleroma will be exposed on.

Type: string

Example: "social.lainon.life"

Declared in: shared/pleroma/options.nix

nixfiles.pleroma.enable

Enable the Pleroma service.

Type: boolean

Default: false

Declared in: shared/pleroma/options.nix

nixfiles.pleroma.faviconPath

File to use for the favicon.

Type: null or path

Default: null

Declared in: shared/pleroma/options.nix

nixfiles.pleroma.instanceName

Name of the instance, defaults to the ${domain} if not set.

Type: null or string

Default: null

Declared in: shared/pleroma/options.nix

nixfiles.pleroma.notifyEmail

Email address used for notification, defaults to the ${adminEmail} if not set.

Type: null or string

Default: null

Declared in: shared/pleroma/options.nix

nixfiles.pleroma.port

Port (on 127.0.0.1) to expose Pleroma on.

Type: signed integer

Default: 46283

Declared in: shared/pleroma/options.nix

nixfiles.pleroma.postgresTag

Tag to use of the postgres container image.

Type: string

Default: "16"

Declared in: shared/pleroma/options.nix

nixfiles.pleroma.secretsFile

File containing secret configuration.

See the Pleroma documentation for what this needs to contain.

Type: string

Declared in: shared/pleroma/options.nix

nixfiles.resolved.address

Address to listen on.

Type: string

Default: "0.0.0.0:53"

Declared in: shared/resolved/options.nix

nixfiles.resolved.authoritativeOnly

Only answer queries for which this server is authoritative: do not perform recursive or forwarding resolution.

Type: boolean

Default: false

Declared in: shared/resolved/options.nix

nixfiles.resolved.cacheSize

How many records to hold in the cache.

Type: signed integer

Default: 512

Declared in: shared/resolved/options.nix

nixfiles.resolved.enable

Enable the resolved service.

Type: boolean

Default: false

Declared in: shared/resolved/options.nix

nixfiles.resolved.forwardAddress

Act as a forwarding resolver, not a recursive resolver: forward queries which can't be answered from local state to this nameserver and cache the result.

Type: null or string

Default: null

Declared in: shared/resolved/options.nix

nixfiles.resolved.hostsDirs

List of directories to read hosts files from.

Type: list of string

Default: [ ]

Declared in: shared/resolved/options.nix

nixfiles.resolved.logFormat

Format of the log messages.

Type: string

Default: "json,no-time"

Declared in: shared/resolved/options.nix

nixfiles.resolved.logLevel

Verbosity of the log messages.

Type: string

Default: "dns_resolver=info,resolved=info"

Declared in: shared/resolved/options.nix

nixfiles.resolved.metricsAddress

Address to listen on to serve Prometheus metrics.

Type: string

Default: "127.0.0.1:9420"

Declared in: shared/resolved/options.nix

nixfiles.resolved.protocolMode

How to choose between connecting to upstream nameservers over IPv4 or IPv6 when acting as a recursive resolver.

Type: string

Default: "only-v4"

Declared in: shared/resolved/options.nix

nixfiles.resolved.useDefaultZones

Include the default zone files.

Type: boolean

Default: true

Declared in: shared/resolved/options.nix

nixfiles.resolved.zonesDirs

List of directories to read zone files from.

Type: list of string

Default: [ ]

Declared in: shared/resolved/options.nix

nixfiles.restic-backups.backups

Attrset of backup job definitions.

Type: attribute set of (submodule)

Default: { }

Declared in: shared/restic-backups/options.nix

nixfiles.restic-backups.backups.<name>.cleanupCommand

A script to run after taking the backup.

Type: null or string

Default: null

Declared in: shared/restic-backups/options.nix

nixfiles.restic-backups.backups.<name>.paths

List of paths to back up.

Type: list of string

Default: [ ]

Declared in: shared/restic-backups/options.nix

nixfiles.restic-backups.backups.<name>.prepareCommand

A script to run before beginning the backup.

Type: null or string

Default: null

Declared in: shared/restic-backups/options.nix

nixfiles.restic-backups.backups.<name>.startAt

When to run the backup.

Type: string

Default: "Mon, 04:00"

Declared in: shared/restic-backups/options.nix

nixfiles.restic-backups.checkRepositoryAt

If not null, when to run restic check to validate the repository metadata.

Type: null or string

Default: null

Declared in: shared/restic-backups/options.nix

nixfiles.restic-backups.enable

Enable the backup service.

Type: boolean

Default: false

Declared in: shared/restic-backups/options.nix

nixfiles.restic-backups.environmentFile

Environment file to pass secrets into the service. This is of the form:

# Repository password
RESTIC_PASSWORD="..."

# B2 credentials
B2_ACCOUNT_ID="..."
B2_ACCOUNT_KEY="..."

# AWS SNS credentials
AWS_ACCESS_KEY="..."
AWS_SECRET_ACCESS_KEY="..."
AWS_DEFAULT_REGION="..."

If any of the backup jobs need secrets, those should be specified in this file as well.

Type: null or string

Declared in: shared/restic-backups/options.nix

nixfiles.restic-backups.sudoRules

List of additional sudo rules to grant the backup user.

Type: list of (submodule)

Default: [ ]

Declared in: shared/restic-backups/options.nix

nixfiles.restic-backups.sudoRules.*.command

The command for which the rule applies.

Type: string

Declared in: shared/restic-backups/options.nix

nixfiles.restic-backups.sudoRules.*.runAs

The user / group under which the command is allowed to run.

A user can be specified using just the username: "foo". It is also possible to specify a user/group combination using "foo:bar" or to only allow running as a specific group with ":bar".

Type: string

Default: "ALL:ALL"

Declared in: shared/restic-backups/options.nix

nixfiles.torrents.downloadDir

Directory to download torrented files to.

Type: string

Example: "/mnt/nas/torrents/files"

Declared in: shared/torrents/options.nix

nixfiles.torrents.enable

Enable the Transmission service.

Type: boolean

Default: false

Declared in: shared/torrents/options.nix

nixfiles.torrents.group

The group to run Transmission as.

Type: string

Declared in: shared/torrents/options.nix

nixfiles.torrents.logLevel

Verbosity of the log messages.

Type: integer between 0 and 6 (both inclusive)

Default: 2

Declared in: shared/torrents/options.nix

nixfiles.torrents.openFirewall

Allow connections from TCP and UDP ports ${portRange.from} to ${portRange.to}.

Type: boolean

Default: true

Declared in: shared/torrents/options.nix

nixfiles.torrents.peerPort

Port to accept peer connections on.

Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)

Default: 50000

Declared in: shared/torrents/options.nix

nixfiles.torrents.rpcPort

Port to accept RPC connections on. Bound on 127.0.0.1.

Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)

Default: 49528

Declared in: shared/torrents/options.nix

nixfiles.torrents.stateDir

Directory to store service state in.

Type: string

Example: "/var/lib/torrents"

Declared in: shared/torrents/options.nix

nixfiles.torrents.user

The user to run Transmission as.

Type: string

Declared in: shared/torrents/options.nix

nixfiles.torrents.watchDir

Directory to monitor for new .torrent files.

Type: string

Example: "/mnt/nas/torrents/watch"

Declared in: shared/torrents/options.nix

nixfiles.umami.enable

Enable the umami service.

Type: boolean

Default: false

Declared in: shared/umami/options.nix

nixfiles.umami.environmentFile

Environment file to pass secrets into the service. This is of the form:

HASH_SALT="..."

Type: string

Declared in: shared/umami/options.nix

nixfiles.umami.port

Port (on 127.0.0.1) to expose umami on.

Type: signed integer

Default: 46489

Declared in: shared/umami/options.nix

nixfiles.umami.postgresTag

Tag to use of the postgres container image.

Type: string

Default: "16"

Declared in: shared/umami/options.nix

nixfiles.umami.umamiTag

Tag to use of the ghcr.io/umami-software/umami container image.

Type: string

Default: "postgresql-v2.9.0"

Declared in: shared/umami/options.nix