orangc's Flake Documentation Options
aagl.enableNixpkgsReleaseBranchCheck Link copied!
booleanDetermines whether to check for release version mismatch between AAGL and Nixpkgs. Using mismatched versions is likely to cause errors and unexpected behavior.
truemodules.core.boot.enable Link copied!
booleanWhether to enable boot(loader) configuration.
falsetruemodules.core.networking.enable Link copied!
booleanWhether to enable Enable networking.
falsetruemodules.core.users.autoDeclare Link copied!
booleanautomatic declaration of user accounts
truemodules.core.users.home-manager.autoDeclare Link copied!
booleanautomatic declaration of home-manager users
truemodules.core.users.home-manager.stateVersion Link copied!
stringThe state version of home-manager to use for all automatically declared users on this machine
"26.05"modules.desktop.compositors.hyprland.enable Link copied!
booleanWhether to enable Enable hyprland.
falsetruemodules.desktop.display-managers.sddm.enable Link copied!
booleanWhether to enable Enable SDDM.
falsetruemodules.desktop.display-managers.sddm.theme Link copied!
stringThe SDDM theme to use
"sddm-astronaut-theme"modules.desktop.display-managers.sddm.wallpaper Link copied!
absolute pathWallpaper to use for the SDDM Astronaut theme
<derivation misty-boat>modules.desktop.file-managers.thunar.archive-plugin.enable Link copied!
booleanWhether to enable Enable thunar's archive plugin.
falsetruemodules.desktop.file-managers.thunar.enable Link copied!
booleanWhether to enable Enable thunar.
falsetruemodules.desktop.fonts.enable Link copied!
booleanWhether to enable Enable fonts.
falsetruemodules.gaming.bottles.enable Link copied!
booleanWhether to enable Bottles for gaming.
falsetruemodules.gaming.heroic.enable Link copied!
booleanWhether to enable Heroic Launcher.
falsetruemodules.gaming.hoyoverse.enable Link copied!
booleanWhether to enable An Anime Game Launcher.
falsetruemodules.gaming.hoyoverse.genshin.enable Link copied!
booleanWhether to enable Genshin Impact.
falsetruemodules.gaming.hoyoverse.honkai.enable Link copied!
booleanWhether to enable Honkai Impact.
falsetruemodules.gaming.hoyoverse.zzz.enable Link copied!
booleanWhether to enable Zenless Zone Zero.
falsetruemodules.gaming.lutris.enable Link copied!
booleanWhether to enable Lutris for gaming.
falsetruemodules.gaming.minecraft.enable Link copied!
booleanWhether to enable PrismLauncher for Minecraft.
falsetruemodules.gaming.minecraft.labymod.enable Link copied!
booleanWhether to enable Labymod Launcher for Minecraft.
falsetruemodules.gaming.minecraft.modrinth.enable Link copied!
booleanWhether to enable Modrinth Launcher for Minecraft.
falsetruemodules.gaming.osu.enable Link copied!
booleanWhether to enable Osu!.
falsetruemodules.gaming.steam.enable Link copied!
booleanWhether to enable Steam.
falsetruemodules.gaming.wine.enable Link copied!
booleanWhether to enable Wine and associated packages for gaming.
falsetruemodules.hardware.bluetooth.enable Link copied!
booleanWhether to enable Enable bluetooth.
falsetruemodules.hardware.btrfs.enable Link copied!
booleanWhether to enable Enable btrfs autoscrub.
falsetruemodules.hardware.drivers.amd.enable Link copied!
booleanWhether to enable Enable AMD Drivers.
falsetruemodules.hardware.drivers.intel.enable Link copied!
booleanWhether to enable Enable Intel Graphics Drivers.
falsetruemodules.hardware.drivers.nvidia.enable Link copied!
booleanWhether to enable Enable Nvidia Drivers.
falsetruemodules.hardware.printing.enable Link copied!
booleanWhether to enable Enable printing.
falsetruemodules.hardware.sound.enable Link copied!
booleanWhether to enable sound with pipewire.
falsetruemodules.programs.appimages.enable Link copied!
booleanWhether to enable Enable AppImages.
falsetruemodules.programs.syncthing.enable Link copied!
booleanWhether to enable Syncthing folder syncing.
falsetruemodules.programs.syncthing.exampleOption Link copied!
stringAn example option
"example"modules.security.restic.enable Link copied!
booleanWhether to enable Enable restic backups.
falsetruemodules.security.restic.keepLast Link copied!
signed integerNumber of snapshots (of backups) to keep
5modules.security.restic.paths Link copied!
list of stringPaths to files/folders to backup
[ ]modules.security.restic.repository Link copied!
stringLocation of the restic repository to backup to
"/mnt/backup"modules.security.sops.enable Link copied!
booleanWhether to enable Enable sops-nix secret management.
falsetruemodules.security.sops.secrets Link copied!
attribute set of (submodule)Alias of sops.secrets.
modules.security.sops.secrets.<name>.format Link copied!
one of "yaml", "json", "binary", "dotenv", "ini"File format used to decrypt the sops secret. Binary files are written to the target file as is.
"yaml"modules.security.sops.secrets.<name>.gid Link copied!
null or signed integerGID of the file, only applied when group is null. The GID will be applied even if the corresponding group doesn't exist.
0modules.security.sops.secrets.<name>.group Link copied!
null or stringGroup of the file. Can only be set if gid is 0.
{option}`config.users.users.${owner}.group`modules.security.sops.secrets.<name>.key Link copied!
stringKey used to lookup in the sops file. No tested data structures are supported right now. This option is ignored if format is binary. "" means whole file.
"‹name›"modules.security.sops.secrets.<name>.mode Link copied!
stringPermissions mode of the in octal.
"0400"modules.security.sops.secrets.<name>.name Link copied!
stringName of the file used in /run/secrets
"‹name›"modules.security.sops.secrets.<name>.neededForUsers Link copied!
booleanEnabling this option causes the secret to be decrypted before users and groups are created. This can be used to retrieve user's passwords from sops-nix. Setting this option moves the secret to /run/secrets-for-users and disallows setting owner and group to anything else than root.
falsemodules.security.sops.secrets.<name>.owner Link copied!
null or stringUser of the file. Can only be set if uid is 0.
nullmodules.security.sops.secrets.<name>.path Link copied!
stringPath where secrets are symlinked to. If the default is kept no symlink is created.
"/run/secrets-for-users/$name when neededForUsers is set, /run/secrets/$name when otherwise."modules.security.sops.secrets.<name>.reloadUnits Link copied!
list of stringNames of units that should be reloaded when this secret changes. This works the same way as <xref linkend="opt-systemd.services.name.reloadTriggers" />.
[ ][
"sshd.service"
]modules.security.sops.secrets.<name>.restartUnits Link copied!
list of stringNames of units that should be restarted when this secret changes. This works the same way as <xref linkend="opt-systemd.services.name.restartTriggers" />.
[ ][
"sshd.service"
]modules.security.sops.secrets.<name>.sopsFile Link copied!
absolute pathSops file the secret is loaded from.
${config.sops.defaultSopsFile}modules.security.sops.secrets.<name>.sopsFileHash Link copied!
stringHash of the sops file, useful in <xref linkend="opt-systemd.services.name.restartTriggers" />.
modules.security.sops.secrets.<name>.uid Link copied!
null or signed integerUID of the file, only applied when owner is null. The UID will be applied even if the corresponding user doesn't exist.
0modules.services.databases.couchdb.enable Link copied!
booleanWhether to enable CouchDB Server.
falsetruemodules.services.databases.postgresql.databases Link copied!
list of stringNames of database to ensure exist in PostgreSQL.
[ ]modules.services.databases.postgresql.enable Link copied!
booleanWhether to enable Enable postgresql.
falsetruemodules.services.databases.postgresql.port Link copied!
16 bit unsigned integer; between 0 and 65535 (both inclusive)The port for postgresql to be hosted at
5432modules.services.databases.postgresql.users Link copied!
list of stringNames of users to ensure exist in PostgreSQL.
[ ]modules.services.files.copyparty.autoConfiguredServiceInfra Link copied!
booleanWhether Caddy, Tailscale, Cloudflared, and other infrastructure are able to automatically configure this service
truemodules.services.files.copyparty.cloudflared.enable Link copied!
booleanWhether to enable Cloudflare Tunnelling for Copyparty.
falsetruemodules.services.files.copyparty.enable Link copied!
booleanWhether to enable Copyparty.
falsetruemodules.services.files.copyparty.glance.enable Link copied!
booleanWhether to enable visibility for Copyparty in the Glance dashboard.
falsetruemodules.services.files.copyparty.glance.icon Link copied!
stringThe icon for Copyparty to be displayed in the Glance dashboard.
"sh:copyparty"modules.services.files.copyparty.internalTailscaleDomain.enable Link copied!
booleanWhether to enable an internal tailnet domain for Copyparty at files.cormorant-emperor.ts.net.
falsetruemodules.services.files.copyparty.name Link copied!
stringSet the name of the service with correct capitalisation if necessary for other modules such as modules.glance to access.
"Copyparty"modules.services.files.copyparty.ntfyChecking.enable Link copied!
booleanWhether to enable Ntfy sending notifications when this Copyparty goes down.
falsetruemodules.services.files.copyparty.port Link copied!
16 bit unsigned integer; between 0 and 65535 (both inclusive)The port at which Copyparty is hosted at.
8800modules.services.files.copyparty.subdomain Link copied!
stringThe domain at which Copyparty is hosted at.
"files"modules.services.files.cryptpad.autoConfiguredServiceInfra Link copied!
booleanWhether Caddy, Tailscale, Cloudflared, and other infrastructure are able to automatically configure this service
truemodules.services.files.cryptpad.cloudflared.enable Link copied!
booleanWhether to enable Cloudflare Tunnelling for Cryptpad.
falsetruemodules.services.files.cryptpad.enable Link copied!
booleanWhether to enable Cryptpad.
falsetruemodules.services.files.cryptpad.glance.enable Link copied!
booleanWhether to enable visibility for Cryptpad in the Glance dashboard.
falsetruemodules.services.files.cryptpad.glance.icon Link copied!
stringThe icon for Cryptpad to be displayed in the Glance dashboard.
"sh:cryptpad"modules.services.files.cryptpad.internalTailscaleDomain.enable Link copied!
booleanWhether to enable an internal tailnet domain for Cryptpad at pad.cormorant-emperor.ts.net.
falsetruemodules.services.files.cryptpad.name Link copied!
stringSet the name of the service with correct capitalisation if necessary for other modules such as modules.glance to access.
"Cryptpad"modules.services.files.cryptpad.ntfyChecking.enable Link copied!
booleanWhether to enable Ntfy sending notifications when this Cryptpad goes down.
falsetruemodules.services.files.cryptpad.port Link copied!
16 bit unsigned integer; between 0 and 65535 (both inclusive)The port at which Cryptpad is hosted at.
8800modules.services.files.cryptpad.subdomain Link copied!
stringThe domain at which Cryptpad is hosted at.
"pad"modules.services.files.microbin.autoConfiguredServiceInfra Link copied!
booleanWhether Caddy, Tailscale, Cloudflared, and other infrastructure are able to automatically configure this service
truemodules.services.files.microbin.cloudflared.enable Link copied!
booleanWhether to enable Cloudflare Tunnelling for Microbin.
falsetruemodules.services.files.microbin.enable Link copied!
booleanWhether to enable Microbin.
falsetruemodules.services.files.microbin.glance.enable Link copied!
booleanWhether to enable visibility for Microbin in the Glance dashboard.
falsetruemodules.services.files.microbin.glance.icon Link copied!
stringThe icon for Microbin to be displayed in the Glance dashboard.
"sh:microbin"modules.services.files.microbin.internalTailscaleDomain.enable Link copied!
booleanWhether to enable an internal tailnet domain for Microbin at bin.cormorant-emperor.ts.net.
falsetruemodules.services.files.microbin.name Link copied!
stringSet the name of the service with correct capitalisation if necessary for other modules such as modules.glance to access.
"Microbin"modules.services.files.microbin.ntfyChecking.enable Link copied!
booleanWhether to enable Ntfy sending notifications when this Microbin goes down.
falsetruemodules.services.files.microbin.port Link copied!
16 bit unsigned integer; between 0 and 65535 (both inclusive)The port at which Microbin is hosted at.
8800modules.services.files.microbin.subdomain Link copied!
stringThe domain at which Microbin is hosted at.
"bin"modules.services.files.wastebin.autoConfiguredServiceInfra Link copied!
booleanWhether Caddy, Tailscale, Cloudflared, and other infrastructure are able to automatically configure this service
truemodules.services.files.wastebin.cloudflared.enable Link copied!
booleanWhether to enable Cloudflare Tunnelling for Wastebin.
falsetruemodules.services.files.wastebin.enable Link copied!
booleanWhether to enable Wastebin.
falsetruemodules.services.files.wastebin.glance.enable Link copied!
booleanWhether to enable visibility for Wastebin in the Glance dashboard.
falsetruemodules.services.files.wastebin.glance.icon Link copied!
stringThe icon for Wastebin to be displayed in the Glance dashboard.
"sh:wastebin"modules.services.files.wastebin.internalTailscaleDomain.enable Link copied!
booleanWhether to enable an internal tailnet domain for Wastebin at bin.cormorant-emperor.ts.net.
falsetruemodules.services.files.wastebin.name Link copied!
stringSet the name of the service with correct capitalisation if necessary for other modules such as modules.glance to access.
"Wastebin"modules.services.files.wastebin.ntfyChecking.enable Link copied!
booleanWhether to enable Ntfy sending notifications when this Wastebin goes down.
falsetruemodules.services.files.wastebin.port Link copied!
16 bit unsigned integer; between 0 and 65535 (both inclusive)The port at which Wastebin is hosted at.
8800modules.services.files.wastebin.subdomain Link copied!
stringThe domain at which Wastebin is hosted at.
"bin"modules.services.files.zipline.autoConfiguredServiceInfra Link copied!
booleanWhether Caddy, Tailscale, Cloudflared, and other infrastructure are able to automatically configure this service
truemodules.services.files.zipline.cloudflared.enable Link copied!
booleanWhether to enable Cloudflare Tunnelling for Zipline.
falsetruemodules.services.files.zipline.enable Link copied!
booleanWhether to enable Zipline.
falsetruemodules.services.files.zipline.glance.enable Link copied!
booleanWhether to enable visibility for Zipline in the Glance dashboard.
falsetruemodules.services.files.zipline.glance.icon Link copied!
stringThe icon for Zipline to be displayed in the Glance dashboard.
"https://cdn.jsdelivr.net/gh/selfhst/icons/png/zipline.png"modules.services.files.zipline.internalTailscaleDomain.enable Link copied!
booleanWhether to enable an internal tailnet domain for Zipline at zip.cormorant-emperor.ts.net.
falsetruemodules.services.files.zipline.name Link copied!
stringSet the name of the service with correct capitalisation if necessary for other modules such as modules.glance to access.
"Zipline"modules.services.files.zipline.ntfyChecking.enable Link copied!
booleanWhether to enable Ntfy sending notifications when this Zipline goes down.
falsetruemodules.services.files.zipline.port Link copied!
16 bit unsigned integer; between 0 and 65535 (both inclusive)The port at which Zipline is hosted at.
8800modules.services.files.zipline.subdomain Link copied!
stringThe domain at which Zipline is hosted at.
"zip"modules.services.gaming.minecraft.enable Link copied!
booleanWhether to enable Enable minecraft.
falsetruemodules.services.gaming.minecraft.juniper-s10.enable Link copied!
booleanWhether to enable Enable Juniper SMP server.
falsetruemodules.services.gaming.minecraft.juniper-s10.gamerules Link copied!
attribute setServer gamerules
{
commandBlockOutput = false;
commandModificationBlockLimit = 1000;
keepInventory = true;
}modules.services.gaming.minecraft.juniper-s10.maxRAM Link copied!
signed integerMaximum amount of RAM for Juniper to use in gigabytes
8modules.services.gaming.minecraft.juniper-s10.minRAM Link copied!
signed integerMinimum amount of RAM for Juniper to use in gigabytes
4modules.services.gaming.minecraft.juniper-s10.motd Link copied!
stringThe message displayed in the server list of the client
"Powered by NixOS!"modules.services.gaming.minecraft.juniper-s10.port Link copied!
16 bit unsigned integer; between 0 and 65535 (both inclusive)The port for Juniper to be hosted at
8800modules.services.gaming.minecraft.juniper-s11.automatic-backups.enable Link copied!
booleanWhether to enable Automatically backup and prune the server.
falsetruemodules.services.gaming.minecraft.juniper-s11.automatic-backups.frequency Link copied!
stringThe frequency of which to perform backups and prunes
"daily"modules.services.gaming.minecraft.juniper-s11.enable Link copied!
booleanWhether to enable Enable Juniper SMP server.
falsetruemodules.services.gaming.minecraft.juniper-s11.gamerules Link copied!
attribute setServer gamerules
{
commandBlockOutput = false;
commandModificationBlockLimit = 1000;
keepInventory = true;
}modules.services.gaming.minecraft.juniper-s11.maxRAM Link copied!
signed integerMaximum amount of RAM for Juniper to use in gigabytes
8modules.services.gaming.minecraft.juniper-s11.minRAM Link copied!
signed integerMinimum amount of RAM for Juniper to use in gigabytes
4modules.services.gaming.minecraft.juniper-s11.motd Link copied!
stringThe message displayed in the server list of the client
"Powered by NixOS!"modules.services.gaming.minecraft.juniper-s11.port Link copied!
16 bit unsigned integer; between 0 and 65535 (both inclusive)The port for Juniper to be hosted at
8800modules.services.infrastructure.caddy.enable Link copied!
booleanWhether to enable Enable Caddy.
falsetruemodules.services.infrastructure.caddy.virtualHosts Link copied!
attribute set of (open submodule of (attribute set))Collect virtual host entries from other modules
{ }modules.services.infrastructure.cloudflared.enable Link copied!
booleanWhether to enable Enable Cloudflared.
falsetruemodules.services.infrastructure.cloudflared.ingress Link copied!
attribute set of stringCollect ingress entries from other modules
{ }modules.services.infrastructure.duckdns.enable Link copied!
booleanWhether to enable Enable duckdns.
falsetruemodules.services.infrastructure.tailscale.enable Link copied!
booleanWhether to enable Enable tailscale.
falsetruemodules.services.infrastructure.tailscale.name Link copied!
stringThis option has no description.
"Tailscale"modules.services.infrastructure.technitium.enable Link copied!
booleanWhether to enable Enable technitium.
falsetruemodules.services.media.immich.autoConfiguredServiceInfra Link copied!
booleanWhether Caddy, Tailscale, Cloudflared, and other infrastructure are able to automatically configure this service
truemodules.services.media.immich.cloudflared.enable Link copied!
booleanWhether to enable Cloudflare Tunnelling for Immich.
falsetruemodules.services.media.immich.enable Link copied!
booleanWhether to enable Immich.
falsetruemodules.services.media.immich.glance.enable Link copied!
booleanWhether to enable visibility for Immich in the Glance dashboard.
falsetruemodules.services.media.immich.glance.icon Link copied!
stringThe icon for Immich to be displayed in the Glance dashboard.
"sh:immich"modules.services.media.immich.internalTailscaleDomain.enable Link copied!
booleanWhether to enable an internal tailnet domain for Immich at media.cormorant-emperor.ts.net.
falsetruemodules.services.media.immich.name Link copied!
stringSet the name of the service with correct capitalisation if necessary for other modules such as modules.glance to access.
"Immich"modules.services.media.immich.ntfyChecking.enable Link copied!
booleanWhether to enable Ntfy sending notifications when this Immich goes down.
falsetruemodules.services.media.immich.port Link copied!
16 bit unsigned integer; between 0 and 65535 (both inclusive)The port at which Immich is hosted at.
8800modules.services.media.immich.subdomain Link copied!
stringThe domain at which Immich is hosted at.
"media"modules.services.media.jellyfin.autoConfiguredServiceInfra Link copied!
booleanWhether Caddy, Tailscale, Cloudflared, and other infrastructure are able to automatically configure this service
truemodules.services.media.jellyfin.cloudflared.enable Link copied!
booleanWhether to enable Cloudflare Tunnelling for Jellyfin.
falsetruemodules.services.media.jellyfin.enable Link copied!
booleanWhether to enable Jellyfin.
falsetruemodules.services.media.jellyfin.glance.enable Link copied!
booleanWhether to enable visibility for Jellyfin in the Glance dashboard.
falsetruemodules.services.media.jellyfin.glance.icon Link copied!
stringThe icon for Jellyfin to be displayed in the Glance dashboard.
"sh:jellyfin"modules.services.media.jellyfin.internalTailscaleDomain.enable Link copied!
booleanWhether to enable an internal tailnet domain for Jellyfin at jf.cormorant-emperor.ts.net.
falsetruemodules.services.media.jellyfin.name Link copied!
stringSet the name of the service with correct capitalisation if necessary for other modules such as modules.glance to access.
"Jellyfin"modules.services.media.jellyfin.ntfyChecking.enable Link copied!
booleanWhether to enable Ntfy sending notifications when this Jellyfin goes down.
falsetruemodules.services.media.jellyfin.port Link copied!
16 bit unsigned integer; between 0 and 65535 (both inclusive)The port at which Jellyfin is hosted at.
8800modules.services.media.jellyfin.subdomain Link copied!
stringThe domain at which Jellyfin is hosted at.
"jf"modules.services.media.kavita.autoConfiguredServiceInfra Link copied!
booleanWhether Caddy, Tailscale, Cloudflared, and other infrastructure are able to automatically configure this service
truemodules.services.media.kavita.cloudflared.enable Link copied!
booleanWhether to enable Cloudflare Tunnelling for Kavita.
falsetruemodules.services.media.kavita.enable Link copied!
booleanWhether to enable Kavita.
falsetruemodules.services.media.kavita.glance.enable Link copied!
booleanWhether to enable visibility for Kavita in the Glance dashboard.
falsetruemodules.services.media.kavita.glance.icon Link copied!
stringThe icon for Kavita to be displayed in the Glance dashboard.
"sh:kavita"modules.services.media.kavita.internalTailscaleDomain.enable Link copied!
booleanWhether to enable an internal tailnet domain for Kavita at read.cormorant-emperor.ts.net.
falsetruemodules.services.media.kavita.name Link copied!
stringSet the name of the service with correct capitalisation if necessary for other modules such as modules.glance to access.
"Kavita"modules.services.media.kavita.ntfyChecking.enable Link copied!
booleanWhether to enable Ntfy sending notifications when this Kavita goes down.
falsetruemodules.services.media.kavita.port Link copied!
16 bit unsigned integer; between 0 and 65535 (both inclusive)The port at which Kavita is hosted at.
8800modules.services.media.kavita.subdomain Link copied!
stringThe domain at which Kavita is hosted at.
"read"modules.services.media.linkwarden.autoConfiguredServiceInfra Link copied!
booleanWhether Caddy, Tailscale, Cloudflared, and other infrastructure are able to automatically configure this service
truemodules.services.media.linkwarden.cloudflared.enable Link copied!
booleanWhether to enable Cloudflare Tunnelling for Linkwarden.
falsetruemodules.services.media.linkwarden.enable Link copied!
booleanWhether to enable Linkwarden.
falsetruemodules.services.media.linkwarden.glance.enable Link copied!
booleanWhether to enable visibility for Linkwarden in the Glance dashboard.
falsetruemodules.services.media.linkwarden.glance.icon Link copied!
stringThe icon for Linkwarden to be displayed in the Glance dashboard.
"sh:linkwarden"modules.services.media.linkwarden.internalTailscaleDomain.enable Link copied!
booleanWhether to enable an internal tailnet domain for Linkwarden at links.cormorant-emperor.ts.net.
falsetruemodules.services.media.linkwarden.name Link copied!
stringSet the name of the service with correct capitalisation if necessary for other modules such as modules.glance to access.
"Linkwarden"modules.services.media.linkwarden.ntfyChecking.enable Link copied!
booleanWhether to enable Ntfy sending notifications when this Linkwarden goes down.
falsetruemodules.services.media.linkwarden.port Link copied!
16 bit unsigned integer; between 0 and 65535 (both inclusive)The port at which Linkwarden is hosted at.
8800modules.services.media.linkwarden.subdomain Link copied!
stringThe domain at which Linkwarden is hosted at.
"links"modules.services.media.nixflix.enable Link copied!
booleanWhether to enable Enable nixflix.
falsetruemodules.services.media.nixflix.port Link copied!
16 bit unsigned integer; between 0 and 65535 (both inclusive)The port 'range' to use. Services in nixflix will use a port starting from here and adding +1
4520modules.services.misc.matrix-synapse.autoConfiguredServiceInfra Link copied!
booleanWhether Caddy, Tailscale, Cloudflared, and other infrastructure are able to automatically configure this service
truemodules.services.misc.matrix-synapse.cloudflared.enable Link copied!
booleanWhether to enable Cloudflare Tunnelling for Matrix Synapse.
falsetruemodules.services.misc.matrix-synapse.enable Link copied!
booleanWhether to enable Matrix Synapse.
falsetruemodules.services.misc.matrix-synapse.glance.enable Link copied!
booleanWhether to enable visibility for Matrix Synapse in the Glance dashboard.
falsetruemodules.services.misc.matrix-synapse.glance.icon Link copied!
stringThe icon for Matrix Synapse to be displayed in the Glance dashboard.
"auto-invert sh:matrix"modules.services.misc.matrix-synapse.internalTailscaleDomain.enable Link copied!
booleanWhether to enable an internal tailnet domain for Matrix Synapse at matrix.cormorant-emperor.ts.net.
falsetruemodules.services.misc.matrix-synapse.name Link copied!
stringSet the name of the service with correct capitalisation if necessary for other modules such as modules.glance to access.
"Matrix Synapse"modules.services.misc.matrix-synapse.ntfyChecking.enable Link copied!
booleanWhether to enable Ntfy sending notifications when this Matrix Synapse goes down.
falsetruemodules.services.misc.matrix-synapse.port Link copied!
16 bit unsigned integer; between 0 and 65535 (both inclusive)The port at which Matrix Synapse is hosted at.
8800modules.services.misc.matrix-synapse.serverName Link copied!
stringMatrix server name (used in MXIDs)
"orangc.net"modules.services.misc.matrix-synapse.subdomain Link copied!
stringThe domain at which Matrix Synapse is hosted at.
"matrix"modules.services.misc.miniflux.autoConfiguredServiceInfra Link copied!
booleanWhether Caddy, Tailscale, Cloudflared, and other infrastructure are able to automatically configure this service
truemodules.services.misc.miniflux.cloudflared.enable Link copied!
booleanWhether to enable Cloudflare Tunnelling for Miniflux.
falsetruemodules.services.misc.miniflux.enable Link copied!
booleanWhether to enable Miniflux.
falsetruemodules.services.misc.miniflux.glance.enable Link copied!
booleanWhether to enable visibility for Miniflux in the Glance dashboard.
falsetruemodules.services.misc.miniflux.glance.icon Link copied!
stringThe icon for Miniflux to be displayed in the Glance dashboard.
"auto-invert sh:miniflux"modules.services.misc.miniflux.internalTailscaleDomain.enable Link copied!
booleanWhether to enable an internal tailnet domain for Miniflux at feed.cormorant-emperor.ts.net.
falsetruemodules.services.misc.miniflux.name Link copied!
stringSet the name of the service with correct capitalisation if necessary for other modules such as modules.glance to access.
"Miniflux"modules.services.misc.miniflux.ntfyChecking.enable Link copied!
booleanWhether to enable Ntfy sending notifications when this Miniflux goes down.
falsetruemodules.services.misc.miniflux.port Link copied!
16 bit unsigned integer; between 0 and 65535 (both inclusive)The port at which Miniflux is hosted at.
8800modules.services.misc.miniflux.subdomain Link copied!
stringThe domain at which Miniflux is hosted at.
"feed"modules.services.misc.moodle.autoConfiguredServiceInfra Link copied!
booleanWhether Caddy, Tailscale, Cloudflared, and other infrastructure are able to automatically configure this service
truemodules.services.misc.moodle.cloudflared.enable Link copied!
booleanWhether to enable Cloudflare Tunnelling for Moodle.
falsetruemodules.services.misc.moodle.enable Link copied!
booleanWhether to enable Moodle.
falsetruemodules.services.misc.moodle.glance.enable Link copied!
booleanWhether to enable visibility for Moodle in the Glance dashboard.
falsetruemodules.services.misc.moodle.glance.icon Link copied!
stringThe icon for Moodle to be displayed in the Glance dashboard.
"sh:moodle"modules.services.misc.moodle.internalTailscaleDomain.enable Link copied!
booleanWhether to enable an internal tailnet domain for Moodle at Moodle.cormorant-emperor.ts.net.
falsetruemodules.services.misc.moodle.name Link copied!
stringSet the name of the service with correct capitalisation if necessary for other modules such as modules.glance to access.
"Moodle"modules.services.misc.moodle.ntfyChecking.enable Link copied!
booleanWhether to enable Ntfy sending notifications when this Moodle goes down.
falsetruemodules.services.misc.moodle.port Link copied!
16 bit unsigned integer; between 0 and 65535 (both inclusive)The port at which Moodle is hosted at.
8800modules.services.misc.moodle.subdomain Link copied!
stringThe domain at which Moodle is hosted at.
"moodle"modules.services.misc.takina.enable Link copied!
booleanWhether to enable Takina Discord bot.
falsetruemodules.services.misc.vaultwarden.autoConfiguredServiceInfra Link copied!
booleanWhether Caddy, Tailscale, Cloudflared, and other infrastructure are able to automatically configure this service
truemodules.services.misc.vaultwarden.cloudflared.enable Link copied!
booleanWhether to enable Cloudflare Tunnelling for Vaultwarden.
falsetruemodules.services.misc.vaultwarden.enable Link copied!
booleanWhether to enable Vaultwarden.
falsetruemodules.services.misc.vaultwarden.glance.enable Link copied!
booleanWhether to enable visibility for Vaultwarden in the Glance dashboard.
falsetruemodules.services.misc.vaultwarden.glance.icon Link copied!
stringThe icon for Vaultwarden to be displayed in the Glance dashboard.
"auto-invert sh:vaultwarden"modules.services.misc.vaultwarden.internalTailscaleDomain.enable Link copied!
booleanWhether to enable an internal tailnet domain for Vaultwarden at vault.cormorant-emperor.ts.net.
falsetruemodules.services.misc.vaultwarden.name Link copied!
stringSet the name of the service with correct capitalisation if necessary for other modules such as modules.glance to access.
"Vaultwarden"modules.services.misc.vaultwarden.ntfyChecking.enable Link copied!
booleanWhether to enable Ntfy sending notifications when this Vaultwarden goes down.
falsetruemodules.services.misc.vaultwarden.port Link copied!
16 bit unsigned integer; between 0 and 65535 (both inclusive)The port at which Vaultwarden is hosted at.
8800modules.services.misc.vaultwarden.subdomain Link copied!
stringThe domain at which Vaultwarden is hosted at.
"vault"modules.services.monitoring.changedetection.autoConfiguredServiceInfra Link copied!
booleanWhether Caddy, Tailscale, Cloudflared, and other infrastructure are able to automatically configure this service
truemodules.services.monitoring.changedetection.cloudflared.enable Link copied!
booleanWhether to enable Cloudflare Tunnelling for ChangeDetection.
falsetruemodules.services.monitoring.changedetection.enable Link copied!
booleanWhether to enable ChangeDetection.
falsetruemodules.services.monitoring.changedetection.glance.enable Link copied!
booleanWhether to enable visibility for ChangeDetection in the Glance dashboard.
falsetruemodules.services.monitoring.changedetection.glance.icon Link copied!
stringThe icon for ChangeDetection to be displayed in the Glance dashboard.
"sh:changedetection"modules.services.monitoring.changedetection.internalTailscaleDomain.enable Link copied!
booleanWhether to enable an internal tailnet domain for ChangeDetection at detect.cormorant-emperor.ts.net.
falsetruemodules.services.monitoring.changedetection.name Link copied!
stringSet the name of the service with correct capitalisation if necessary for other modules such as modules.glance to access.
"ChangeDetection"modules.services.monitoring.changedetection.ntfyChecking.enable Link copied!
booleanWhether to enable Ntfy sending notifications when this ChangeDetection goes down.
falsetruemodules.services.monitoring.changedetection.port Link copied!
16 bit unsigned integer; between 0 and 65535 (both inclusive)The port at which ChangeDetection is hosted at.
8800modules.services.monitoring.changedetection.subdomain Link copied!
stringThe domain at which ChangeDetection is hosted at.
"detect"modules.services.monitoring.glance.autoConfiguredServiceInfra Link copied!
booleanWhether Caddy, Tailscale, Cloudflared, and other infrastructure are able to automatically configure this service
truemodules.services.monitoring.glance.cloudflared.enable Link copied!
booleanWhether to enable Cloudflare Tunnelling for Glance.
falsetruemodules.services.monitoring.glance.enable Link copied!
booleanWhether to enable Glance.
falsetruemodules.services.monitoring.glance.glance.enable Link copied!
booleanWhether to enable visibility for Glance in the Glance dashboard.
falsetruemodules.services.monitoring.glance.glance.icon Link copied!
stringThe icon for Glance to be displayed in the Glance dashboard.
"sh:glance"modules.services.monitoring.glance.internalTailscaleDomain.enable Link copied!
booleanWhether to enable an internal tailnet domain for Glance at Glance.cormorant-emperor.ts.net.
falsetruemodules.services.monitoring.glance.monitoredSites Link copied!
list of (attribute set)Collect services definitions from different modules
[ ]modules.services.monitoring.glance.name Link copied!
stringSet the name of the service with correct capitalisation if necessary for other modules such as modules.glance to access.
"Glance"modules.services.monitoring.glance.ntfyChecking.enable Link copied!
booleanWhether to enable Ntfy sending notifications when this Glance goes down.
falsetruemodules.services.monitoring.glance.port Link copied!
16 bit unsigned integer; between 0 and 65535 (both inclusive)The port at which Glance is hosted at.
8800modules.services.monitoring.glance.subdomain Link copied!
stringThe domain at which Glance is hosted at.
"glance"modules.services.monitoring.grafana.autoConfiguredServiceInfra Link copied!
booleanWhether Caddy, Tailscale, Cloudflared, and other infrastructure are able to automatically configure this service
truemodules.services.monitoring.grafana.cloudflared.enable Link copied!
booleanWhether to enable Cloudflare Tunnelling for Grafana.
falsetruemodules.services.monitoring.grafana.enable Link copied!
booleanWhether to enable Grafana.
falsetruemodules.services.monitoring.grafana.glance.enable Link copied!
booleanWhether to enable visibility for Grafana in the Glance dashboard.
falsetruemodules.services.monitoring.grafana.glance.icon Link copied!
stringThe icon for Grafana to be displayed in the Glance dashboard.
"sh:grafana"modules.services.monitoring.grafana.internalTailscaleDomain.enable Link copied!
booleanWhether to enable an internal tailnet domain for Grafana at Grafana.cormorant-emperor.ts.net.
falsetruemodules.services.monitoring.grafana.name Link copied!
stringSet the name of the service with correct capitalisation if necessary for other modules such as modules.glance to access.
"Grafana"modules.services.monitoring.grafana.ntfyChecking.enable Link copied!
booleanWhether to enable Ntfy sending notifications when this Grafana goes down.
falsetruemodules.services.monitoring.grafana.port Link copied!
16 bit unsigned integer; between 0 and 65535 (both inclusive)The port at which Grafana is hosted at.
8800modules.services.monitoring.grafana.subdomain Link copied!
stringThe domain at which Grafana is hosted at.
"grafana"modules.services.monitoring.ntfy.acl Link copied!
list of stringAccess control rules for individual topics.
[ ][
"user:topic:perm"
"orangc:food:write"
"reimu:touhou:read"
"cirno:frogs:read-write"
]modules.services.monitoring.ntfy.autoConfiguredServiceInfra Link copied!
booleanWhether Caddy, Tailscale, Cloudflared, and other infrastructure are able to automatically configure this service
truemodules.services.monitoring.ntfy.cloudflared.enable Link copied!
booleanWhether to enable Cloudflare Tunnelling for Ntfy.
falsetruemodules.services.monitoring.ntfy.enable Link copied!
booleanWhether to enable Ntfy.
falsetruemodules.services.monitoring.ntfy.glance.enable Link copied!
booleanWhether to enable visibility for Ntfy in the Glance dashboard.
falsetruemodules.services.monitoring.ntfy.glance.icon Link copied!
stringThe icon for Ntfy to be displayed in the Glance dashboard.
"sh:ntfy"modules.services.monitoring.ntfy.internalTailscaleDomain.enable Link copied!
booleanWhether to enable an internal tailnet domain for Ntfy at Ntfy.cormorant-emperor.ts.net.
falsetruemodules.services.monitoring.ntfy.name Link copied!
stringSet the name of the service with correct capitalisation if necessary for other modules such as modules.glance to access.
"Ntfy"modules.services.monitoring.ntfy.ntfyChecking.enable Link copied!
booleanWhether to enable Ntfy sending notifications when this Ntfy goes down.
falsetruemodules.services.monitoring.ntfy.port Link copied!
16 bit unsigned integer; between 0 and 65535 (both inclusive)The port at which Ntfy is hosted at.
8800modules.services.monitoring.ntfy.scripts.services.enable Link copied!
booleanWhether to enable Enable services script for Ntfy.
falsetruemodules.services.monitoring.ntfy.scripts.services.topic Link copied!
stringThis option has no description.
"services"modules.services.monitoring.ntfy.subdomain Link copied!
stringThe domain at which Ntfy is hosted at.
"ntfy"modules.services.monitoring.scrutiny.autoConfiguredServiceInfra Link copied!
booleanWhether Caddy, Tailscale, Cloudflared, and other infrastructure are able to automatically configure this service
truemodules.services.monitoring.scrutiny.cloudflared.enable Link copied!
booleanWhether to enable Cloudflare Tunnelling for Scrutiny.
falsetruemodules.services.monitoring.scrutiny.enable Link copied!
booleanWhether to enable Scrutiny.
falsetruemodules.services.monitoring.scrutiny.glance.enable Link copied!
booleanWhether to enable visibility for Scrutiny in the Glance dashboard.
falsetruemodules.services.monitoring.scrutiny.glance.icon Link copied!
stringThe icon for Scrutiny to be displayed in the Glance dashboard.
"auto-invert sh:scrutiny"modules.services.monitoring.scrutiny.internalTailscaleDomain.enable Link copied!
booleanWhether to enable an internal tailnet domain for Scrutiny at Scrutiny.cormorant-emperor.ts.net.
falsetruemodules.services.monitoring.scrutiny.name Link copied!
stringSet the name of the service with correct capitalisation if necessary for other modules such as modules.glance to access.
"Scrutiny"modules.services.monitoring.scrutiny.ntfyChecking.enable Link copied!
booleanWhether to enable Ntfy sending notifications when this Scrutiny goes down.
falsetruemodules.services.monitoring.scrutiny.port Link copied!
16 bit unsigned integer; between 0 and 65535 (both inclusive)The port at which Scrutiny is hosted at.
8800modules.services.monitoring.scrutiny.subdomain Link copied!
stringThe domain at which Scrutiny is hosted at.
"scrutiny"modules.services.monitoring.speedtest.autoConfiguredServiceInfra Link copied!
booleanWhether Caddy, Tailscale, Cloudflared, and other infrastructure are able to automatically configure this service
truemodules.services.monitoring.speedtest.cloudflared.enable Link copied!
booleanWhether to enable Cloudflare Tunnelling for Speedtest Tracker.
falsetruemodules.services.monitoring.speedtest.enable Link copied!
booleanWhether to enable Speedtest Tracker.
falsetruemodules.services.monitoring.speedtest.glance.enable Link copied!
booleanWhether to enable visibility for Speedtest Tracker in the Glance dashboard.
falsetruemodules.services.monitoring.speedtest.glance.icon Link copied!
stringThe icon for Speedtest Tracker to be displayed in the Glance dashboard.
"sh:speedtest-tracker"modules.services.monitoring.speedtest.internalTailscaleDomain.enable Link copied!
booleanWhether to enable an internal tailnet domain for Speedtest Tracker at speedtest.cormorant-emperor.ts.net.
falsetruemodules.services.monitoring.speedtest.name Link copied!
stringSet the name of the service with correct capitalisation if necessary for other modules such as modules.glance to access.
"Speedtest Tracker"modules.services.monitoring.speedtest.ntfyChecking.enable Link copied!
booleanWhether to enable Ntfy sending notifications when this Speedtest Tracker goes down.
falsetruemodules.services.monitoring.speedtest.port Link copied!
16 bit unsigned integer; between 0 and 65535 (both inclusive)The port at which Speedtest Tracker is hosted at.
8800modules.services.monitoring.speedtest.subdomain Link copied!
stringThe domain at which Speedtest Tracker is hosted at.
"speedtest"modules.services.monitoring.umami.autoConfiguredServiceInfra Link copied!
booleanWhether Caddy, Tailscale, Cloudflared, and other infrastructure are able to automatically configure this service
truemodules.services.monitoring.umami.cloudflared.enable Link copied!
booleanWhether to enable Cloudflare Tunnelling for Umami.
falsetruemodules.services.monitoring.umami.enable Link copied!
booleanWhether to enable Umami.
falsetruemodules.services.monitoring.umami.glance.enable Link copied!
booleanWhether to enable visibility for Umami in the Glance dashboard.
falsetruemodules.services.monitoring.umami.glance.icon Link copied!
stringThe icon for Umami to be displayed in the Glance dashboard.
"auto-invert sh:umami"modules.services.monitoring.umami.internalTailscaleDomain.enable Link copied!
booleanWhether to enable an internal tailnet domain for Umami at Umami.cormorant-emperor.ts.net.
falsetruemodules.services.monitoring.umami.name Link copied!
stringSet the name of the service with correct capitalisation if necessary for other modules such as modules.glance to access.
"Umami"modules.services.monitoring.umami.ntfyChecking.enable Link copied!
booleanWhether to enable Ntfy sending notifications when this Umami goes down.
falsetruemodules.services.monitoring.umami.port Link copied!
16 bit unsigned integer; between 0 and 65535 (both inclusive)The port at which Umami is hosted at.
8800modules.services.monitoring.umami.subdomain Link copied!
stringThe domain at which Umami is hosted at.
"umami"modules.services.monitoring.wakapi.autoConfiguredServiceInfra Link copied!
booleanWhether Caddy, Tailscale, Cloudflared, and other infrastructure are able to automatically configure this service
truemodules.services.monitoring.wakapi.cloudflared.enable Link copied!
booleanWhether to enable Cloudflare Tunnelling for WakAPI.
falsetruemodules.services.monitoring.wakapi.enable Link copied!
booleanWhether to enable WakAPI.
falsetruemodules.services.monitoring.wakapi.glance.enable Link copied!
booleanWhether to enable visibility for WakAPI in the Glance dashboard.
falsetruemodules.services.monitoring.wakapi.glance.icon Link copied!
stringThe icon for WakAPI to be displayed in the Glance dashboard.
"sh:wakapi"modules.services.monitoring.wakapi.internalTailscaleDomain.enable Link copied!
booleanWhether to enable an internal tailnet domain for WakAPI at waka.cormorant-emperor.ts.net.
falsetruemodules.services.monitoring.wakapi.name Link copied!
stringSet the name of the service with correct capitalisation if necessary for other modules such as modules.glance to access.
"WakAPI"modules.services.monitoring.wakapi.ntfyChecking.enable Link copied!
booleanWhether to enable Ntfy sending notifications when this WakAPI goes down.
falsetruemodules.services.monitoring.wakapi.port Link copied!
16 bit unsigned integer; between 0 and 65535 (both inclusive)The port at which WakAPI is hosted at.
8800modules.services.monitoring.wakapi.subdomain Link copied!
stringThe domain at which WakAPI is hosted at.
"waka"modules.services.productivity.davis.autoConfiguredServiceInfra Link copied!
booleanWhether Caddy, Tailscale, Cloudflared, and other infrastructure are able to automatically configure this service
truemodules.services.productivity.davis.cloudflared.enable Link copied!
booleanWhether to enable Cloudflare Tunnelling for Davis.
falsetruemodules.services.productivity.davis.enable Link copied!
booleanWhether to enable Davis.
falsetruemodules.services.productivity.davis.glance.enable Link copied!
booleanWhether to enable visibility for Davis in the Glance dashboard.
falsetruemodules.services.productivity.davis.glance.icon Link copied!
stringThe icon for Davis to be displayed in the Glance dashboard.
"di:davis"modules.services.productivity.davis.internalTailscaleDomain.enable Link copied!
booleanWhether to enable an internal tailnet domain for Davis at cal.cormorant-emperor.ts.net.
falsetruemodules.services.productivity.davis.name Link copied!
stringSet the name of the service with correct capitalisation if necessary for other modules such as modules.glance to access.
"Davis"modules.services.productivity.davis.ntfyChecking.enable Link copied!
booleanWhether to enable Ntfy sending notifications when this Davis goes down.
falsetruemodules.services.productivity.davis.port Link copied!
16 bit unsigned integer; between 0 and 65535 (both inclusive)The port at which Davis is hosted at.
8800modules.services.productivity.davis.subdomain Link copied!
stringThe domain at which Davis is hosted at.
"cal"modules.services.productivity.forgejo.autoConfiguredServiceInfra Link copied!
booleanWhether Caddy, Tailscale, Cloudflared, and other infrastructure are able to automatically configure this service
truemodules.services.productivity.forgejo.cloudflared.enable Link copied!
booleanWhether to enable Cloudflare Tunnelling for Forgejo.
falsetruemodules.services.productivity.forgejo.enable Link copied!
booleanWhether to enable Forgejo.
falsetruemodules.services.productivity.forgejo.glance.enable Link copied!
booleanWhether to enable visibility for Forgejo in the Glance dashboard.
falsetruemodules.services.productivity.forgejo.glance.icon Link copied!
stringThe icon for Forgejo to be displayed in the Glance dashboard.
"sh:forgejo"modules.services.productivity.forgejo.internalTailscaleDomain.enable Link copied!
booleanWhether to enable an internal tailnet domain for Forgejo at git.cormorant-emperor.ts.net.
falsetruemodules.services.productivity.forgejo.name Link copied!
stringSet the name of the service with correct capitalisation if necessary for other modules such as modules.glance to access.
"Forgejo"modules.services.productivity.forgejo.ntfyChecking.enable Link copied!
booleanWhether to enable Ntfy sending notifications when this Forgejo goes down.
falsetruemodules.services.productivity.forgejo.port Link copied!
16 bit unsigned integer; between 0 and 65535 (both inclusive)The port at which Forgejo is hosted at.
8800modules.services.productivity.forgejo.renovate.enable Link copied!
booleanWhether to enable Renovate bot.
falsetruemodules.services.productivity.forgejo.subdomain Link copied!
stringThe domain at which Forgejo is hosted at.
"git"modules.services.productivity.ollama.autoConfiguredServiceInfra Link copied!
booleanWhether Caddy, Tailscale, Cloudflared, and other infrastructure are able to automatically configure this service
truemodules.services.productivity.ollama.cloudflared.enable Link copied!
booleanWhether to enable Cloudflare Tunnelling for Ollama.
falsetruemodules.services.productivity.ollama.enable Link copied!
booleanWhether to enable Ollama.
falsetruemodules.services.productivity.ollama.glance.enable Link copied!
booleanWhether to enable visibility for Ollama in the Glance dashboard.
falsetruemodules.services.productivity.ollama.glance.icon Link copied!
stringThe icon for Ollama to be displayed in the Glance dashboard.
"sh:ollama"modules.services.productivity.ollama.internalTailscaleDomain.enable Link copied!
booleanWhether to enable an internal tailnet domain for Ollama at ai.cormorant-emperor.ts.net.
falsetruemodules.services.productivity.ollama.name Link copied!
stringSet the name of the service with correct capitalisation if necessary for other modules such as modules.glance to access.
"Ollama"modules.services.productivity.ollama.ntfyChecking.enable Link copied!
booleanWhether to enable Ntfy sending notifications when this Ollama goes down.
falsetruemodules.services.productivity.ollama.port Link copied!
16 bit unsigned integer; between 0 and 65535 (both inclusive)The port at which Ollama is hosted at.
8800modules.services.productivity.ollama.subdomain Link copied!
stringThe domain at which Ollama is hosted at.
"ai"modules.services.productivity.vikunja.autoConfiguredServiceInfra Link copied!
booleanWhether Caddy, Tailscale, Cloudflared, and other infrastructure are able to automatically configure this service
truemodules.services.productivity.vikunja.cloudflared.enable Link copied!
booleanWhether to enable Cloudflare Tunnelling for Vikunja.
falsetruemodules.services.productivity.vikunja.enable Link copied!
booleanWhether to enable Vikunja.
falsetruemodules.services.productivity.vikunja.glance.enable Link copied!
booleanWhether to enable visibility for Vikunja in the Glance dashboard.
falsetruemodules.services.productivity.vikunja.glance.icon Link copied!
stringThe icon for Vikunja to be displayed in the Glance dashboard.
"sh:vikunja"modules.services.productivity.vikunja.internalTailscaleDomain.enable Link copied!
booleanWhether to enable an internal tailnet domain for Vikunja at tasks.cormorant-emperor.ts.net.
falsetruemodules.services.productivity.vikunja.name Link copied!
stringSet the name of the service with correct capitalisation if necessary for other modules such as modules.glance to access.
"Vikunja"modules.services.productivity.vikunja.ntfyChecking.enable Link copied!
booleanWhether to enable Ntfy sending notifications when this Vikunja goes down.
falsetruemodules.services.productivity.vikunja.port Link copied!
16 bit unsigned integer; between 0 and 65535 (both inclusive)The port at which Vikunja is hosted at.
8800modules.services.productivity.vikunja.subdomain Link copied!
stringThe domain at which Vikunja is hosted at.
"tasks"modules.services.productivity.vscode.autoConfiguredServiceInfra Link copied!
booleanWhether Caddy, Tailscale, Cloudflared, and other infrastructure are able to automatically configure this service
truemodules.services.productivity.vscode.cloudflared.enable Link copied!
booleanWhether to enable Cloudflare Tunnelling for VSCode Server.
falsetruemodules.services.productivity.vscode.enable Link copied!
booleanWhether to enable VSCode Server.
falsetruemodules.services.productivity.vscode.glance.enable Link copied!
booleanWhether to enable visibility for VSCode Server in the Glance dashboard.
falsetruemodules.services.productivity.vscode.glance.icon Link copied!
stringThe icon for VSCode Server to be displayed in the Glance dashboard.
"si:vscodium"modules.services.productivity.vscode.internalTailscaleDomain.enable Link copied!
booleanWhether to enable an internal tailnet domain for VSCode Server at code.cormorant-emperor.ts.net.
falsetruemodules.services.productivity.vscode.name Link copied!
stringSet the name of the service with correct capitalisation if necessary for other modules such as modules.glance to access.
"VSCode Server"modules.services.productivity.vscode.ntfyChecking.enable Link copied!
booleanWhether to enable Ntfy sending notifications when this VSCode Server goes down.
falsetruemodules.services.productivity.vscode.port Link copied!
16 bit unsigned integer; between 0 and 65535 (both inclusive)The port at which VSCode Server is hosted at.
8800modules.services.productivity.vscode.subdomain Link copied!
stringThe domain at which VSCode Server is hosted at.
"code"modules.services.tools.convertx.autoConfiguredServiceInfra Link copied!
booleanWhether Caddy, Tailscale, Cloudflared, and other infrastructure are able to automatically configure this service
truemodules.services.tools.convertx.cloudflared.enable Link copied!
booleanWhether to enable Cloudflare Tunnelling for ConvertX.
falsetruemodules.services.tools.convertx.enable Link copied!
booleanWhether to enable ConvertX.
falsetruemodules.services.tools.convertx.glance.enable Link copied!
booleanWhether to enable visibility for ConvertX in the Glance dashboard.
falsetruemodules.services.tools.convertx.glance.icon Link copied!
stringThe icon for ConvertX to be displayed in the Glance dashboard.
"https://cdn.jsdelivr.net/gh/selfhst/icons/png/convertx.png"modules.services.tools.convertx.internalTailscaleDomain.enable Link copied!
booleanWhether to enable an internal tailnet domain for ConvertX at convert.cormorant-emperor.ts.net.
falsetruemodules.services.tools.convertx.name Link copied!
stringSet the name of the service with correct capitalisation if necessary for other modules such as modules.glance to access.
"ConvertX"modules.services.tools.convertx.ntfyChecking.enable Link copied!
booleanWhether to enable Ntfy sending notifications when this ConvertX goes down.
falsetruemodules.services.tools.convertx.port Link copied!
16 bit unsigned integer; between 0 and 65535 (both inclusive)The port at which ConvertX is hosted at.
8800modules.services.tools.convertx.subdomain Link copied!
stringThe domain at which ConvertX is hosted at.
"convert"modules.services.tools.it-tools.autoConfiguredServiceInfra Link copied!
booleanWhether Caddy, Tailscale, Cloudflared, and other infrastructure are able to automatically configure this service
truemodules.services.tools.it-tools.cloudflared.enable Link copied!
booleanWhether to enable Cloudflare Tunnelling for IT-Tools.
falsetruemodules.services.tools.it-tools.enable Link copied!
booleanWhether to enable IT-Tools.
falsetruemodules.services.tools.it-tools.glance.enable Link copied!
booleanWhether to enable visibility for IT-Tools in the Glance dashboard.
falsetruemodules.services.tools.it-tools.glance.icon Link copied!
stringThe icon for IT-Tools to be displayed in the Glance dashboard.
"sh:it-tools"modules.services.tools.it-tools.internalTailscaleDomain.enable Link copied!
booleanWhether to enable an internal tailnet domain for IT-Tools at tools.cormorant-emperor.ts.net.
falsetruemodules.services.tools.it-tools.name Link copied!
stringSet the name of the service with correct capitalisation if necessary for other modules such as modules.glance to access.
"IT-Tools"modules.services.tools.it-tools.ntfyChecking.enable Link copied!
booleanWhether to enable Ntfy sending notifications when this IT-Tools goes down.
falsetruemodules.services.tools.it-tools.port Link copied!
16 bit unsigned integer; between 0 and 65535 (both inclusive)The port at which IT-Tools is hosted at.
8800modules.services.tools.it-tools.subdomain Link copied!
stringThe domain at which IT-Tools is hosted at.
"tools"modules.services.tools.libretranslate.autoConfiguredServiceInfra Link copied!
booleanWhether Caddy, Tailscale, Cloudflared, and other infrastructure are able to automatically configure this service
truemodules.services.tools.libretranslate.cloudflared.enable Link copied!
booleanWhether to enable Cloudflare Tunnelling for LibreTranslate.
falsetruemodules.services.tools.libretranslate.enable Link copied!
booleanWhether to enable LibreTranslate.
falsetruemodules.services.tools.libretranslate.glance.enable Link copied!
booleanWhether to enable visibility for LibreTranslate in the Glance dashboard.
falsetruemodules.services.tools.libretranslate.glance.icon Link copied!
stringThe icon for LibreTranslate to be displayed in the Glance dashboard.
"sh:libretranslate"modules.services.tools.libretranslate.internalTailscaleDomain.enable Link copied!
booleanWhether to enable an internal tailnet domain for LibreTranslate at translate.cormorant-emperor.ts.net.
falsetruemodules.services.tools.libretranslate.name Link copied!
stringSet the name of the service with correct capitalisation if necessary for other modules such as modules.glance to access.
"LibreTranslate"modules.services.tools.libretranslate.ntfyChecking.enable Link copied!
booleanWhether to enable Ntfy sending notifications when this LibreTranslate goes down.
falsetruemodules.services.tools.libretranslate.port Link copied!
16 bit unsigned integer; between 0 and 65535 (both inclusive)The port at which LibreTranslate is hosted at.
8800modules.services.tools.libretranslate.subdomain Link copied!
stringThe domain at which LibreTranslate is hosted at.
"translate"modules.services.tools.searxng.autoConfiguredServiceInfra Link copied!
booleanWhether Caddy, Tailscale, Cloudflared, and other infrastructure are able to automatically configure this service
truemodules.services.tools.searxng.cloudflared.enable Link copied!
booleanWhether to enable Cloudflare Tunnelling for SearXNG.
falsetruemodules.services.tools.searxng.enable Link copied!
booleanWhether to enable SearXNG.
falsetruemodules.services.tools.searxng.glance.enable Link copied!
booleanWhether to enable visibility for SearXNG in the Glance dashboard.
falsetruemodules.services.tools.searxng.glance.icon Link copied!
stringThe icon for SearXNG to be displayed in the Glance dashboard.
"sh:searxng"modules.services.tools.searxng.internalTailscaleDomain.enable Link copied!
booleanWhether to enable an internal tailnet domain for SearXNG at search.cormorant-emperor.ts.net.
falsetruemodules.services.tools.searxng.name Link copied!
stringSet the name of the service with correct capitalisation if necessary for other modules such as modules.glance to access.
"SearXNG"modules.services.tools.searxng.ntfyChecking.enable Link copied!
booleanWhether to enable Ntfy sending notifications when this SearXNG goes down.
falsetruemodules.services.tools.searxng.port Link copied!
16 bit unsigned integer; between 0 and 65535 (both inclusive)The port at which SearXNG is hosted at.
8800modules.services.tools.searxng.subdomain Link copied!
stringThe domain at which SearXNG is hosted at.
"search"modules.services.webpages.main.autoConfiguredServiceInfra Link copied!
booleanWhether Caddy, Tailscale, Cloudflared, and other infrastructure are able to automatically configure this service
falsemodules.services.webpages.main.cloudflared.enable Link copied!
booleanWhether to enable Cloudflare Tunnelling for Webpagc.
falsetruemodules.services.webpages.main.enable Link copied!
booleanWhether to enable Webpagc.
falsetruemodules.services.webpages.main.glance.enable Link copied!
booleanWhether to enable visibility for Webpagc in the Glance dashboard.
falsetruemodules.services.webpages.main.glance.icon Link copied!
stringThe icon for Webpagc to be displayed in the Glance dashboard.
"https://orangc.net/leaf.png"modules.services.webpages.main.internalTailscaleDomain.enable Link copied!
booleanWhether to enable an internal tailnet domain for Webpagc at .cormorant-emperor.ts.net.
falsetruemodules.services.webpages.main.name Link copied!
stringSet the name of the service with correct capitalisation if necessary for other modules such as modules.glance to access.
"Webpagc"modules.services.webpages.main.ntfyChecking.enable Link copied!
booleanWhether to enable Ntfy sending notifications when this Webpagc goes down.
falsetruemodules.services.webpages.main.port Link copied!
16 bit unsigned integer; between 0 and 65535 (both inclusive)The port at which Webpagc is hosted at.
8800modules.services.webpages.main.redirects Link copied!
list of (submodule)This option has no description.
[ ]modules.services.webpages.main.redirects.*.code Link copied!
signed integerThis option has no description.
301modules.services.webpages.main.redirects.*.sources Link copied!
list of stringThis option has no description.
[ ]modules.services.webpages.main.redirects.*.target Link copied!
stringThis option has no description.
modules.services.webpages.main.subdomain Link copied!
stringThe domain at which Webpagc is hosted at.
""modules.services.webpages.ndg.autoConfiguredServiceInfra Link copied!
booleanWhether Caddy, Tailscale, Cloudflared, and other infrastructure are able to automatically configure this service
falsemodules.services.webpages.ndg.cloudflared.enable Link copied!
booleanWhether to enable Cloudflare Tunnelling for Flake Documentation.
falsetruemodules.services.webpages.ndg.enable Link copied!
booleanWhether to enable Flake Documentation.
falsetruemodules.services.webpages.ndg.glance.enable Link copied!
booleanWhether to enable visibility for Flake Documentation in the Glance dashboard.
falsetruemodules.services.webpages.ndg.glance.icon Link copied!
stringThe icon for Flake Documentation to be displayed in the Glance dashboard.
"sh:nixos"modules.services.webpages.ndg.internalTailscaleDomain.enable Link copied!
booleanWhether to enable an internal tailnet domain for Flake Documentation at flake.cormorant-emperor.ts.net.
falsetruemodules.services.webpages.ndg.name Link copied!
stringSet the name of the service with correct capitalisation if necessary for other modules such as modules.glance to access.
"Flake Documentation"modules.services.webpages.ndg.ntfyChecking.enable Link copied!
booleanWhether to enable Ntfy sending notifications when this Flake Documentation goes down.
falsetruemodules.services.webpages.ndg.port Link copied!
16 bit unsigned integer; between 0 and 65535 (both inclusive)The port at which Flake Documentation is hosted at.
8800modules.services.webpages.ndg.subdomain Link copied!
stringThe domain at which Flake Documentation is hosted at.
"flake"modules.services.webpages.notes.autoConfiguredServiceInfra Link copied!
booleanWhether Caddy, Tailscale, Cloudflared, and other infrastructure are able to automatically configure this service
falsemodules.services.webpages.notes.cloudflared.enable Link copied!
booleanWhether to enable Cloudflare Tunnelling for Blog.
falsetruemodules.services.webpages.notes.enable Link copied!
booleanWhether to enable Blog.
falsetruemodules.services.webpages.notes.glance.enable Link copied!
booleanWhether to enable visibility for Blog in the Glance dashboard.
falsetruemodules.services.webpages.notes.glance.icon Link copied!
stringThe icon for Blog to be displayed in the Glance dashboard.
"https://notes.orangc.net/leaf.png"modules.services.webpages.notes.internalTailscaleDomain.enable Link copied!
booleanWhether to enable an internal tailnet domain for Blog at notes.cormorant-emperor.ts.net.
falsetruemodules.services.webpages.notes.name Link copied!
stringSet the name of the service with correct capitalisation if necessary for other modules such as modules.glance to access.
"Blog"modules.services.webpages.notes.ntfyChecking.enable Link copied!
booleanWhether to enable Ntfy sending notifications when this Blog goes down.
falsetruemodules.services.webpages.notes.port Link copied!
16 bit unsigned integer; between 0 and 65535 (both inclusive)The port at which Blog is hosted at.
8800modules.services.webpages.notes.subdomain Link copied!
stringThe domain at which Blog is hosted at.
"notes"networking.mihoyo-telemetry.block Link copied!
booleanWhether to block miHoYo telemetry servers.
falsenetworking.stevenBlackHosts.blockFakenews Link copied!
booleanWhether to enable fakenews hosts entries.
falsetruenetworking.stevenBlackHosts.blockGambling Link copied!
booleanWhether to enable gambling hosts entries.
falsetruenetworking.stevenBlackHosts.blockPorn Link copied!
booleanWhether to enable porn hosts entries.
falsetruenetworking.stevenBlackHosts.blockSocial Link copied!
booleanWhether to enable social hosts entries.
falsetruenetworking.stevenBlackHosts.enable Link copied!
booleanWhether to enable Steven Black's hosts file.
falsetruenetworking.stevenBlackHosts.enableIPv6 Link copied!
booleanWhether to enable IPv6 rules.
config.networking.enableIPv6truenixflix.caddy.addHostsEntries Link copied!
booleanWhether to add networking.hosts entries mapping service subdomains to 127.0.0.1.
Enable if you don't have a separate DNS setup.
falsenixflix.caddy.domain Link copied!
stringBase domain for subdomain-based reverse proxy routing. Each service is accessible at <subdomain>.<domain>.
"nixflix""internal"nixflix.caddy.enable Link copied!
booleanWhether to enable Caddy reverse proxy for all services.
falsenixflix.caddy.tls.acmeEmail Link copied!
null or stringEmail for ACME certificate registration. Required when using a public ACME provider.
nullnixflix.caddy.tls.enable Link copied!
booleanWhether to enable TLS. Caddy handles ACME automatically when enabled with a public domain.
falsenixflix.caddy.tls.internal Link copied!
booleanUse Caddy's internal (self-signed) CA instead of a public ACME provider. Useful for local/internal domains.
falsenixflix.downloadarr Link copied!
submoduleDownloadarr is a service that is responsible for configuring Starr services with download clients. When you enable the service for that client to run, Downloadarr integrates it automatically with each Starr service.
The list is small right now. However, Downloadarr itself supports supports more integrations than Nixflix supports. It just has less magic built in.
Each module is currently only a subset of the options available. You can add more options reqresented in the UI if you know their keys.
{ }nixflix.downloadarr.deluge Link copied!
open submodule of attribute set of anythingDeluge download client definition for Starr services.
{ }nixflix.downloadarr.deluge.categories Link copied!
submoduleCategories per Starr service instance
{ }nixflix.downloadarr.deluge.categories.lidarr Link copied!
stringThe categories to use for the Lidarr instance
"lidarr"nixflix.downloadarr.deluge.categories.prowlarr Link copied!
stringThe categories to use for the Lidarr instance
"prowlarr"nixflix.downloadarr.deluge.categories.radarr Link copied!
stringThe categories to use for the Radarr instance
"radarr"nixflix.downloadarr.deluge.categories.sonarr Link copied!
stringThe categories to use for the Sonarr instance
"sonarr"nixflix.downloadarr.deluge.categories.sonarr-anime Link copied!
stringThe categories to use for the Sonarr Anime instance
"sonarr-anime"nixflix.downloadarr.deluge.dependencies Link copied!
list of stringsystemd services that this integration depends on
[ ]nixflix.downloadarr.deluge.enable Link copied!
booleanWhether or not this download client is enabled.
falsenixflix.downloadarr.deluge.host Link copied!
stringHost of the download client.
"127.0.0.1""example.com"nixflix.downloadarr.deluge.implementationName Link copied!
stringType of download client to configure (matches schema implementationName).
"Deluge"nixflix.downloadarr.deluge.name Link copied!
stringUser-defined name for the download client instance.
"Deluge"nixflix.downloadarr.deluge.password Link copied!
string or (submodule)Password for the download client.
!!! warning
Can be a plain string (visible in Nix store) or { _secret = /path/to/file; } for file-based secrets.
Plain-text secrets will be visible in the Nix store. Use `{ _secret = path; }` for sensitive data.
null{ _secret = "/run/secrets/secret-file"; }nixflix.downloadarr.deluge.port Link copied!
16 bit unsigned integer; between 0 and 65535 (both inclusive)Port of the download client.
8112nixflix.downloadarr.deluge.urlBase Link copied!
stringAdds a prefix to the deluge json url, see http://[host]:[port]/[urlBase]/json
"""deluge"nixflix.downloadarr.extraClients Link copied!
list of attribute set of anythingFor more clients or if you have more than one instance of a specific client.
Follows the same schema general schema as the other options. implementationName is a required field.
A list of implementation names can be acquired with:
curl -s -H "X-Api-Key: $(sudo cat </path/to/prowlarr/api_key>)" "http://127.0.0.1:9696/api/v1/downloadclient/schema" | jq '.[].implementationName'
You can run the following command to get the field names for a particular implementationName:
curl -s -H "X-Api-Key: $(sudo cat </path/to/prowlarr/apiKey>)" "http://127.0.0.1:9696/api/v1/downloadclient/schema" | jq '.[] | select(.implementationName=="<clientName>") | .fields'
[ ]nixflix.downloadarr.qbittorrent Link copied!
open submodule of attribute set of anythingqBittorrent download client definition for Starr services.
{ }nixflix.downloadarr.qbittorrent.categories Link copied!
submoduleCategories per Starr service instance
{ }nixflix.downloadarr.qbittorrent.categories.lidarr Link copied!
stringThe categories to use for the Lidarr instance
"lidarr"nixflix.downloadarr.qbittorrent.categories.prowlarr Link copied!
stringThe categories to use for the Lidarr instance
"prowlarr"nixflix.downloadarr.qbittorrent.categories.radarr Link copied!
stringThe categories to use for the Radarr instance
"radarr"nixflix.downloadarr.qbittorrent.categories.sonarr Link copied!
stringThe categories to use for the Sonarr instance
"sonarr"nixflix.downloadarr.qbittorrent.categories.sonarr-anime Link copied!
stringThe categories to use for the Sonarr Anime instance
"sonarr-anime"nixflix.downloadarr.qbittorrent.dependencies Link copied!
list of stringsystemd services that this integration depends on
[
"qbittorrent.service"
]nixflix.downloadarr.qbittorrent.enable Link copied!
booleanWhether or not this download client is enabled.
config.nixflix.torrentClients.qbittorrent.enablenixflix.downloadarr.qbittorrent.host Link copied!
stringHost of the download client.
config.nixflix.torrentClients.qbittorrent.connectionAddress"example.com"nixflix.downloadarr.qbittorrent.implementationName Link copied!
stringType of download client to configure (matches schema implementationName).
"qBittorrent"nixflix.downloadarr.qbittorrent.name Link copied!
stringUser-defined name for the download client instance.
"qBittorrent"nixflix.downloadarr.qbittorrent.password Link copied!
null or string or (submodule)Password for the download client.
!!! warning
Can be a plain string (visible in Nix store) or { _secret = /path/to/file; } for file-based secrets.
Plain-text secrets will be visible in the Nix store. Use `{ _secret = path; }` for sensitive data.
config.nixflix.torrentClients.qbittorrent.password{ _secret = "/run/secrets/secret-file"; }nixflix.downloadarr.qbittorrent.port Link copied!
16 bit unsigned integer; between 0 and 65535 (both inclusive)Port of the download client.
config.services.qbittorrent.webuiPort8080nixflix.downloadarr.qbittorrent.urlBase Link copied!
stringAdds a prefix to the qBittorrent url, such as http://[host]:[port]/[urlBase].
"""qbittorrent"nixflix.downloadarr.qbittorrent.username Link copied!
null or string or (submodule)Username key for the download client.
!!! warning
Can be a plain string (visible in Nix store) or { _secret = /path/to/file; } for file-based secrets.
Plain-text secrets will be visible in the Nix store. Use `{ _secret = path; }` for sensitive data.
config.services.qbittorrent.serverConfig.Preferences.WebUI.Username{ _secret = "/run/secrets/secret-file"; }nixflix.downloadarr.rtorrent Link copied!
open submodule of attribute set of anythingrTorrent download client definition for Starr services.
{ }nixflix.downloadarr.rtorrent.categories Link copied!
submoduleCategories per Starr service instance
{ }nixflix.downloadarr.rtorrent.categories.lidarr Link copied!
stringThe categories to use for the Lidarr instance
"lidarr"nixflix.downloadarr.rtorrent.categories.prowlarr Link copied!
stringThe categories to use for the Lidarr instance
"prowlarr"nixflix.downloadarr.rtorrent.categories.radarr Link copied!
stringThe categories to use for the Radarr instance
"radarr"nixflix.downloadarr.rtorrent.categories.sonarr Link copied!
stringThe categories to use for the Sonarr instance
"sonarr"nixflix.downloadarr.rtorrent.categories.sonarr-anime Link copied!
stringThe categories to use for the Sonarr Anime instance
"sonarr-anime"nixflix.downloadarr.rtorrent.dependencies Link copied!
list of stringsystemd services that this integration depends on
[ ]nixflix.downloadarr.rtorrent.enable Link copied!
booleanWhether or not this download client is enabled.
falsenixflix.downloadarr.rtorrent.host Link copied!
stringHost of the download client.
"127.0.0.1""example.com"nixflix.downloadarr.rtorrent.implementationName Link copied!
stringType of download client to configure (matches schema implementationName).
"rTorrent"nixflix.downloadarr.rtorrent.name Link copied!
stringUser-defined name for the download client instance.
"rTorrent"nixflix.downloadarr.rtorrent.password Link copied!
string or (submodule)Password for the download client.
!!! warning
Can be a plain string (visible in Nix store) or { _secret = /path/to/file; } for file-based secrets.
Plain-text secrets will be visible in the Nix store. Use `{ _secret = path; }` for sensitive data.
null{ _secret = "/run/secrets/secret-file"; }nixflix.downloadarr.rtorrent.port Link copied!
16 bit unsigned integer; between 0 and 65535 (both inclusive)Port of the download client. This competes with SABnzbd.
8080nixflix.downloadarr.rtorrent.urlBase Link copied!
stringPath to the XMLRPC endpoint, see http(s)://[host]:[port]/[urlPath]. This is usually RPC2 or [path to ruTorrent]/plugins/rpc/rpc.php when using ruTorrent.
"RPC2""rtorrent/RPC2"nixflix.downloadarr.rtorrent.username Link copied!
string or (submodule)Username key for the download client.
!!! warning
Can be a plain string (visible in Nix store) or { _secret = /path/to/file; } for file-based secrets.
Plain-text secrets will be visible in the Nix store. Use `{ _secret = path; }` for sensitive data.
null{ _secret = "/run/secrets/secret-file"; }nixflix.downloadarr.sabnzbd Link copied!
open submodule of attribute set of anythingSABnzbd download client definition for Starr services.
{ }nixflix.downloadarr.sabnzbd.apiKey Link copied!
null or string or (submodule)API key for the download client.
!!! warning
Can be a plain string (visible in Nix store) or { _secret = /path/to/file; } for file-based secrets.
Plain-text secrets will be visible in the Nix store. Use `{ _secret = path; }` for sensitive data.
config.nixflix.usenetClients.sabnzbd.settings.misc.api_key{ _secret = "/run/secrets/secret-file"; }nixflix.downloadarr.sabnzbd.categories Link copied!
submoduleCategories per Starr service instance
{ }nixflix.downloadarr.sabnzbd.categories.lidarr Link copied!
stringThe categories to use for the Lidarr instance
"lidarr"nixflix.downloadarr.sabnzbd.categories.prowlarr Link copied!
stringThe categories to use for the Lidarr instance
"prowlarr"nixflix.downloadarr.sabnzbd.categories.radarr Link copied!
stringThe categories to use for the Radarr instance
"radarr"nixflix.downloadarr.sabnzbd.categories.sonarr Link copied!
stringThe categories to use for the Sonarr instance
"sonarr"nixflix.downloadarr.sabnzbd.categories.sonarr-anime Link copied!
stringThe categories to use for the Sonarr Anime instance
"sonarr-anime"nixflix.downloadarr.sabnzbd.dependencies Link copied!
list of stringsystemd services that this integration depends on
[
"sabnzbd-categories.service"
]nixflix.downloadarr.sabnzbd.enable Link copied!
booleanWhether or not this download client is enabled.
config.nixflix.usenetClients.sabnzbd.enablenixflix.downloadarr.sabnzbd.host Link copied!
stringHost of the download client.
config.nixflix.usenetClients.sabnzbd.connectionAddress"example.com"nixflix.downloadarr.sabnzbd.implementationName Link copied!
stringType of download client to configure (matches schema implementationName).
"SABnzbd"nixflix.downloadarr.sabnzbd.name Link copied!
stringUser-defined name for the download client instance.
"SABnzbd"nixflix.downloadarr.sabnzbd.port Link copied!
16 bit unsigned integer; between 0 and 65535 (both inclusive)Port of the download client.
config.nixflix.usenetClients.sabnzbd.settings.misc.port8080nixflix.downloadarr.sabnzbd.urlBase Link copied!
stringAdds a prefix to the SABnzbd url, such as http://[host]:[port]/[urlBase].
if config.nixflix.usenetClients.sabnzbd.settings.misc.url_base == "" then
""
else
lib.removePrefix "/" config.nixflix.usenetClients.sabnzbd.settings.misc.url_base;
"/sabnzbd"nixflix.downloadarr.transmission Link copied!
open submodule of attribute set of anythingTransmission Deluge download client definition for Starr services.
{ }nixflix.downloadarr.transmission.categories Link copied!
submoduleCategories per Starr service instance
{ }nixflix.downloadarr.transmission.categories.lidarr Link copied!
stringThe categories to use for the Lidarr instance
"lidarr"nixflix.downloadarr.transmission.categories.prowlarr Link copied!
stringThe categories to use for the Lidarr instance
"prowlarr"nixflix.downloadarr.transmission.categories.radarr Link copied!
stringThe categories to use for the Radarr instance
"radarr"nixflix.downloadarr.transmission.categories.sonarr Link copied!
stringThe categories to use for the Sonarr instance
"sonarr"nixflix.downloadarr.transmission.categories.sonarr-anime Link copied!
stringThe categories to use for the Sonarr Anime instance
"sonarr-anime"nixflix.downloadarr.transmission.dependencies Link copied!
list of stringsystemd services that this integration depends on
[ ]nixflix.downloadarr.transmission.enable Link copied!
booleanWhether or not this download client is enabled.
falsenixflix.downloadarr.transmission.host Link copied!
stringHost of the download client.
"127.0.0.1""example.com"nixflix.downloadarr.transmission.implementationName Link copied!
stringType of download client to configure (matches schema implementationName).
"Transmission"nixflix.downloadarr.transmission.name Link copied!
stringUser-defined name for the download client instance.
"Transmission"nixflix.downloadarr.transmission.password Link copied!
string or (submodule)Password for the download client.
!!! warning
Can be a plain string (visible in Nix store) or { _secret = /path/to/file; } for file-based secrets.
Plain-text secrets will be visible in the Nix store. Use `{ _secret = path; }` for sensitive data.
null{ _secret = "/run/secrets/secret-file"; }nixflix.downloadarr.transmission.port Link copied!
16 bit unsigned integer; between 0 and 65535 (both inclusive)Port of the download client.
9091nixflix.downloadarr.transmission.urlBase Link copied!
stringAdds a prefix to the Transmission rpc url, eg http://[host]:[port]/[urlBase]/rpc
"/transmission/"nixflix.downloadarr.transmission.username Link copied!
string or (submodule)Username key for the download client.
!!! warning
Can be a plain string (visible in Nix store) or { _secret = /path/to/file; } for file-based secrets.
Plain-text secrets will be visible in the Nix store. Use `{ _secret = path; }` for sensitive data.
null{ _secret = "/run/secrets/secret-file"; }nixflix.downloadsDir Link copied!
absolute pathThe location of the downloads directory for download clients.
!!! warning
All parent directories must have execute permissions for everyone.
!!! warning
Setting this to any path, where the subpath is not owned by root, will fail! For example:
```nix
mediaDir = /home/user/data
```
Is not supported, because `/home/user` is owned by `user`.
"/data/downloads""/data/downloads"nixflix.flaresolverr.enable Link copied!
booleanWhether or not to enable FlareSolverr for Prowlarr.
falsetruenixflix.flaresolverr.port Link copied!
signed integer or floating point numberPort for FlareSolverr to listen on.
8191nixflix.globals Link copied!
attribute setGlobal values to be used by nixflix services
{ }nixflix.jellyfin.apiKey Link copied!
string or (submodule)API key to inject into Jellyfin's database. Used by nixflix management services to authenticate to Jellyfin.
Can be created with the following:
openssl rand -hex 16
!!! warning
Can be a plain string (visible in Nix store) or { _secret = /path/to/file; } for file-based secrets.
Plain-text secrets will be visible in the Nix store. Use `{ _secret = path; }` for sensitive data.
null{ _secret = "/run/secrets/secret-file"; }nixflix.jellyfin.branding.customCss Link copied!
strings concatenated with "\n"Custom CSS to be injected into the web client.
if config.nixflix.theme.enable
then ''@import url("https://theme-park.dev/css/base/jellyfin/$${config.nixflix.theme.name}.css");''
else "";nixflix.jellyfin.branding.loginDisclaimer Link copied!
strings concatenated with "\n"Sets the text shown during login underneath the form.
""nixflix.jellyfin.branding.splashscreenEnabled Link copied!
booleanEnables a splashscreen to be shown during loading.
falsenixflix.jellyfin.branding.splashscreenLocation Link copied!
absolute path or stringLocation of the splashscreen image. Custom images should be in a 16x9 aspect ratio at a minimum size of 1920x1080.
nixflix.jellyfin.cacheDir Link copied!
absolute pathDirectory containing the jellyfin server cache,
passed with --cachedir see #cache-directory
"/var/cache/jellyfin"nixflix.jellyfin.configDir Link copied!
absolute pathDirectory containing the server configuration files,
passed with --configdir see configuration-directory
"${config.nixflix.stateDir}/jellyfin/config"nixflix.jellyfin.connectionAddress Link copied!
stringAddress for connecting to this service.
"127.0.0.1"nixflix.jellyfin.dataDir Link copied!
absolute pathDirectory containing the Jellyfin data files
"${config.nixflix.stateDir}/jellyfin"nixflix.jellyfin.enable Link copied!
booleanWhether to enable Jellyfin media server
falsenixflix.jellyfin.encoding.allowAv1Encoding Link copied!
booleanWhether AV1 encoding is enabled
falsenixflix.jellyfin.encoding.allowHevcEncoding Link copied!
booleanWhether HEVC encoding is enabled
falsenixflix.jellyfin.encoding.allowOnDemandMetadataBasedKeyframeExtractionForExtensions Link copied!
list of stringimma be real i have no idea what this option is. Just leave it as the default
[
"mkv"
]nixflix.jellyfin.encoding.deinterlaceDoubleRate Link copied!
booleanWhether to enable This setting uses the field rate when deinterlacing, often referred to as bob deinterlacing, which doubles the frame rate of the video to provide full motion like what you would see when viewing interlaced video on a TV. .
falsetruenixflix.jellyfin.encoding.deinterlaceMethod Link copied!
one of "yadif", "bwdif"Select the deinterlacing method to use when software transcoding interlaced content. When hardware acceleration supporting hardware deinterlacing is enabled the hardware deinterlacer will be used instead of this setting.
"yadif"nixflix.jellyfin.encoding.downMixAudioBoost Link copied!
signed integer or floating point numberBoost audio when downmixing. A value of one will preserve the original volume.
2nixflix.jellyfin.encoding.downMixStereoAlgorithm Link copied!
one of "None", "Dave750", "NightmodeDialogue", "Rfc7845", "Ac4"Algorithm used to downmix multi-channel audio to stereo.
"None"nixflix.jellyfin.encoding.enableAudioVbr Link copied!
booleanWhether to enable Enable VBR Audio.
falsetruenixflix.jellyfin.encoding.enableDecodingColorDepth10Hevc Link copied!
booleanEnable hardware decoding for HEVC 10bit
truenixflix.jellyfin.encoding.enableDecodingColorDepth10HevcRext Link copied!
booleanWhether to enable Enable hardware decoding for HEVC RExt 8/10bit.
falsetruenixflix.jellyfin.encoding.enableDecodingColorDepth10Vp9 Link copied!
booleanEnable hardware decoding for VP9 10bit
truenixflix.jellyfin.encoding.enableDecodingColorDepth12HevcRext Link copied!
booleanWhether to enable Enable hardware decoding for HEVC RExt 12bit.
falsetruenixflix.jellyfin.encoding.enableEnhancedNvdecDecoder Link copied!
booleanEnable enhanced NVDEC decoder. Requires Nvidia GPU with enhanced NVDEC support.
truenixflix.jellyfin.encoding.enableFallbackFont Link copied!
booleanWhether to enable Enable fallback font.
falsetruenixflix.jellyfin.encoding.enableHardwareEncoding Link copied!
booleanWhether to do Hardware Acceleration
truenixflix.jellyfin.encoding.enableIntelLowPowerH264HwEncoder Link copied!
booleanWhether to enable Low-Power Encoding can keep unnecessary CPU-GPU sync. On Linux they must be disabled if the i915 HuC firmware is not configured.
falsetruenixflix.jellyfin.encoding.enableIntelLowPowerHevcHwEncoder Link copied!
booleanWhether to enable Low-Power Encoding can keep unnecessary CPU-GPU sync. On Linux they must be disabled if the i915 HuC firmware is not configured.
falsetruenixflix.jellyfin.encoding.enableSegmentDeletion Link copied!
booleanWhether to enable Delete old segments after they have been downloaded by the client. This prevents having to store the entire transcoded file on disk. Turn this off if you experience playback issues. .
falsetruenixflix.jellyfin.encoding.enableSubtitleExtraction Link copied!
booleanEmbedded subtitles can be extracted from videos and delivered to clients in plain text, in order to help prevent video transcoding. On some systems this can take a long time and cause video playback to stall during the extraction process. Disable this to have embedded subtitles burned in with video transcoding when they are not natively supported by the client device.
truenixflix.jellyfin.encoding.enableThrottling Link copied!
booleanWhether to enable When a transcode or remux gets far enough ahead from the current playback position, pause the process so it will consume fewer resources. This is most useful when watching without seeking often. Turn this off if you experience playback issues. .
falsetruenixflix.jellyfin.encoding.enableTonemapping Link copied!
booleanWhether to enable Tone-mapping can transform the dynamic range of a video from HDR to SDR while maintaining image details and colors, which are very important information for representing the original scene. Currently works only with 10bit HDR10, HLG and DoVi videos. This requires the corresponding GPGPU runtime. .
falsetruenixflix.jellyfin.encoding.enableVideoToolboxTonemapping Link copied!
booleanWhether to enable Apple VideoToolbox based tone-mapping. Works only on macOS with supported hardware. .
falsetruenixflix.jellyfin.encoding.enableVppTonemapping Link copied!
booleanWhether to enable Full Intel driver based tone-mapping. Currently works only on certain hardware with HDR10 videos. This has a higher priority compared to another OpenCL implementation. .
falsetruenixflix.jellyfin.encoding.encoderAppPathDisplay Link copied!
stringThe path to the FFmpeg application file or folder containing FFmpeg.
"$${pkgs.jellyfin-ffmpeg}/bin/ffmpeg"nixflix.jellyfin.encoding.encoderPreset Link copied!
one of "auto", "placebo", "veryslow", "slower", "slow", "medium", "fast", "faster", "veryfast", "superfast", "ultrafast"Pick a faster value to improve performance, or a slower value to improve quality.
"auto"nixflix.jellyfin.encoding.encodingThreadCount Link copied!
signed integerAmount of threads used for encoding.
Set to -1 for automatic and 0 for max.
-1nixflix.jellyfin.encoding.fallbackFontPath Link copied!
stringPath to fallback font file for subtitle burning
""nixflix.jellyfin.encoding.h264Crf Link copied!
signed integerThe 'Constant Rate Factor' (CRF) is the default quality setting for the x264 and x265 software encoders. You can set the values between 0 and 51, where lower values would result in better quality (at the expense of higher file sizes). Sane values are between 18 and 28.
Hardware encoders do not use these settings.
23nixflix.jellyfin.encoding.h265Crf Link copied!
signed integerThe 'Constant Rate Factor' (CRF) is the default quality setting for the x264 and x265 software encoders. You can set the values between 0 and 51, where lower values would result in better quality (at the expense of higher file sizes). Sane values are between 18 and 28.
Hardware encoders do not use these settings.
28nixflix.jellyfin.encoding.hardwareAccelerationType Link copied!
one of "none", "qsv", "amf", "nvenc", "vaapi", "rkmpp", "videotoolbox", "v4l2m2m"Whether or not to use hardware acceleration for transcoding.
If you misconfigure this your streams will not work!. More info: https://jellyfin.org/docs/general/administration/hardware-acceleration/
"none"nixflix.jellyfin.encoding.hardwareDecodingCodecs Link copied!
list of (one of "h264", "hevc", "mpeg2video", "vc1", "vp8", "vp9", "av1")List of codec types to enable hardware decoding for. Should only include codecs your hardware has support for.
Consult https://jellyfin.org/docs/general/administration/hardware-acceleration/ for more info.
[
"h264"
"hevc"
"mpeg2video"
"vc1"
]nixflix.jellyfin.encoding.maxMuxingQueueSize Link copied!
signed integerMaximum number of packets that can be buffered while waiting for all streams to initialize. Try to increase it if you still meet "Too many packets buffered for output stream" error in FFmpeg logs.
The recommended value is 2048.
2048nixflix.jellyfin.encoding.preferSystemNativeHwDecoder Link copied!
booleanPrefer system native hardware decoder over FFmpeg implementations.
truenixflix.jellyfin.encoding.qsvDevice Link copied!
stringSpecify the device for Intel QSV on a multi-GPU system. On Linux, this is the render node, e.g., /dev/dri/renderD128. Leave blank unless you know what you are doing.
""nixflix.jellyfin.encoding.segmentKeepSeconds Link copied!
signed integerTime in seconds for which segments should be kept after they are downloaded by the client. Only works if segment deletion is enabled.
720nixflix.jellyfin.encoding.throttleDelaySeconds Link copied!
signed integerTime in seconds after which the transcoder will be throttled. Must be large enough for the client to maintain a healthy buffer. Only works if throttling is enabled.
180nixflix.jellyfin.encoding.tonemappingAlgorithm Link copied!
one of "none", "bt2390", "clip", "linear", "gamma", "reinhard", "hable", "mobius"Tone mapping can be fine-tuned. If you are not familiar with these options, just keep the default.
"bt2390"nixflix.jellyfin.encoding.tonemappingDesat Link copied!
signed integer or floating point numberApply desaturation for highlights that exceed this level of brightness. The higher the parameter, the more color information will be preserved. This setting helps prevent unnaturally blown-out colors for super-highlights, by (smoothly) turning into white instead. This makes images feel more natural, at the cost of reducing information about out-of-range colors.
The recommended and default values are 0 and 0.5.
0nixflix.jellyfin.encoding.tonemappingMode Link copied!
one of "auto", "max", "rgb", "lum", "itp"Select the tone mapping mode. If you experience blown out highlights try switching to the RGB mode.
"auto"nixflix.jellyfin.encoding.tonemappingParam Link copied!
signed integer or floating point numberTune the tone mapping algorithm. The recommended and default values are 0.
Recommended to leave unchanged
0nixflix.jellyfin.encoding.tonemappingPeak Link copied!
signed integer or floating point numberOverride signal/nominal/reference peak with this value. Useful when the embedded peak information in display metadata is not reliable or when tone mapping from a lower range to a higher range.
The recommended and default values are 100 and 0.
100nixflix.jellyfin.encoding.tonemappingRange Link copied!
one of "auto", "tv", "pc"Select the output color range. Auto is the same as the input range.
"auto"nixflix.jellyfin.encoding.transcodingTempPath Link copied!
stringPath for temporary transcoded files when streaming
"${config.nixflix.jellyfin.cacheDir}/transcodes"nixflix.jellyfin.encoding.vaapiDevice Link copied!
stringThis is the render node that is used for hardware acceleration.
Only used if HardwareAccelerationType is set to vaapi.
"/dev/dri/renderD128"nixflix.jellyfin.encoding.vppTonemappingBrightness Link copied!
signed integer or floating point numberApply brightness gain in VPP tone mapping.
The recommended and default values are 16 and 0.
16nixflix.jellyfin.encoding.vppTonemappingContrast Link copied!
signed integer or floating point numberApply contrast gain in VPP tone mapping.
Both recommended and default values are 1.
1nixflix.jellyfin.group Link copied!
stringGroup under which the service runs
config.nixflix.globals.libraryOwner.groupnixflix.jellyfin.libraries Link copied!
attribute set of (null or (submodule))Jellyfin media libraries to manage declaratively.
By default, libraries are automatically created for enabled Arr services:
- Shows: Created when Sonarr is enabled
- Movies: Created when Radarr is enabled
- Music: Created when Lidarr is enabled
- Anime: Created when either Sonarr anime or Radarr anime is enabled
Default libraries can be removed with the following:
- nixflix.jellyfin.libraries.Movies = lib.mkForce {};
{ }{
"Family Photos" = {
collectionType = "homevideos";
enablePhotos = true;
paths = [
"/mnt/photos"
];
};
Movies = {
collectionType = "movies";
enableRealtimeMonitor = true;
metadataCountryCode = "US";
paths = [
"/mnt/movies"
];
preferredMetadataLanguage = "en";
};
Shows = {
collectionType = "tvshows";
paths = [
"/mnt/tv"
];
seasonZeroDisplayName = "Specials";
};
}nixflix.jellyfin.libraries.<name>.allowEmbeddedSubtitles Link copied!
one of "AllowAll", "AllowText", "AllowImage", "AllowNone"Control which types of embedded subtitles to allow:
- AllowAll: Allow all embedded subtitles
- AllowText: Allow only text-based embedded subtitles
- AllowImage: Allow only image-based embedded subtitles
- AllowNone: Don't allow any embedded subtitles
"AllowAll"nixflix.jellyfin.libraries.<name>.automaticRefreshIntervalDays Link copied!
signed integerDays between automatic metadata refreshes (0 to disable)
0nixflix.jellyfin.libraries.<name>.automaticallyAddToCollection Link copied!
booleanAutomatically add items to collections based on metadata
falsenixflix.jellyfin.libraries.<name>.collectionType Link copied!
one of "movies", "tvshows", "music", "musicvideos", "homevideos", "boxsets", "books", "mixed"The type of media library.
- movies: Movie library
- tvshows: TV Shows library
- music: Music library
- musicvideos: Music Videos library
- homevideos: Home Videos (and Photos) library
- boxsets: Box Sets library
- books: Books library
- mixed: Mixed Movies and TV Shows library
"movies"nixflix.jellyfin.libraries.<name>.customTagDelimiters Link copied!
list of stringCustom delimiters for parsing tags
[ ]nixflix.jellyfin.libraries.<name>.delimiterWhitelist Link copied!
list of stringWhitelist of delimiters to preserve
[ ]nixflix.jellyfin.libraries.<name>.disabledLocalMetadataReaders Link copied!
list of stringList of local metadata readers to disable
[ ]nixflix.jellyfin.libraries.<name>.disabledLyricFetchers Link copied!
list of stringList of lyric fetchers to disable
[ ]nixflix.jellyfin.libraries.<name>.disabledMediaSegmentProviders Link copied!
list of stringList of media segment providers to disable
[ ]nixflix.jellyfin.libraries.<name>.disabledSubtitleFetchers Link copied!
list of stringList of subtitle fetchers to disable
[ ]nixflix.jellyfin.libraries.<name>.enableAutomaticSeriesGrouping Link copied!
booleanAutomatically group series together
truenixflix.jellyfin.libraries.<name>.enableChapterImageExtraction Link copied!
booleanExtract chapter images from video files
truenixflix.jellyfin.libraries.<name>.enableEmbeddedEpisodeInfos Link copied!
booleanUse embedded episode information from media files
truenixflix.jellyfin.libraries.<name>.enableEmbeddedExtrasTitles Link copied!
booleanUse embedded titles for extras
truenixflix.jellyfin.libraries.<name>.enableEmbeddedTitles Link copied!
booleanUse embedded titles from media files
truenixflix.jellyfin.libraries.<name>.enableLUFSScan Link copied!
booleanEnable LUFS (Loudness Units Full Scale) audio normalization scanning
truenixflix.jellyfin.libraries.<name>.enablePhotos Link copied!
booleanEnable photo support in this library
truenixflix.jellyfin.libraries.<name>.enableRealtimeMonitor Link copied!
booleanMonitor the library folders for file changes in real-time
truenixflix.jellyfin.libraries.<name>.enableTrickplayImageExtraction Link copied!
booleanExtract trickplay images (thumbnails for seeking)
truenixflix.jellyfin.libraries.<name>.enabled Link copied!
booleanWhether this library is enabled
truenixflix.jellyfin.libraries.<name>.extractChapterImagesDuringLibraryScan Link copied!
booleanExtract chapter images during library scan (vs on-demand)
truenixflix.jellyfin.libraries.<name>.extractTrickplayImagesDuringLibraryScan Link copied!
booleanExtract trickplay images during library scan (vs on-demand)
truenixflix.jellyfin.libraries.<name>.localMetadataReaderOrder Link copied!
list of stringOrder in which to use local metadata readers
[ ]nixflix.jellyfin.libraries.<name>.lyricFetcherOrder Link copied!
list of stringOrder in which to use lyric fetchers
[ ]nixflix.jellyfin.libraries.<name>.mediaSegmentProviderOrder Link copied!
list of stringOrder in which to use media segment providers
[ ]nixflix.jellyfin.libraries.<name>.metadataCountryCode Link copied!
null or stringCountry code for metadata (e.g., 'US', 'GB', 'FR')
null"US"nixflix.jellyfin.libraries.<name>.metadataSavers Link copied!
list of stringList of metadata savers to enable
[ ]nixflix.jellyfin.libraries.<name>.paths Link copied!
list of stringList of media folder paths for this library
[ ][
"/mnt/movies"
"/media/films"
]nixflix.jellyfin.libraries.<name>.preferNonstandardArtistsTag Link copied!
booleanPrefer non-standard artist tags in music files
falsenixflix.jellyfin.libraries.<name>.preferredMetadataLanguage Link copied!
null or stringPreferred language for metadata (e.g., 'en', 'fr', 'de')
null"en"nixflix.jellyfin.libraries.<name>.requirePerfectSubtitleMatch Link copied!
booleanRequiring a perfect match will filter subtitles to include only those that have been tested and verified with your exact video file. Unchecking this will increase the likelihood of subtitles being downloaded, but will increase the chances of mistimed or incorrect subtitle text.
Default is false because the requirements are pretty strict and make it difficult to actually find any subtitles at all.
truenixflix.jellyfin.libraries.<name>.saveLocalMetadata Link copied!
booleanSave metadata to .nfo files alongside media
truenixflix.jellyfin.libraries.<name>.saveLyricsWithMedia Link copied!
booleanSave downloaded lyrics alongside media files
falsenixflix.jellyfin.libraries.<name>.saveSubtitlesWithMedia Link copied!
booleanSave downloaded subtitles alongside media files
truenixflix.jellyfin.libraries.<name>.saveTrickplayWithMedia Link copied!
booleanSave trickplay images alongside media files
falsenixflix.jellyfin.libraries.<name>.seasonZeroDisplayName Link copied!
stringDisplay name for season 0 (specials)
"Specials"nixflix.jellyfin.libraries.<name>.skipSubtitlesIfAudioTrackMatches Link copied!
booleanUncheck this to ensure all videos have subtitles, regardless of audio language.
falsenixflix.jellyfin.libraries.<name>.skipSubtitlesIfEmbeddedSubtitlesPresent Link copied!
booleanKeeping text versions of subtitles will result in more efficient delivery and decrease the likelihood of video transcoding.
truenixflix.jellyfin.libraries.<name>.subtitleDownloadLanguages Link copied!
list of stringLanguages to download subtitles for
[ ][
"eng"
"fra"
]nixflix.jellyfin.libraries.<name>.subtitleFetcherOrder Link copied!
list of stringOrder in which to use subtitle fetchers
lib.optional config.nixflix.jellyfin.plugins."Open Subtitles".enable "Open Subtitles"
++ lib.optional config.nixflix.jellyfin.plugins."subbuzz".enable "subbuzz";
nixflix.jellyfin.libraries.<name>.typeOptions Link copied!
list of (submodule)Content type-specific metadata and image fetcher configuration
[ ][
{
imageFetchers = [
"TheMovieDb"
];
metadataFetchers = [
"TheMovieDb"
"The Open Movie Database"
];
type = "Movie";
}
]nixflix.jellyfin.libraries.<name>.typeOptions.*.imageFetcherOrder Link copied!
list of stringOrder in which to use image fetchers
[ ]nixflix.jellyfin.libraries.<name>.typeOptions.*.imageFetchers Link copied!
list of stringList of image fetchers to enable for this type
[ ]nixflix.jellyfin.libraries.<name>.typeOptions.*.imageOptions Link copied!
list of (submodule)Image download options for this type
[ ]nixflix.jellyfin.libraries.<name>.typeOptions.*.imageOptions.*.limit Link copied!
signed integerMaximum number of images of this type (0 for unlimited)
0nixflix.jellyfin.libraries.<name>.typeOptions.*.imageOptions.*.minWidth Link copied!
signed integerMinimum width for images of this type
0nixflix.jellyfin.libraries.<name>.typeOptions.*.imageOptions.*.type Link copied!
one of "Primary", "Art", "Backdrop", "Banner", "Logo", "Thumb", "Disc", "Box", "Screenshot", "Menu", "Chapter", "BoxRear", "Profile"The image type
nixflix.jellyfin.libraries.<name>.typeOptions.*.metadataFetcherOrder Link copied!
list of stringOrder in which to use metadata fetchers
[ ]nixflix.jellyfin.libraries.<name>.typeOptions.*.metadataFetchers Link copied!
list of stringList of metadata fetchers to enable for this type
[ ]nixflix.jellyfin.libraries.<name>.typeOptions.*.type Link copied!
stringThe content type (e.g., 'Movie', 'Series', 'Season', 'Episode', 'MusicAlbum', 'MusicArtist', 'Audio')
"Movie"nixflix.jellyfin.libraries.<name>.useCustomTagDelimiters Link copied!
booleanUse custom tag delimiters for parsing metadata
falsenixflix.jellyfin.logDir Link copied!
absolute pathDirectory where the Jellyfin logs will be stored,
passed with --logdir see #log-directory
"${config.nixflix.stateDir}/jellyfin/log"nixflix.jellyfin.network.autoDiscovery Link copied!
booleanEnable auto-discovery
truenixflix.jellyfin.network.baseUrl Link copied!
stringBase URL for Jellyfin (URL prefix) http://localhost:8096/<baseUrl>
"""jellyfin"nixflix.jellyfin.network.certificatePassword Link copied!
string or (submodule)Certificate password.
!!! warning
Can be a plain string (visible in Nix store) or { _secret = /path/to/file; } for file-based secrets.
Plain-text secrets will be visible in the Nix store. Use `{ _secret = path; }` for sensitive data.
null{ _secret = "/run/secrets/secret-file"; }nixflix.jellyfin.network.certificatePath Link copied!
string or absolute pathPath to certificate file
""nixflix.jellyfin.network.enablePublishedServerUriByRequest Link copied!
booleanEnable published server URI by request
falsenixflix.jellyfin.network.enableRemoteAccess Link copied!
booleanEnable remote access. (Disabling this can cause unexpected authentication failures)
truenixflix.jellyfin.network.ignoreVirtualInterfaces Link copied!
booleanIgnore virtual interfaces
truenixflix.jellyfin.network.internalHttpPort Link copied!
integer between 0 and 65535 (both inclusive)Internal HTTP port
8096nixflix.jellyfin.network.internalHttpsPort Link copied!
integer between 0 and 65535 (both inclusive)Internal HTTPS port
8920nixflix.jellyfin.network.isRemoteIPFilterBlacklist Link copied!
booleanIs remote IP filter a blacklist
falsenixflix.jellyfin.network.knownProxies Link copied!
list of stringList of IP addresses or hostnames of known proxies used when connecting to your Jellyfin instance. This is required to make proper use of 'X-Forwarded-For' headers.
[ ]nixflix.jellyfin.network.localNetworkAddresses Link copied!
list of stringOverride the local IP address for the HTTP server. If left empty, the server will bind to all available addresses.
if (config.nixflix.reverseProxy.enable && !config.nixflix.jellyfin.vpn.enable)
then [ "127.0.0.1" ]
else [ ]
nixflix.jellyfin.network.localNetworkSubnets Link copied!
list of stringIP addresses or IP/netmask entries for networks that will be considered on local network when enforcing bandwidth and remote access restrictions. If left blank, all RFC1918 addresses are considered local.
[ ]nixflix.jellyfin.network.publicHttpPort Link copied!
integer between 0 and 65535 (both inclusive)Public HTTP port
8096nixflix.jellyfin.network.publicHttpsPort Link copied!
integer between 0 and 65535 (both inclusive)Public HTTPS port
8920nixflix.jellyfin.network.publishedServerUriBySubnet Link copied!
list of stringList of published server URIs by subnet
[ ]nixflix.jellyfin.network.remoteIpFilter Link copied!
list of stringRemote IP filter list
[ ]nixflix.jellyfin.network.virtualInterfaceNames Link copied!
list of stringList of virtual interface names
[
"veth"
]nixflix.jellyfin.openFirewall Link copied!
booleanOpen ports in the firewall for Jellyfin. TCP ports 8096 and 8920, UDP ports 1900 and 7359.
falsenixflix.jellyfin.plugins Link copied!
open submodule of attribute set of (submodule)Jellyfin plugins to manage declaratively.
Each key is the plugin name exactly as it appears in the Jellyfin repository manifest (e.g. "Anime", "Bookshelf", "Trakt"). Plugin names must be unique across all configured plugin repositories.
Plugins are installed from package. This can either be a normal Nix
derivation, or a repository lookup created with
nixflix.lib.jellyfinPlugins.fromRepo.
Plugin changes (installs, removals, version updates) cause Jellyfin to restart automatically. Plan plugin changes for maintenance windows to avoid interrupting active streams.
{ }{
"Bookshelf" = {
package = nixflix.lib.jellyfinPlugins.fromRepo {
version = "13.0.0.0";
hash = "sha256-16jaQRh1rIFE27nSSEWNF7UjVsPJDaRf24Ews0BZGas=";
};
config = {
# Plain string (visible in Nix store)
ComicVineApiKey = "my-api-key";
# Or as a secret (read from file at activation time)
# ComicVineApiKey._secret = "/run/secrets/comic-vine-api-key";
};
};
"Intro Skipper" = {
package = myJellyfinPlugin;
};
}
nixflix.jellyfin.plugins."Open Subtitles" Link copied!
submoduleThis option has no description.
{ }nixflix.jellyfin.plugins."Open Subtitles".apiName Link copied!
stringThe plugin's Name as reported by the Jellyfin /Plugins API.
Defaults to the attribute name. Set this when the plugin's
self-reported API name differs from its manifest name (e.g. the
SSO-Auth plugin is listed in the manifest as "SSO Authentication"
but reports itself via the API as "SSO-Auth").
Can be found when running the following while the plugin is installed:
curl -s -H "Authorization: MediaBrowser Token=$(sudo cat /run/jellyfin/auth-token)" \
http://127.0.0.1:8096/Plugins | jq '.[].Name'
"‹name›""SSO-Auth"nixflix.jellyfin.plugins."Open Subtitles".config Link copied!
submoduleOpen Subtitles plugin configuration payload as posted to the Jellyfin API. You can utilize this plugin by editing a library and modifying the options for subtitle downloads.
{ }nixflix.jellyfin.plugins."Open Subtitles".config.Password Link copied!
string or (submodule)Password for OpenSubtitles.com
!!! warning
Can be a plain string (visible in Nix store) or { _secret = /path/to/file; } for file-based secrets.
Plain-text secrets will be visible in the Nix store. Use `{ _secret = path; }` for sensitive data.
null{ _secret = "/run/secrets/secret-file"; }nixflix.jellyfin.plugins."Open Subtitles".config.Username Link copied!
stringUsername from OpenSubtitles.com
""nixflix.jellyfin.plugins."Open Subtitles".enable Link copied!
booleanWhether this plugin should be installed. When false, the plugin is treated as absent: if it was previously installed by nixflix it will be uninstalled on the next nixos-rebuild. This is equivalent to removing the attribute entirely from nixflix.jellyfin.plugins.
falsenixflix.jellyfin.plugins."Open Subtitles".package Link copied!
null or package or (submodule)Nix package containing the unpacked Jellyfin plugin files to copy into Jellyfin's plugin directory.
For repository-managed plugins, use
nixflix.lib.jellyfinPlugins.fromRepo { version = ...; hash = ...; }
to resolve a deterministic package from the pinned plugin manifests.
{
hash = "sha256-b6sgmgBlvhUAhFuq0p/EjB3604NGBkpS4NP33n1hfKc=";
repository = null;
version = "24.0.0.0";
}nixflix.lib.jellyfinPlugins.fromRepo {
version = "13.0.0.0";
hash = "sha256-16jaQRh1rIFE27nSSEWNF7UjVsPJDaRf24Ews0BZGas=";
}
nixflix.jellyfin.plugins."Subtitle Extract" Link copied!
submoduleThis option has no description.
{ }nixflix.jellyfin.plugins."Subtitle Extract".apiName Link copied!
stringThe plugin's Name as reported by the Jellyfin /Plugins API.
Defaults to the attribute name. Set this when the plugin's
self-reported API name differs from its manifest name (e.g. the
SSO-Auth plugin is listed in the manifest as "SSO Authentication"
but reports itself via the API as "SSO-Auth").
Can be found when running the following while the plugin is installed:
curl -s -H "Authorization: MediaBrowser Token=$(sudo cat /run/jellyfin/auth-token)" \
http://127.0.0.1:8096/Plugins | jq '.[].Name'
"‹name›""SSO-Auth"nixflix.jellyfin.plugins."Subtitle Extract".config Link copied!
submodulePlugin to automatically extract embedded subtitles.
{ }nixflix.jellyfin.plugins."Subtitle Extract".config.AllSubtitleCodecs Link copied!
list of (submodule)Full list of all supported subtitle codecs with their display names. Only works when IsAdvancedMode = true;.
[
{
Text = "ASS (Advanced SSA) subtitle (.ass & .ssa files - often found on anime)";
Value = "ass";
}
{
Text = "DVD subtitles";
Value = "DVDSUB";
}
{
Text = "SubRip subtitle (.srt files - most common type of subtitles)";
Value = "subrip";
}
{
Text = "HDMV Presentation Graphic Stream subtitles (often found on Blu-ray)";
Value = "PGSSUB";
}
{
Text = "DVB subtitles";
Value = "DVBSUB";
}
{
Text = "EIA-608 closed captions";
Value = "eia_608";
}
{
Text = "JACOsub subtitle";
Value = "jacosub";
}
{
Text = "MicroDVD subtitle";
Value = "microdvd";
}
{
Text = "MOV text";
Value = "mov_text";
}
{
Text = "MPL2 subtitle";
Value = "mpl2";
}
{
Text = "PJS (Phoenix Japanimation Society) subtitle";
Value = "pjs";
}
{
Text = "RealText subtitle";
Value = "realtext";
}
{
Text = "SAMI subtitle";
Value = "sami";
}
{
Text = "Spruce subtitle format";
Value = "stl";
}
{
Text = "SubViewer subtitle";
Value = "subviewer";
}
{
Text = "SubViewer v1 subtitle";
Value = "subviewer1";
}
{
Text = "raw UTF-8 text";
Value = "text";
}
{
Text = "VPlayer subtitle";
Value = "vplayer";
}
{
Text = "WebVTT subtitle";
Value = "webvtt";
}
{
Text = "XSUB";
Value = "xsub";
}
]nixflix.jellyfin.plugins."Subtitle Extract".config.AllSubtitleCodecs.*.Text Link copied!
stringHuman-readable display name and description of the subtitle format.
nixflix.jellyfin.plugins."Subtitle Extract".config.AllSubtitleCodecs.*.Value Link copied!
stringCodec identifier used internally to reference the subtitle format.
nixflix.jellyfin.plugins."Subtitle Extract".config.ExtractionDuringLibraryScan Link copied!
booleanWhether to extract embedded subtitles and attachments during a library scan.
falsenixflix.jellyfin.plugins."Subtitle Extract".config.IncludeGraphicalSubtitles Link copied!
booleanIncludes: DVD subtitles (VOBSUB), Blu-ray subtitles (PGS), and other image-based formats. It will extract subtitles from medias containing at least one graphical subtitle.
truenixflix.jellyfin.plugins."Subtitle Extract".config.IncludeTextSubtitles Link copied!
booleanIncludes: SRT, ASS/SSA, WebVTT, and other text-based subtitle formats. It will extract subtitles from medias containing only text subtitles.
truenixflix.jellyfin.plugins."Subtitle Extract".config.IsAdvancedMode Link copied!
booleanEnable advanced codec selection for fine-grained control
falsenixflix.jellyfin.plugins."Subtitle Extract".config.SelectedAttachmentsLibraries Link copied!
list of stringList of libraries from which attachments will be extracted.
[ ]nixflix.jellyfin.plugins."Subtitle Extract".config.SelectedCodecs Link copied!
list of stringLimit subtitle extraction to media with all subtitle streams matching the selected codecs. Only works when IsAdvancedMode = true;.
[
"ass"
"DVDSUB"
"subrip"
"PGSSUB"
"DVBSUB"
"eia_608"
"jacosub"
"microdvd"
"mov_text"
"mpl2"
"pjs"
"realtext"
"sami"
"stl"
"subviewer"
"subviewer1"
"text"
"vplayer"
"webvtt"
"xsub"
]nixflix.jellyfin.plugins."Subtitle Extract".config.SelectedSubtitlesLibraries Link copied!
list of stringList of libraries from which subtitles will be extracted.
[ ]nixflix.jellyfin.plugins."Subtitle Extract".enable Link copied!
booleanWhether this plugin should be installed. When false, the plugin is treated as absent: if it was previously installed by nixflix it will be uninstalled on the next nixos-rebuild. This is equivalent to removing the attribute entirely from nixflix.jellyfin.plugins.
falsenixflix.jellyfin.plugins."Subtitle Extract".package Link copied!
null or package or (submodule)Nix package containing the unpacked Jellyfin plugin files to copy into Jellyfin's plugin directory.
For repository-managed plugins, use
nixflix.lib.jellyfinPlugins.fromRepo { version = ...; hash = ...; }
to resolve a deterministic package from the pinned plugin manifests.
{
hash = "sha256-vnSYKFf0L6Bk6jOegxs/Rk+2n5oEAQpxTbLqxNpYh2o=";
repository = null;
version = "7.0.0.0";
}nixflix.lib.jellyfinPlugins.fromRepo {
version = "13.0.0.0";
hash = "sha256-16jaQRh1rIFE27nSSEWNF7UjVsPJDaRf24Ews0BZGas=";
}
nixflix.jellyfin.plugins.<name>.apiName Link copied!
stringThe plugin's Name as reported by the Jellyfin /Plugins API.
Defaults to the attribute name. Set this when the plugin's
self-reported API name differs from its manifest name (e.g. the
SSO-Auth plugin is listed in the manifest as "SSO Authentication"
but reports itself via the API as "SSO-Auth").
Can be found when running the following while the plugin is installed:
curl -s -H "Authorization: MediaBrowser Token=$(sudo cat /run/jellyfin/auth-token)" \
http://127.0.0.1:8096/Plugins | jq '.[].Name'
"‹name›""SSO-Auth"nixflix.jellyfin.plugins..apiName nixflix.jellyfin.plugins.<name>.config Link copied!
attribute set of anythingPlugin configuration payload as seen in the Jellyfin UI/API. All
attributes under this option are POSTed to
/Plugins/<id>/Configuration.
{ }{
ComicVineApiKey._secret = "/run/secrets/comic-vine-api-key";
}
nixflix.jellyfin.plugins..config nixflix.jellyfin.plugins.<name>.enable Link copied!
booleanWhether this plugin should be installed. When false, the plugin is treated as absent: if it was previously installed by nixflix it will be uninstalled on the next nixos-rebuild. This is equivalent to removing the attribute entirely from nixflix.jellyfin.plugins.
truenixflix.jellyfin.plugins..enable nixflix.jellyfin.plugins.<name>.package Link copied!
null or package or (submodule)Nix package containing the unpacked Jellyfin plugin files to copy into Jellyfin's plugin directory.
For repository-managed plugins, use
nixflix.lib.jellyfinPlugins.fromRepo { version = ...; hash = ...; }
to resolve a deterministic package from the pinned plugin manifests.
nullnixflix.lib.jellyfinPlugins.fromRepo {
version = "13.0.0.0";
hash = "sha256-16jaQRh1rIFE27nSSEWNF7UjVsPJDaRf24Ews0BZGas=";
}
nixflix.jellyfin.plugins..package nixflix.jellyfin.plugins.subbuzz Link copied!
submoduleThis option has no description.
{ }nixflix.jellyfin.plugins.subbuzz.apiName Link copied!
stringThe plugin's Name as reported by the Jellyfin /Plugins API.
Defaults to the attribute name. Set this when the plugin's
self-reported API name differs from its manifest name (e.g. the
SSO-Auth plugin is listed in the manifest as "SSO Authentication"
but reports itself via the API as "SSO-Auth").
Can be found when running the following while the plugin is installed:
curl -s -H "Authorization: MediaBrowser Token=$(sudo cat /run/jellyfin/auth-token)" \
http://127.0.0.1:8096/Plugins | jq '.[].Name'
"‹name›""SSO-Auth"nixflix.jellyfin.plugins.subbuzz.config Link copied!
submoduleSubBuzz plugin configuration payload as posted to the Jellyfin API.
{ }nixflix.jellyfin.plugins.subbuzz.config.Cache Link copied!
submoduleSettings controlling subtitle and search result caching behaviour.
{ }nixflix.jellyfin.plugins.subbuzz.config.Cache.BasePath Link copied!
stringSpecify a custom location for the cache files. Leave blank to use the default.
""nixflix.jellyfin.plugins.subbuzz.config.Cache.Search Link copied!
booleanSave results from search requests and reuse them for a specified period of time.
truenixflix.jellyfin.plugins.subbuzz.config.Cache.SearchLifeInMinutes Link copied!
(one of 1440, 60, 10080, 720, 2880, 120, 20160, 4320, 30240, 5760, 240, 40320, 480, 0) or (one of "1 day", "1 hour", "1 week", "12 hours", "2 days", "2 hours", "2 weeks", "3 days", "3 weeks", "4 days", "4 hours", "4 weeks", "8 hours", "Use cache only in case of error") convertible to itSend search requests to the providers again only after the selected period expires.
"4 hours"nixflix.jellyfin.plugins.subbuzz.config.Cache.SubLifeInMinutes Link copied!
(one of 1440, 60, 10080, 720, 2880, 120, 20160, 4320, 30240, 43200, 240, 86400, 480, 129600, 1000001, 0) or (one of "1 day", "1 hour", "1 week", "12 hours", "2 days", "2 hours", "2 weeks", "3 days", "3 weeks", "30 days", "4 hours", "60 days", "8 hours", "90 days", "Always", "Use cache only in case of error") convertible to itThe subtitles will be downloaded again only when the selected period expires. Usually, once the subtitles are uploaded, they are never updated. Therefore, you may consider increasing the default period to speed up subsequent subtitle downloads.
"1 week"nixflix.jellyfin.plugins.subbuzz.config.Cache.Subtitle Link copied!
booleanStore the downloaded subtitle files locally to reduce the requests to the providers.
truenixflix.jellyfin.plugins.subbuzz.config.EnableAddic7ed Link copied!
booleanEnable the Addic7ed subtitle provider.
falsenixflix.jellyfin.plugins.subbuzz.config.EnableOpenSubtitles Link copied!
booleanEnable the OpenSubtitles subtitle provider.
falsenixflix.jellyfin.plugins.subbuzz.config.EnablePodnapisiNet Link copied!
booleanEnable the Podnapisi.NET subtitle provider.
falsenixflix.jellyfin.plugins.subbuzz.config.EnableSubSource Link copied!
booleanEnable the SubSource subtitle provider.
falsenixflix.jellyfin.plugins.subbuzz.config.EnableSubdlCom Link copied!
booleanEnable the Subdl.com subtitle provider.
falsenixflix.jellyfin.plugins.subbuzz.config.EnableSubf2m Link copied!
booleanEnable the Subf2m subtitle provider.
falsenixflix.jellyfin.plugins.subbuzz.config.EnableSubscene Link copied!
booleanEnable the Subscene subtitle provider.
falsenixflix.jellyfin.plugins.subbuzz.config.EnableSubssabbz Link copied!
booleanEnable the Subssabbz subtitle provider.
falsenixflix.jellyfin.plugins.subbuzz.config.EnableSubsunacsNet Link copied!
booleanEnable the Subsunacs.net subtitle provider.
falsenixflix.jellyfin.plugins.subbuzz.config.EnableYavkaNet Link copied!
booleanEnable the Yavka.net subtitle provider.
falsenixflix.jellyfin.plugins.subbuzz.config.EnableYifySubtitles Link copied!
booleanEnable the YIFY Subtitles provider.
falsenixflix.jellyfin.plugins.subbuzz.config.HashMatchByScore Link copied!
signed integerScore threshold at which a subtitle is considered a hash match.
100nixflix.jellyfin.plugins.subbuzz.config.MinScore Link copied!
signed integerMinimum score a subtitle must achieve to be downloaded.
50nixflix.jellyfin.plugins.subbuzz.config.OpenSubApiKey Link copied!
string or (submodule)API Key for the OpenSubtitles service.
!!! warning
Can be a plain string (visible in Nix store) or { _secret = /path/to/file; } for file-based secrets.
Plain-text secrets will be visible in the Nix store. Use `{ _secret = path; }` for sensitive data.
null{ _secret = "/run/secrets/secret-file"; }nixflix.jellyfin.plugins.subbuzz.config.OpenSubPassword Link copied!
string or (submodule)Password for authenticating with OpenSubtitles.
!!! warning
Can be a plain string (visible in Nix store) or { _secret = /path/to/file; } for file-based secrets.
Plain-text secrets will be visible in the Nix store. Use `{ _secret = path; }` for sensitive data.
null{ _secret = "/run/secrets/secret-file"; }nixflix.jellyfin.plugins.subbuzz.config.OpenSubToken Link copied!
string or (submodule)Session token for the OpenSubtitles service. Can be found on the OpenSubtitles.com profile page.
!!! warning
Can be a plain string (visible in Nix store) or { _secret = /path/to/file; } for file-based secrets.
Plain-text secrets will be visible in the Nix store. Use `{ _secret = path; }` for sensitive data.
null{ _secret = "/run/secrets/secret-file"; }nixflix.jellyfin.plugins.subbuzz.config.OpenSubUseHash Link copied!
booleanWhen enabled, the hash of the video file will be sent in the search requests to opensubtitles.com
truenixflix.jellyfin.plugins.subbuzz.config.OpenSubUserName Link copied!
stringUsername for authenticating with OpenSubtitles.
""nixflix.jellyfin.plugins.subbuzz.config.SubEncoding Link copied!
submoduleSettings controlling subtitle character encoding detection and conversion.
{ }nixflix.jellyfin.plugins.subbuzz.config.SubEncoding.AutoDetectEncoding Link copied!
booleanWhether to automatically detect the encoding of subtitle files.
truenixflix.jellyfin.plugins.subbuzz.config.SubEncoding.DefaultEncoding Link copied!
stringUse this encoding in cases where automatic encoding detection is disabled or when automatic detection fails.
"utf-8"nixflix.jellyfin.plugins.subbuzz.config.SubPostProcessing Link copied!
submoduleSettings for post-processing subtitle files after download.
{ }nixflix.jellyfin.plugins.subbuzz.config.SubPostProcessing.AdjustDuration Link copied!
booleanCorrect subtitles reading speed when saving.
falsenixflix.jellyfin.plugins.subbuzz.config.SubPostProcessing.AdjustDurationCps Link copied!
signed integerCharacters per second target used when adjusting subtitle duration.
15nixflix.jellyfin.plugins.subbuzz.config.SubPostProcessing.AdjustDurationExtendOnly Link copied!
booleanWhen adjusting subtitles do not decrease the original duration.
truenixflix.jellyfin.plugins.subbuzz.config.SubPostProcessing.EncodeSubtitlesToUTF8 Link copied!
booleanWhether to re-encode downloaded subtitles to UTF-8.
truenixflix.jellyfin.plugins.subbuzz.config.SubSourceApiKey Link copied!
string or (submodule)Provide your API Key for doing API requests, if left empty provider will be disabled.
!!! warning
Can be a plain string (visible in Nix store) or { _secret = /path/to/file; } for file-based secrets.
Plain-text secrets will be visible in the Nix store. Use `{ _secret = path; }` for sensitive data.
null{ _secret = "/run/secrets/secret-file"; }nixflix.jellyfin.plugins.subbuzz.config.SubdlApiKey Link copied!
string or (submodule)Provide your API Key for doing API requests, if left empty provider will be disabled.
!!! warning
Can be a plain string (visible in Nix store) or { _secret = /path/to/file; } for file-based secrets.
Plain-text secrets will be visible in the Nix store. Use `{ _secret = path; }` for sensitive data.
null{ _secret = "/run/secrets/secret-file"; }nixflix.jellyfin.plugins.subbuzz.config.SubtitleInfoWithHtml Link copied!
booleanFormat subtitle information displayed in search dialog using HTML. This may cause display issues in clients that doesn't support HTML. To use this with Jellyfin web interface you need to patch Jellyfin Web Client.
falsenixflix.jellyfin.plugins.subbuzz.enable Link copied!
booleanWhether this plugin should be installed. When false, the plugin is treated as absent: if it was previously installed by nixflix it will be uninstalled on the next nixos-rebuild. This is equivalent to removing the attribute entirely from nixflix.jellyfin.plugins.
falsenixflix.jellyfin.plugins.subbuzz.package Link copied!
null or package or (submodule)Nix package containing the unpacked Jellyfin plugin files to copy into Jellyfin's plugin directory.
For repository-managed plugins, use
nixflix.lib.jellyfinPlugins.fromRepo { version = ...; hash = ...; }
to resolve a deterministic package from the pinned plugin manifests.
{
hash = "sha256-MtHFChAU2ZAtWROSbqxKW8fle8UeAhUt1jIEvw/VZjs=";
repository = null;
version = "1.4.1.0";
}nixflix.lib.jellyfinPlugins.fromRepo {
version = "13.0.0.0";
hash = "sha256-16jaQRh1rIFE27nSSEWNF7UjVsPJDaRf24Ews0BZGas=";
}
nixflix.jellyfin.reverseProxy.expose Link copied!
booleanWhether to expose Jellyfin via the reverse proxy.
truenixflix.jellyfin.subdomain Link copied!
stringSubdomain prefix for reverse proxy.
"jellyfin"nixflix.jellyfin.system.activityLogRetentionDays Link copied!
null or signed integerNumber of days to retain activity logs. Set to null to never delete.
30nixflix.jellyfin.system.allowClientLogUpload Link copied!
booleanThis option has no description.
truenixflix.jellyfin.system.cachePath Link copied!
stringSpecify a custom location for server cache files such as images.
"${config.nixflix.jellyfin.cacheDir}"nixflix.jellyfin.system.cacheSize Link copied!
signed integerCache size in MB. Must be at least 3 due to Jellyfin's internal caching implementation. The default of 1800 matches Jellyfin's built-in default.
1800nixflix.jellyfin.system.castReceiverApplications Link copied!
list of (submodule)This option has no description.
[
{
id = "F007D354";
name = "Stable";
}
{
id = "6F511C87";
name = "Unstable";
}
]nixflix.jellyfin.system.castReceiverApplications.*.id Link copied!
stringCast receiver application ID
nixflix.jellyfin.system.castReceiverApplications.*.name Link copied!
stringDisplay name for the cast receiver
nixflix.jellyfin.system.chapterImageResolution Link copied!
one of "MatchSource", "P2160", "P1440", "P1080", "P720", "P480", "P360", "P240", "P144"The resolution of the extracted chapter images. Changing this will have no effect on existing dummy chapters.
"MatchSource"nixflix.jellyfin.system.codecsUsed Link copied!
list of stringThis option has no description.
[ ]nixflix.jellyfin.system.contentTypes Link copied!
list of (submodule)This option has no description.
[ ]nixflix.jellyfin.system.corsHosts Link copied!
list of stringThis option has no description.
[
"*"
]nixflix.jellyfin.system.disableLiveTvChannelUserDataName Link copied!
booleanThis option has no description.
truenixflix.jellyfin.system.displaySpecialsWithinSeasons Link copied!
booleanThis option has no description.
truenixflix.jellyfin.system.dummyChapterDuration Link copied!
signed integerThis option has no description.
0nixflix.jellyfin.system.enableCaseSensitiveItemIds Link copied!
booleanThis option has no description.
truenixflix.jellyfin.system.enableExternalContentInSuggestions Link copied!
booleanThis option has no description.
truenixflix.jellyfin.system.enableFolderView Link copied!
booleanWhether to enable .
falsetruenixflix.jellyfin.system.enableGroupingMoviesIntoCollections Link copied!
booleanWhether to enable grouping movies into collections.
falsetruenixflix.jellyfin.system.enableGroupingShowsIntoCollections Link copied!
booleanWhether to enable grouping shows into collections.
falsetruenixflix.jellyfin.system.enableLegacyAuthorization Link copied!
booleanEnable legacy authorization mode for backwards compatibility.
truenixflix.jellyfin.system.enableMetrics Link copied!
booleanWhether to enable metrics.
falsetruenixflix.jellyfin.system.enableNormalizedItemByNameIds Link copied!
booleanThis option has no description.
truenixflix.jellyfin.system.enableSlowResponseWarning Link copied!
booleanThis option has no description.
truenixflix.jellyfin.system.imageExtractionTimeoutMs Link copied!
signed integerLeave at 0 for no timeout
0nixflix.jellyfin.system.imageSavingConvention Link copied!
one of "Legacy", "Compatible"Specifies how images are saved. Legacy uses the old format, Compatible uses a more widely compatible format.
"Legacy"nixflix.jellyfin.system.inactiveSessionThreshold Link copied!
signed integerThis option has no description.
0nixflix.jellyfin.system.isPortAuthorized Link copied!
booleanThis option has no description.
truenixflix.jellyfin.system.isStartupWizardCompleted Link copied!
booleanControls whether or not the startup wizard is marked as completed.
Set to false to show the startup wizard when visiting jellyfin (not recommended as this
will happen every time jellyfin is restarted)
truenixflix.jellyfin.system.libraryMetadataRefreshConcurrency Link copied!
signed integerMaximum number of parallel tasks during library scans. Setting this to 0 will choose a limit based on your systems core count.
!!! warning
Setting this number too high may cause issues with network file systems; if you encounter problems lower this number.
0nixflix.jellyfin.system.libraryMonitorDelay Link copied!
signed integerThis option has no description.
60nixflix.jellyfin.system.libraryScanFanoutConcurrency Link copied!
signed integerMaximum number of parallel tasks during library scans. Setting this to 0 will choose a limit based on your systems core count.
!!! warning
Setting this number too high may cause issues with network file systems; if you encounter problems lower this number.
0nixflix.jellyfin.system.libraryUpdateDuration Link copied!
signed integerThis option has no description.
30nixflix.jellyfin.system.logFileRetentionDays Link copied!
signed integerThe amount of days that jellyfin should keep log files before deleting.
3nixflix.jellyfin.system.maxAudiobookResume Link copied!
signed integerTitles are assumed fully played if stopped when the remaining duration is less than this value.
5nixflix.jellyfin.system.maxResumePct Link copied!
signed integerTitles are assumed fully played if stopped after this time.
90nixflix.jellyfin.system.metadataCountryCode Link copied!
stringCountry code for language. Determines stuff like dates, comma placement etc.
"US"nixflix.jellyfin.system.metadataOptions Link copied!
list of (submodule)Configure metadata fetching options for different media types. Each entry specifies which metadata and image sources to use or disable.
[
{
itemType = "Movie";
}
{
disabledImageFetchers = [
"The Open Movie Database"
];
disabledMetadataFetchers = [
"The Open Movie Database"
];
itemType = "MusicVideo";
}
{
itemType = "Series";
}
{
disabledMetadataFetchers = [
"TheAudioDB"
];
itemType = "MusicAlbum";
}
{
disabledMetadataFetchers = [
"TheAudioDB"
];
itemType = "MusicArtist";
}
{
itemType = "BoxSet";
}
{
itemType = "Season";
}
{
itemType = "Episode";
}
]nixflix.jellyfin.system.metadataOptions.*.disabledImageFetchers Link copied!
list of stringList of image fetchers to disable for this media type
[ ]nixflix.jellyfin.system.metadataOptions.*.disabledMetadataFetchers Link copied!
list of stringList of metadata fetchers to disable for this media type
[ ]nixflix.jellyfin.system.metadataOptions.*.disabledMetadataSavers Link copied!
list of stringList of metadata savers to disable for this media type
[ ]nixflix.jellyfin.system.metadataOptions.*.imageFetcherOrder Link copied!
list of stringPriority order for fetching images from remote sources
[ ]nixflix.jellyfin.system.metadataOptions.*.itemType Link copied!
stringMedia type (e.g., Movie, Series, MusicAlbum)
nixflix.jellyfin.system.metadataOptions.*.localMetadataReaderOrder Link copied!
list of stringPriority order for reading local metadata
[ ]nixflix.jellyfin.system.metadataOptions.*.metadataFetcherOrder Link copied!
list of stringPriority order for fetching metadata from remote sources
[ ]nixflix.jellyfin.system.metadataPath Link copied!
stringSpecify a custom location for downloaded artwork and metadata.
"/var/lib/jellyfin/metadata"nixflix.jellyfin.system.minAudiobookResume Link copied!
signed integerTitles are assumed unplayed if stopped before this time.
5nixflix.jellyfin.system.minResumeDurationSeconds Link copied!
signed integerThe shortest video length in seconds that will save playback location and let you resume.
300nixflix.jellyfin.system.minResumePct Link copied!
signed integerTitles are assumed unplayed if stopped before this time.
5nixflix.jellyfin.system.parallelImageEncodingLimit Link copied!
signed integerMaximum number of image encodings that are allowed to run in parallel. Setting this to 0 will choose a limit based on your systems core count.
0nixflix.jellyfin.system.pathSubstitutions Link copied!
list of (submodule)This option has no description.
[ ]nixflix.jellyfin.system.pluginRepositories Link copied!
attribute set of (submodule)Configure which plugin repositories you use. Jellyfin Stable is always present in the set. Adding new plugin repositories will not remove it.
{
"Jellyfin Stable" = {
url = "https://repo.jellyfin.org/files/plugin/manifest.json";
hash = "1ykrpwya7px7dz4h92994kpqlf5jd429z7r4dckbw13236x5mpbx";
enabled = true;
};
}
nixflix.jellyfin.system.pluginRepositories.<name>.enabled Link copied!
booleanWhether to enable this plugin repository
truefalsenixflix.jellyfin.system.pluginRepositories.<name>.hash Link copied!
stringFixed-output hash for the repository manifest. This pins the manifest used to resolve plugin versions to source URLs.
Supports SRI (sha256-Uc6ovnXI3T0WfCqzcnwUZwYCH1tTDYb86pfNlvbOam0=) or nix32 (0vbarvv9dkcpxby8c3akbcgh41k72iy75craghb3vpf8fnzaikji) formats.
"0vbarvv9dkcpxby8c3akbcgh41k72iy75craghb3vpf8fnzaikji"nixflix.jellyfin.system.pluginRepositories.<name>.url Link copied!
stringURL for the plugin repository manifest
"https://repo.jellyfin.org/files/plugin/manifest.json"nixflix.jellyfin.system.preferredMetadataLanguage Link copied!
stringDisplay language of jellyfin.
"en"nixflix.jellyfin.system.quickConnectAvailable Link copied!
booleanWhether or not to enable quickconnect
truenixflix.jellyfin.system.remoteClientBitrateLimit Link copied!
signed integerThis option has no description.
0nixflix.jellyfin.system.removeOldPlugins Link copied!
booleanThis option has no description.
truenixflix.jellyfin.system.saveMetadataHidden Link copied!
booleanWhether to enable .
falsetruenixflix.jellyfin.system.serverName Link copied!
stringThis name will be used to identify the server and will default to the server's hostname.
"${config.networking.hostName}"nixflix.jellyfin.system.skipDeserializationForBasicTypes Link copied!
booleanThis option has no description.
truenixflix.jellyfin.system.slowResponseThresholdMs Link copied!
signed integerHow slow (in ms) would a response have to be before a warning is shown
500nixflix.jellyfin.system.sortRemoveCharacters Link copied!
list of stringThis option has no description.
[
","
"&"
"-"
"{"
"}"
"'"
]nixflix.jellyfin.system.sortRemoveWords Link copied!
list of stringThis option has no description.
[
"the"
"a"
"an"
]nixflix.jellyfin.system.sortReplaceCharacters Link copied!
list of stringThis option has no description.
[
"."
"+"
"%"
]nixflix.jellyfin.system.trickplayOptions.enableHwAcceleration Link copied!
booleanWhether to enable hardware acceleration.
falsetruenixflix.jellyfin.system.trickplayOptions.enableHwEncoding Link copied!
booleanWhether to enable hardware encoding.
Currently only available on QSV, VA-API, VideoToolbox and RKMPP, this option has no effect on other hardware acceleration methods.
falsetruenixflix.jellyfin.system.trickplayOptions.enableKeyFrameOnlyExtraction Link copied!
booleanWhether to enable key frame only extraction.
Extract key frames only for significantly faster processing with less accurate timing. If the configured hardware decoder does not support this mode, will use the software decoder instead.
falsetruenixflix.jellyfin.system.trickplayOptions.interval Link copied!
signed integerInterval of time (ms) between each new trickplay image.
10000nixflix.jellyfin.system.trickplayOptions.jpegQuality Link copied!
integer between 0 and 100 (both inclusive)The JPEG compression quality for trickplay images.
90nixflix.jellyfin.system.trickplayOptions.processPriority Link copied!
one of "High", "AboveNormal", "Normal", "BelowNormal", "Idle"Setting this lower or higher will determine how the CPU prioritizes the ffmpeg trickplay generation process in relation to other processes. If you notice slowdown while generating trickplay images but don't want to fully stop their generation, try lowering this as well as the thread count.
"BelowNormal"nixflix.jellyfin.system.trickplayOptions.processThreads Link copied!
signed integerThe number of threads to pass to the '-threads' argument of ffmpeg.
1nixflix.jellyfin.system.trickplayOptions.qscale Link copied!
integer between 2 and 31 (both inclusive)The quality scale of images output by ffmpeg, with 2 being the highest quality and 31 being the lowest.
4nixflix.jellyfin.system.trickplayOptions.scanBehavior Link copied!
one of "NonBlocking", "Blocking"The default behavior is non blocking, which will add media to the library before trickplay generation is done. Blocking will ensure trickplay files are generated before media is added to the library, but will make scans significantly longer.
"NonBlocking"nixflix.jellyfin.system.trickplayOptions.tileHeight Link copied!
signed integerMaximum number of images per tile in the X direction.
10nixflix.jellyfin.system.trickplayOptions.tileWidth Link copied!
signed integerMaximum number of images per tile in the X direction.
10nixflix.jellyfin.system.trickplayOptions.widthResolutions Link copied!
list of signed integerList of the widths (px) that trickplay images will be generated at. All images should generate proportionally to the source, so a width of 320 on a 16:9 video ends up around 320x180.
[
320
]nixflix.jellyfin.system.uiCulture Link copied!
stringThis option has no description.
"en-US"nixflix.jellyfin.user Link copied!
stringUser under which the service runs
"jellyfin"nixflix.jellyfin.users Link copied!
attribute set of (submodule)User configuration.
Important: At least one user must have policy.isAdministrator = true.
This user will be created during the initial setup wizard and used for
subsequent API operations.
{ }{
admin = {
password = {
_secret = "/run/secrets/jellyfin-admin-password";
};
policy = {
isAdministrator = true;
};
};
}nixflix.jellyfin.users.<name>.configuration Link copied!
submoduleConfiguration for this user
{ }{
enableNextEpisodeAutoPlay = true;
subtitleMode = "Always";
}nixflix.jellyfin.users.<name>.configuration.audioLanguagePreference Link copied!
null or stringThe audio language preference. Defaults to 'Any Language'
null"eng"nixflix.jellyfin.users.<name>.configuration.castReceiverId Link copied!
stringThis option has no description.
"F007D354"nixflix.jellyfin.users.<name>.configuration.displayCollectionsView Link copied!
booleanWhether to show the Collections View
falsetruenixflix.jellyfin.users.<name>.configuration.displayMissingEpisodes Link copied!
booleanWhether to show missing episodes
falsetruenixflix.jellyfin.users.<name>.configuration.enableLocalPassword Link copied!
booleanThis option has no description.
falsetruenixflix.jellyfin.users.<name>.configuration.enableNextEpisodeAutoPlay Link copied!
booleanAutomatically play the next episode
truefalsenixflix.jellyfin.users.<name>.configuration.groupedFolders Link copied!
list of stringThis option has no description.
[ ]nixflix.jellyfin.users.<name>.configuration.hidePlayedInLatest Link copied!
booleanWhether to hide already played titles in the 'Latest' section
truefalsenixflix.jellyfin.users.<name>.configuration.latestItemsExcludes Link copied!
list of stringThis option has no description.
[ ]nixflix.jellyfin.users.<name>.configuration.myMediaExcludes Link copied!
list of stringThis option has no description.
[ ]nixflix.jellyfin.users.<name>.configuration.orderedViews Link copied!
list of stringThis option has no description.
[ ]nixflix.jellyfin.users.<name>.configuration.playDefaultAudioTrack Link copied!
booleanThis option has no description.
truefalsenixflix.jellyfin.users.<name>.configuration.rememberAudioSelections Link copied!
booleanThis option has no description.
truefalsenixflix.jellyfin.users.<name>.configuration.rememberSubtitleSelections Link copied!
booleanThis option has no description.
truefalsenixflix.jellyfin.users.<name>.configuration.subtitleLanguagePreference Link copied!
null or stringThe subtitle language preference. Defaults to 'Any Language'
null"eng"nixflix.jellyfin.users.<name>.configuration.subtitleMode Link copied!
one of "Default", "Always", "OnlyForced", "None", "Smart"- Default: The default subtitle playback mode.
- Always: Always show subtitles.
- OnlyForced: Only show forced subtitles.
- None: Don't show subtitles.
- Smart: Only show subtitles when the current audio stream is in a different language.
"Default"nixflix.jellyfin.users.<name>.enableAutoLogin Link copied!
booleanThis option has no description.
falsetruenixflix.jellyfin.users.<name>.id Link copied!
null or stringThe ID of the user
null"18B51E25-33FD-46B6-BBF8-DB4DD77D0679"nixflix.jellyfin.users.<name>.lastActivityDate Link copied!
null or stringThis option has no description.
nullnixflix.jellyfin.users.<name>.lastLoginDate Link copied!
null or stringThis option has no description.
nullnixflix.jellyfin.users.<name>.mutable Link copied!
booleanFunctions like mutableUsers in NixOS users.users."user" If true, the first time the user is created, all configured options are overwritten. Any modifications from the GUI will take priority, and no nix configuration changes will have any effect. If false however, all options are overwritten as specified in the nix configuration, which means any change through the Jellyfin GUI will have no effect after a rebuild.
Note: Passwords are only set during user creation and are never updated declaratively, regardless of the mutable setting. To change a user's password, use the Jellyfin web interface.
truefalsenixflix.jellyfin.users.<name>.password Link copied!
string or (submodule)User's password.
!!! warning
Can be a plain string (visible in Nix store) or { _secret = /path/to/file; } for file-based secrets.
Plain-text secrets will be visible in the Nix store. Use `{ _secret = path; }` for sensitive data.
null{ _secret = "/run/secrets/secret-file"; }nixflix.jellyfin.users.<name>.policy Link copied!
submodulePolicy for this user
{ }{
enableContentDeletion = false;
enableSubtitleManagement = true;
isAdministrator = true;
isDisabled = false;
}nixflix.jellyfin.users.<name>.policy.accessSchedules Link copied!
list of (submodule)This option has no description.
[ ]nixflix.jellyfin.users.<name>.policy.accessSchedules.*.dayOfWeek Link copied!
one of "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Everyday", "Weekday", "Weekend"This option has no description.
nixflix.jellyfin.users.<name>.policy.accessSchedules.*.endHour Link copied!
integer between 0 and 23 (both inclusive)This option has no description.
nixflix.jellyfin.users.<name>.policy.accessSchedules.*.startHour Link copied!
integer between 0 and 23 (both inclusive)This option has no description.
nixflix.jellyfin.users.<name>.policy.allowedTags Link copied!
list of stringThis option has no description.
[ ]nixflix.jellyfin.users.<name>.policy.authenticationProviderId Link copied!
stringAuthentication provider ID
"Jellyfin.Server.Implementations.Users.DefaultAuthenticationProvider"nixflix.jellyfin.users.<name>.policy.blockUnratedItems Link copied!
list of (one of "Movie", "Trailer", "Series", "Music", "Book", "LiveTvChannel", "LiveTvProgram", "ChannelContent", "Other")This option has no description.
[ ]nixflix.jellyfin.users.<name>.policy.blockedChannels Link copied!
list of stringThis option has no description.
[ ]nixflix.jellyfin.users.<name>.policy.blockedMediaFolders Link copied!
list of stringThis option has no description.
[ ]nixflix.jellyfin.users.<name>.policy.blockedTags Link copied!
list of stringThis option has no description.
[ ]nixflix.jellyfin.users.<name>.policy.enableAllChannels Link copied!
booleanWhether the user has access to all channels
truenixflix.jellyfin.users.<name>.policy.enableAllDevices Link copied!
booleanWhether the user has access to all devices
truenixflix.jellyfin.users.<name>.policy.enableAllFolders Link copied!
booleanWhether the user has access to all folders
truenixflix.jellyfin.users.<name>.policy.enableAudioPlaybackTranscoding Link copied!
booleanWhether the server should transcode audio for the user if requested
truenixflix.jellyfin.users.<name>.policy.enableCollectionManagement Link copied!
booleanWhether the user can create, modify and delete collections
falsenixflix.jellyfin.users.<name>.policy.enableContentDeletion Link copied!
booleanWhether the user can delete content
falsenixflix.jellyfin.users.<name>.policy.enableContentDeletionFromFolders Link copied!
list of stringThis option has no description.
[ ]nixflix.jellyfin.users.<name>.policy.enableContentDownloading Link copied!
booleanWhether the user can download content
truenixflix.jellyfin.users.<name>.policy.enableLiveTvAccess Link copied!
booleanWhether the user can access live tv
truenixflix.jellyfin.users.<name>.policy.enableLiveTvManagement Link copied!
booleanWhether the user can manage live tv
truenixflix.jellyfin.users.<name>.policy.enableLyricManagement Link copied!
booleanWhether the user can edit lyrics
falsenixflix.jellyfin.users.<name>.policy.enableMediaConversion Link copied!
booleanWhether the user can do media conversion
truenixflix.jellyfin.users.<name>.policy.enableMediaPlayback Link copied!
booleanWhether the user can play media
truenixflix.jellyfin.users.<name>.policy.enablePlaybackRemuxing Link copied!
booleanWhether the user is permitted to do playback remuxing
truenixflix.jellyfin.users.<name>.policy.enablePublicSharing Link copied!
booleanWhether to enable public sharing for the user
truenixflix.jellyfin.users.<name>.policy.enableRemoteAccess Link copied!
booleanWhether the user can access the server remotely
truenixflix.jellyfin.users.<name>.policy.enableRemoteControlOfOtherUsers Link copied!
booleanWhether the user can remotely control other users
falsenixflix.jellyfin.users.<name>.policy.enableSharedDeviceControl Link copied!
booleanWhether the user can control shared devices
truenixflix.jellyfin.users.<name>.policy.enableSubtitleManagement Link copied!
booleanWhether the user can edit subtitles
falsenixflix.jellyfin.users.<name>.policy.enableSyncTranscoding Link copied!
booleanWhether to enable sync transcoding for the user
truenixflix.jellyfin.users.<name>.policy.enableUserPreferenceAccess Link copied!
booleanThis option has no description.
truenixflix.jellyfin.users.<name>.policy.enableVideoPlaybackTranscoding Link copied!
booleanWhether the server should transcode video for the user if requested
truenixflix.jellyfin.users.<name>.policy.enabledChannels Link copied!
list of stringThis option has no description.
[ ]nixflix.jellyfin.users.<name>.policy.enabledDevices Link copied!
list of stringThis option has no description.
[ ]nixflix.jellyfin.users.<name>.policy.forceRemoteSourceTranscoding Link copied!
booleanWhether the server should force transcoding on remote connections for the user
falsenixflix.jellyfin.users.<name>.policy.invalidLoginAttemptCount Link copied!
signed integerThis option has no description.
0nixflix.jellyfin.users.<name>.policy.isAdministrator Link copied!
booleanWhether the user is an administrator
falsenixflix.jellyfin.users.<name>.policy.isDisabled Link copied!
booleanWhether the user is disabled
falsenixflix.jellyfin.users.<name>.policy.isHidden Link copied!
booleanWhether the user is hidden
truenixflix.jellyfin.users.<name>.policy.loginAttemptsBeforeLockout Link copied!
null or signed integerThe number of login attempts the user can make before they are locked out. 0 for default (3 for normal users, 5 for admins). null for unlimited
310nixflix.jellyfin.users.<name>.policy.maxActiveSessions Link copied!
signed integerThe maximum number of active sessions the user can have at once. 0 for unlimited
05nixflix.jellyfin.users.<name>.policy.maxParentalRating Link copied!
null or signed integerThis option has no description.
nullnixflix.jellyfin.users.<name>.policy.maxParentalSubRating Link copied!
null or signed integerThis option has no description.
nullnixflix.jellyfin.users.<name>.policy.passwordResetProviderId Link copied!
stringPassword reset provider ID
"Jellyfin.Server.Implementations.Users.DefaultPasswordResetProvider"nixflix.jellyfin.users.<name>.policy.remoteClientBitrateLimit Link copied!
signed integer0 for unlimited
0nixflix.jellyfin.users.<name>.policy.syncPlayAccess Link copied!
one of "CreateAndJoinGroups", "JoinGroups", "None"Whether or not this user has access to SyncPlay
"CreateAndJoinGroups""None"nixflix.jellyfin.vpn.enable Link copied!
booleanWhether to route Jellyfin traffic through the VPN.
When false, Jellyfin bypasses the VPN.
When true, Jellyfin is confined to the WireGuard network namespace (requires nixflix.vpn.enable = true).
config.nixflix.vpn.enablenixflix.lidarr.config.apiKey Link copied!
string or (submodule)API key for Lidarr. Can be created by running:
openssl rand -hex 16
!!! warning
Can be a plain string (visible in Nix store) or { _secret = /path/to/file; } for file-based secrets.
Plain-text secrets will be visible in the Nix store. Use `{ _secret = path; }` for sensitive data.
null{ _secret = "/run/secrets/secret-file"; }nixflix.lidarr.config.apiVersion Link copied!
stringCurrent version of the API of the service
"v3"nixflix.lidarr.config.delayProfiles Link copied!
list of (submodule)List of delay profiles to configure via the API /delayprofile endpoint.
Profiles are created/updated in id order. If no profile with id=1 is provided, a default profile will be added automatically.
[
{
enableUsenet = true;
enableTorrent = true;
preferredProtocol = "usenet";
usenetDelay = 0;
torrentDelay = 0;
bypassIfHighestQuality = true;
bypassIfAboveCustomFormatScore = false;
minimumCustomFormatScore = 0;
order = 2147483647;
tags = [];
id = 1;
};
]
nixflix.lidarr.config.delayProfiles.*.bypassIfAboveCustomFormatScore Link copied!
booleanBypass delay if custom format score is above minimum
falsenixflix.lidarr.config.delayProfiles.*.bypassIfHighestQuality Link copied!
booleanBypass delay if release is the highest quality available
truenixflix.lidarr.config.delayProfiles.*.enableTorrent Link copied!
booleanEnable Torrent protocol for this profile
truenixflix.lidarr.config.delayProfiles.*.enableUsenet Link copied!
booleanEnable Usenet protocol for this profile
truenixflix.lidarr.config.delayProfiles.*.id Link copied!
signed integerUnique identifier for the delay profile
nixflix.lidarr.config.delayProfiles.*.minimumCustomFormatScore Link copied!
signed integerMinimum custom format score to bypass delay
0nixflix.lidarr.config.delayProfiles.*.order Link copied!
signed integerOrder/priority of this delay profile (lower values = higher priority)
50nixflix.lidarr.config.delayProfiles.*.preferredProtocol Link copied!
one of "usenet", "torrent"Preferred download protocol when both are available
"usenet"nixflix.lidarr.config.delayProfiles.*.tags Link copied!
list of signed integerList of tag IDs this delay profile applies to (empty = applies to all)
[ ]nixflix.lidarr.config.delayProfiles.*.torrentDelay Link copied!
signed integerDelay in minutes before grabbing a Torrent release
0nixflix.lidarr.config.delayProfiles.*.usenetDelay Link copied!
signed integerDelay in minutes before grabbing a Usenet release
0nixflix.lidarr.config.hostConfig Link copied!
submoduleHost configuration options that will be set via the API /config/host endpoint
{ }nixflix.lidarr.config.hostConfig.analyticsEnabled Link copied!
booleanEnable analytics
falsenixflix.lidarr.config.hostConfig.applicationUrl Link copied!
stringApplication URL
""nixflix.lidarr.config.hostConfig.authenticationMethod Link copied!
one of "none", "basic", "forms", "external"Authentication method
"forms"nixflix.lidarr.config.hostConfig.authenticationRequired Link copied!
one of "enabled", "disabled", "disabledForLocalAddresses"Authentication requirement level
"enabled"nixflix.lidarr.config.hostConfig.backupFolder Link copied!
stringBackup folder name
"Backups"nixflix.lidarr.config.hostConfig.backupInterval Link copied!
signed integerBackup interval in days
7nixflix.lidarr.config.hostConfig.backupRetention Link copied!
signed integerBackup retention in days
28nixflix.lidarr.config.hostConfig.bindAddress Link copied!
stringAddress to bind to
"0.0.0.0"nixflix.lidarr.config.hostConfig.certificateValidation Link copied!
one of "enabled", "disabled", "disabledForLocalAddresses"Certificate validation
"enabled"nixflix.lidarr.config.hostConfig.consoleLogLevel Link copied!
stringConsole log level
""nixflix.lidarr.config.hostConfig.instanceName Link copied!
stringInstance name
"Lidarr"nixflix.lidarr.config.hostConfig.launchBrowser Link copied!
booleanLaunch browser on start (not applicable for NixOS services)
falsenixflix.lidarr.config.hostConfig.logLevel Link copied!
one of "info", "debug", "trace"Log level
"info"nixflix.lidarr.config.hostConfig.logSizeLimit Link copied!
signed integerLog size limit in MB
1nixflix.lidarr.config.hostConfig.password Link copied!
null or string or (submodule)Password for web interface authentication.
!!! warning
Can be a plain string (visible in Nix store) or { _secret = /path/to/file; } for file-based secrets.
Plain-text secrets will be visible in the Nix store. Use `{ _secret = path; }` for sensitive data.
null{ _secret = "/run/secrets/secret-file"; }nixflix.lidarr.config.hostConfig.port Link copied!
16 bit unsigned integer; between 0 and 65535 (both inclusive)Port the service listens on
nixflix.lidarr.config.hostConfig.proxyBypassFilter Link copied!
stringProxy bypass filter
""nixflix.lidarr.config.hostConfig.proxyBypassLocalAddresses Link copied!
booleanProxy bypass local addresses
truenixflix.lidarr.config.hostConfig.proxyEnabled Link copied!
booleanEnable proxy
falsenixflix.lidarr.config.hostConfig.proxyPassword Link copied!
string or (submodule)Proxy password
!!! warning
Can be a plain string (visible in Nix store) or { _secret = /path/to/file; } for file-based secrets.
Plain-text secrets will be visible in the Nix store. Use `{ _secret = path; }` for sensitive data.
null{ _secret = "/run/secrets/secret-file"; }nixflix.lidarr.config.hostConfig.proxyPort Link copied!
16 bit unsigned integer; between 0 and 65535 (both inclusive)Proxy port
8080nixflix.lidarr.config.hostConfig.proxyType Link copied!
one of "http", "socks4", "socks5"Proxy type
"http"nixflix.lidarr.config.hostConfig.proxyUsername Link copied!
string or (submodule)Proxy username
!!! warning
Can be a plain string (visible in Nix store) or { _secret = /path/to/file; } for file-based secrets.
Plain-text secrets will be visible in the Nix store. Use `{ _secret = path; }` for sensitive data.
null{ _secret = "/run/secrets/secret-file"; }nixflix.lidarr.config.hostConfig.sslCertPassword Link copied!
string or (submodule)SSL certificate password
!!! warning
Can be a plain string (visible in Nix store) or { _secret = /path/to/file; } for file-based secrets.
Plain-text secrets will be visible in the Nix store. Use `{ _secret = path; }` for sensitive data.
null{ _secret = "/run/secrets/secret-file"; }nixflix.lidarr.config.hostConfig.sslCertPath Link copied!
stringSSL certificate path
""nixflix.lidarr.config.hostConfig.sslPort Link copied!
16 bit unsigned integer; between 0 and 65535 (both inclusive)SSL port
9898nixflix.lidarr.config.hostConfig.trustCgnatIpAddresses Link copied!
booleanTrust CGNAT IP addresses
falsenixflix.lidarr.config.hostConfig.updateAutomatically Link copied!
booleanUpdate automatically
falsenixflix.lidarr.config.hostConfig.updateMechanism Link copied!
one of "builtIn", "script", "external", "docker"Update mechanism
"builtIn"nixflix.lidarr.config.hostConfig.updateScriptPath Link copied!
stringUpdate script path
""nixflix.lidarr.config.hostConfig.urlBase Link copied!
stringURL base path
"""/takeMeThere"nixflix.lidarr.config.hostConfig.username Link copied!
null or string or (submodule)Username for web interface authentication.
!!! warning
Can be a plain string (visible in Nix store) or { _secret = /path/to/file; } for file-based secrets.
Plain-text secrets will be visible in the Nix store. Use `{ _secret = path; }` for sensitive data.
null{ _secret = "/run/secrets/secret-file"; }nixflix.lidarr.config.mediaManagement.autoUnmonitorPreviouslyDownloadedTracks Link copied!
booleanAutomatically unmonitor tracks after they have been downloaded.
falsenixflix.lidarr.config.mediaManagement.chmodFolder Link copied!
stringOctal permissions to apply to media folders.
"755"nixflix.lidarr.config.mediaManagement.chownGroup Link copied!
stringGroup name or gid to apply to media folders.
""nixflix.lidarr.config.mediaManagement.copyUsingHardlinks Link copied!
booleanUse hardlinks instead of copying when importing from torrents still being seeded.
truenixflix.lidarr.config.mediaManagement.createEmptyArtistFolders Link copied!
booleanCreate missing artist folders during disk scan.
falsenixflix.lidarr.config.mediaManagement.deleteEmptyFolders Link copied!
booleanDelete empty folders during disk scan and when media files are deleted.
truenixflix.lidarr.config.mediaManagement.downloadPropersAndRepacks Link copied!
one of "preferAndUpgrade", "doNotUpgrade", "doNotPrefer"How to handle proper and repack releases.
"preferAndUpgrade"nixflix.lidarr.config.mediaManagement.enableMediaInfo Link copied!
booleanScan video files for media info such as resolution, runtime, and codec.
truenixflix.lidarr.config.mediaManagement.extraFileExtensions Link copied!
stringComma-separated list of extra file extensions to import.
"srt"nixflix.lidarr.config.mediaManagement.fileDate Link copied!
one of "none", "albumReleaseDate"Set the file date on imported media files.
"none"nixflix.lidarr.config.mediaManagement.importExtraFiles Link copied!
booleanImport matching extra files alongside media files.
falsenixflix.lidarr.config.mediaManagement.minimumFreeSpaceWhenImporting Link copied!
signed integerMinimum free space in MB to leave on the disk when importing.
100nixflix.lidarr.config.mediaManagement.recycleBin Link copied!
stringPath to the recycle bin directory.
""nixflix.lidarr.config.mediaManagement.recycleBinCleanupDays Link copied!
signed integerNumber of days before items in the recycle bin are permanently deleted.
7nixflix.lidarr.config.mediaManagement.rescanAfterRefresh Link copied!
one of "always", "afterManual", "never"When to rescan the media folder after refreshing media information.
"always"nixflix.lidarr.config.mediaManagement.scriptImportPath Link copied!
stringPath to the custom import script.
""nixflix.lidarr.config.mediaManagement.setPermissionsLinux Link copied!
booleanSet chmod and chown on imported files and media folders.
falsenixflix.lidarr.config.mediaManagement.skipFreeSpaceCheckWhenImporting Link copied!
booleanSkip the free space check when importing media files.
falsenixflix.lidarr.config.mediaManagement.useScriptImport Link copied!
booleanUse a custom script for importing instead of the built-in import.
falsenixflix.lidarr.config.rootFolders Link copied!
list of (attribute set)List of root folders to create via the API /rootfolder endpoint. Each folder is an attribute set that will be converted to JSON and sent to the API.
For Sonarr/Radarr, a simple path is sufficient: {path = "/path/to/folder";}
For Lidarr, additional fields are required like defaultQualityProfileId, etc.
map (mediaDir: {path = mediaDir;}) nixflix.lidarr.mediaDirsnixflix.lidarr.connectionAddress Link copied!
stringAddress for connecting to this service.
"127.0.0.1"nixflix.lidarr.dataDir Link copied!
absolute pathDirectory containing Seerr data and configuration
"${config.nixflix.stateDir}/${serviceName}"nixflix.lidarr.enable Link copied!
booleanWhether to enable Lidarr.
falsetruenixflix.lidarr.mediaDirs Link copied!
list of absolute pathList of media directories to create and manage
[config.nixflix.mediaDir + "/<media-type>"]nixflix.lidarr.openFirewall Link copied!
booleanOpen ports in the firewall for the Radarr web interface.
falsenixflix.lidarr.reverseProxy.expose Link copied!
booleanWhether to expose this service via the reverse proxy.
truenixflix.lidarr.settings Link copied!
open submodule of attribute set of section of an INI file (attrs of INI atom (null, bool, int, float or string))Attribute set of arbitrary config options. Please consult the documentation at the wiki.
!!! warning
This configuration is stored in the world-readable Nix store!
Don't put secrets here!
{
auth = {
required = "Enabled";
method = "Forms";
};
server = {
inherit (config.nixflix.lidarr.config.hostConfig) port urlBase;
};
} // optionalAttrs config.nixflix.postgres.enable {
log.dbEnabled = true;
postgres = {
user = config.nixflix.lidarr.user;
host = "/run/postgresql";
port = config.services.postgresql.settings.port;
mainDb = config.nixflix.lidarr.user;
logDb = "${config.nixflix.lidarr.user}-logs";
};
}
{
update.mechanism = "internal";
server = {
urlbase = "localhost";
port = 8989;
bindaddress = "*";
};
}
nixflix.lidarr.settings.app.instanceName Link copied!
stringName of the instance
"Lidarr"nixflix.lidarr.settings.log.analyticsEnabled Link copied!
booleanSend Anonymous Usage Data
falsenixflix.lidarr.settings.server.port Link copied!
16 bit unsigned integer; between 0 and 65535 (both inclusive)Port Number
nixflix.lidarr.settings.update.automatically Link copied!
booleanAutomatically download and install updates.
falsenixflix.lidarr.settings.update.mechanism Link copied!
null or one of "external", "builtIn", "script"which update mechanism to use
"external"nixflix.lidarr.subdomain Link copied!
stringSubdomain prefix for reverse proxy. Service accessible at <subdomain>.<domain>.
"lidarr"nixflix.lidarr.vpn.enable Link copied!
booleanWhether to route Lidarr traffic through the VPN.
When false (default), Lidarr bypasses the VPN to prevent Cloudflare and image provider blocks.
When true, Lidarr routes through the VPN (requires nixflix.vpn.enable = true).
TRaSH Guides
recommend leaving this false.
falsenixflix.mediaDir Link copied!
absolute pathThe location of the media directory for the services.
!!! warning
All parent directories must have execute permissions for everyone.
!!! warning
Setting this to any path, where the subpath is not owned by root, will fail! For example:
```nix
mediaDir = /home/user/data
```
Is not supported, because `/home/user` is owned by `user`.
"/data/media""/data/media"nixflix.mediaUsers Link copied!
list of stringExtra users to add to the media group.
[ ][
"user"
]nixflix.nginx.addHostsEntries Link copied!
booleanWhether to add networking.hosts entries mapping service subdomains to 127.0.0.1.
Enable if you don't have a separate DNS setup.
falsenixflix.nginx.domain Link copied!
stringBase domain for subdomain-based reverse proxy routing. Each service is accessible at <subdomain>.<domain>.
"nixflix""internal"nixflix.nginx.enable Link copied!
booleanWhether to enable nginx reverse proxy for all services
falsenixflix.nginx.enableACME Link copied!
booleanWhether to enable useACMEHost in virtual hosts. Uses nixflix.nginx.domain as ACME host.
You have to configure security.acme.certs.$${nixflix.nginx.domain} in order to use this.
falsetruenixflix.nginx.forceSSL Link copied!
booleanWhether to force SSL.
falsetruenixflix.postgres.enable Link copied!
booleanWhether or not to enable postgresql for the entire stack.
falsetruenixflix.prowlarr.config.apiKey Link copied!
string or (submodule)API key for Prowlarr. Can be created by running:
openssl rand -hex 16
!!! warning
Can be a plain string (visible in Nix store) or { _secret = /path/to/file; } for file-based secrets.
Plain-text secrets will be visible in the Nix store. Use `{ _secret = path; }` for sensitive data.
null{ _secret = "/run/secrets/secret-file"; }nixflix.prowlarr.config.apiVersion Link copied!
stringCurrent version of the API of the service
"v3"nixflix.prowlarr.config.applications Link copied!
list of (open submodule of attribute set of anything)List of applications to configure in Prowlarr. Any additional attributes beyond name, implementationName, and apiKey will be applied as field values to the application schema.
# Automatically configured for enabled arr services (Sonarr, Radarr, Lidarr)
# Each enabled service gets an application entry with computed baseUrl and prowlarrUrl
# based on nginx configuration
nixflix.prowlarr.config.applications.*.apiKey Link copied!
string or (submodule)Path to file containing the API key for the application
!!! warning
Can be a plain string (visible in Nix store) or { _secret = /path/to/file; } for file-based secrets.
Plain-text secrets will be visible in the Nix store. Use `{ _secret = path; }` for sensitive data.
null{ _secret = "/run/secrets/secret-file"; }nixflix.prowlarr.config.applications.*.implementationName Link copied!
one of "LazyLibrarian", "Lidarr", "Mylar", "Readarr", "Radarr", "Sonarr", "Whisparr"Type of application to configure (matches schema implementationName)
nixflix.prowlarr.config.applications.*.name Link copied!
stringUser-defined name for the application instance
nixflix.prowlarr.config.hostConfig Link copied!
submoduleHost configuration options that will be set via the API /config/host endpoint
{ }nixflix.prowlarr.config.hostConfig.analyticsEnabled Link copied!
booleanEnable analytics
falsenixflix.prowlarr.config.hostConfig.applicationUrl Link copied!
stringApplication URL
""nixflix.prowlarr.config.hostConfig.authenticationMethod Link copied!
one of "none", "basic", "forms", "external"Authentication method
"forms"nixflix.prowlarr.config.hostConfig.authenticationRequired Link copied!
one of "enabled", "disabled", "disabledForLocalAddresses"Authentication requirement level
"enabled"nixflix.prowlarr.config.hostConfig.backupFolder Link copied!
stringBackup folder name
"Backups"nixflix.prowlarr.config.hostConfig.backupInterval Link copied!
signed integerBackup interval in days
7nixflix.prowlarr.config.hostConfig.backupRetention Link copied!
signed integerBackup retention in days
28nixflix.prowlarr.config.hostConfig.bindAddress Link copied!
stringAddress to bind to
"0.0.0.0"nixflix.prowlarr.config.hostConfig.certificateValidation Link copied!
one of "enabled", "disabled", "disabledForLocalAddresses"Certificate validation
"enabled"nixflix.prowlarr.config.hostConfig.consoleLogLevel Link copied!
stringConsole log level
""nixflix.prowlarr.config.hostConfig.instanceName Link copied!
stringInstance name
"Prowlarr"nixflix.prowlarr.config.hostConfig.launchBrowser Link copied!
booleanLaunch browser on start (not applicable for NixOS services)
falsenixflix.prowlarr.config.hostConfig.logLevel Link copied!
one of "info", "debug", "trace"Log level
"info"nixflix.prowlarr.config.hostConfig.logSizeLimit Link copied!
signed integerLog size limit in MB
1nixflix.prowlarr.config.hostConfig.password Link copied!
null or string or (submodule)Password for web interface authentication.
!!! warning
Can be a plain string (visible in Nix store) or { _secret = /path/to/file; } for file-based secrets.
Plain-text secrets will be visible in the Nix store. Use `{ _secret = path; }` for sensitive data.
null{ _secret = "/run/secrets/secret-file"; }nixflix.prowlarr.config.hostConfig.port Link copied!
16 bit unsigned integer; between 0 and 65535 (both inclusive)Port the service listens on
nixflix.prowlarr.config.hostConfig.proxyBypassFilter Link copied!
stringProxy bypass filter
""nixflix.prowlarr.config.hostConfig.proxyBypassLocalAddresses Link copied!
booleanProxy bypass local addresses
truenixflix.prowlarr.config.hostConfig.proxyEnabled Link copied!
booleanEnable proxy
falsenixflix.prowlarr.config.hostConfig.proxyHostname Link copied!
stringProxy hostname
""nixflix.prowlarr.config.hostConfig.proxyPassword Link copied!
string or (submodule)Proxy password
!!! warning
Can be a plain string (visible in Nix store) or { _secret = /path/to/file; } for file-based secrets.
Plain-text secrets will be visible in the Nix store. Use `{ _secret = path; }` for sensitive data.
null{ _secret = "/run/secrets/secret-file"; }nixflix.prowlarr.config.hostConfig.proxyPort Link copied!
16 bit unsigned integer; between 0 and 65535 (both inclusive)Proxy port
8080nixflix.prowlarr.config.hostConfig.proxyType Link copied!
one of "http", "socks4", "socks5"Proxy type
"http"nixflix.prowlarr.config.hostConfig.proxyUsername Link copied!
string or (submodule)Proxy username
!!! warning
Can be a plain string (visible in Nix store) or { _secret = /path/to/file; } for file-based secrets.
Plain-text secrets will be visible in the Nix store. Use `{ _secret = path; }` for sensitive data.
null{ _secret = "/run/secrets/secret-file"; }nixflix.prowlarr.config.hostConfig.sslCertPassword Link copied!
string or (submodule)SSL certificate password
!!! warning
Can be a plain string (visible in Nix store) or { _secret = /path/to/file; } for file-based secrets.
Plain-text secrets will be visible in the Nix store. Use `{ _secret = path; }` for sensitive data.
null{ _secret = "/run/secrets/secret-file"; }nixflix.prowlarr.config.hostConfig.sslCertPath Link copied!
stringSSL certificate path
""nixflix.prowlarr.config.hostConfig.sslPort Link copied!
16 bit unsigned integer; between 0 and 65535 (both inclusive)SSL port
9898nixflix.prowlarr.config.hostConfig.trustCgnatIpAddresses Link copied!
booleanTrust CGNAT IP addresses
falsenixflix.prowlarr.config.hostConfig.updateAutomatically Link copied!
booleanUpdate automatically
falsenixflix.prowlarr.config.hostConfig.updateMechanism Link copied!
one of "builtIn", "script", "external", "docker"Update mechanism
"builtIn"nixflix.prowlarr.config.hostConfig.updateScriptPath Link copied!
stringUpdate script path
""nixflix.prowlarr.config.hostConfig.urlBase Link copied!
stringURL base path
"""/takeMeThere"nixflix.prowlarr.config.hostConfig.username Link copied!
null or string or (submodule)Username for web interface authentication.
!!! warning
Can be a plain string (visible in Nix store) or { _secret = /path/to/file; } for file-based secrets.
Plain-text secrets will be visible in the Nix store. Use `{ _secret = path; }` for sensitive data.
null{ _secret = "/run/secrets/secret-file"; }nixflix.prowlarr.config.indexerProxies Link copied!
list of (open submodule of attribute set of anything)List of indexer proxies to configure in Prowlarr.
Any additional attributes beyond name, username, and password will be applied as field values to the indexer schema.
FlareSolverr is automatically configured with a flaresolverr tag when nixflix.flaresolverr.enable is true;
You can run the following command to get the field names for a particular indexer:
curl -s -H "X-Api-Key: $(sudo cat </path/to/prowlarr/apiKey>)" "http://127.0.0.1:9696/prowlarr/api/v1/indexerProxy/schema" | jq '.[] | select(.name=="<indexerName>") | .fields'
Or if you have nginx disabled or config.nixflix.prowlarr.config.hostConfig.urlBase is not configured
curl -s -H "X-Api-Key: $(sudo cat </path/to/prowlarr/apiKey>)" "http://127.0.0.1:9696/api/v1/indexerProxy/schema" | jq '.[] | select(.name=="<indexerName>") | .fields'
[ ]nixflix.prowlarr.config.indexerProxies.*.name Link copied!
stringName of the Prowlarr indexer proxy Schema
nixflix.prowlarr.config.indexerProxies.*.password Link copied!
null or string or (submodule)Password for the indexer proxy.
!!! warning
Can be a plain string (visible in Nix store) or { _secret = /path/to/file; } for file-based secrets.
Plain-text secrets will be visible in the Nix store. Use `{ _secret = path; }` for sensitive data.
null{ _secret = "/run/secrets/secret-file"; }nixflix.prowlarr.config.indexerProxies.*.tags Link copied!
list of stringApplies to indexers with at least one matching tag
[ ]nixflix.prowlarr.config.indexerProxies.*.username Link copied!
null or string or (submodule)Username for the indexer proxy.
!!! warning
Can be a plain string (visible in Nix store) or { _secret = /path/to/file; } for file-based secrets.
Plain-text secrets will be visible in the Nix store. Use `{ _secret = path; }` for sensitive data.
null{ _secret = "/run/secrets/secret-file"; }nixflix.prowlarr.config.indexers Link copied!
list of (open submodule of attribute set of anything)List of indexers to configure in Prowlarr. Prowlarr supports many indexers in addition to any indexer that uses the Newznab/Torznab standard using 'Generic Newznab' (for usenet) or 'Generic Torznab' (for torrents).
Any additional attributes beyond name, apiKey, apikey, username, password, passkey, and appProfileId
will be applied as field values to the indexer schema.
The apiKey or apikey value is automatically applied to whichever field name the indexer schema
uses — some schemas use apiKey (camelCase) and others use apikey (all-lowercase).
You can run the following command to get the field names for a particular indexer:
curl -s -H "X-Api-Key: $(sudo cat </path/to/prowlarr/apiKey>)" "http://127.0.0.1:9696/api/v1/indexer/schema" | jq '.[] | select(.name=="<indexerName>") | .fields'
[ ]nixflix.prowlarr.config.indexers.*.apiKey Link copied!
null or string or (submodule)API key for the indexer. Applied to schema fields named apikey or apiKey.
!!! warning
Can be a plain string (visible in Nix store) or { _secret = /path/to/file; } for file-based secrets.
Plain-text secrets will be visible in the Nix store. Use `{ _secret = path; }` for sensitive data.
null{ _secret = "/run/secrets/secret-file"; }nixflix.prowlarr.config.indexers.*.apikey Link copied!
null or string or (submodule)API key for the indexer (lowercase variant). Applied to schema fields named apikey or apiKey.
!!! warning
Can be a plain string (visible in Nix store) or { _secret = /path/to/file; } for file-based secrets.
Plain-text secrets will be visible in the Nix store. Use `{ _secret = path; }` for sensitive data.
null{ _secret = "/run/secrets/secret-file"; }nixflix.prowlarr.config.indexers.*.appProfileId Link copied!
signed integerApplication profile ID for the indexer (default: 1).
1nixflix.prowlarr.config.indexers.*.name Link copied!
stringName of the Prowlarr Indexer Schema
nixflix.prowlarr.config.indexers.*.passkey Link copied!
null or string or (submodule)Passkey for the indexer.
!!! warning
Can be a plain string (visible in Nix store) or { _secret = /path/to/file; } for file-based secrets.
Plain-text secrets will be visible in the Nix store. Use `{ _secret = path; }` for sensitive data.
null{ _secret = "/run/secrets/secret-file"; }nixflix.prowlarr.config.indexers.*.password Link copied!
null or string or (submodule)Password for the indexer.
!!! warning
Can be a plain string (visible in Nix store) or { _secret = /path/to/file; } for file-based secrets.
Plain-text secrets will be visible in the Nix store. Use `{ _secret = path; }` for sensitive data.
null{ _secret = "/run/secrets/secret-file"; }nixflix.prowlarr.config.indexers.*.tags Link copied!
list of stringUse tags to specify Indexer Proxies or which apps the indexer is synced to.
Tags should be used with caution, they can have unintended effects. An indexer with a tag will only sync to apps with the same tag.
[ ]nixflix.prowlarr.config.indexers.*.username Link copied!
null or string or (submodule)Username for the indexer.
!!! warning
Can be a plain string (visible in Nix store) or { _secret = /path/to/file; } for file-based secrets.
Plain-text secrets will be visible in the Nix store. Use `{ _secret = path; }` for sensitive data.
null{ _secret = "/run/secrets/secret-file"; }nixflix.prowlarr.connectionAddress Link copied!
stringAddress for connecting to this service.
"127.0.0.1"nixflix.prowlarr.dataDir Link copied!
absolute pathDirectory containing Seerr data and configuration
"${config.nixflix.stateDir}/${serviceName}"nixflix.prowlarr.enable Link copied!
booleanWhether to enable Prowlarr.
falsetruenixflix.prowlarr.group Link copied!
stringGroup under which the service runs
"prowlarr"nixflix.prowlarr.openFirewall Link copied!
booleanOpen ports in the firewall for the Radarr web interface.
falsenixflix.prowlarr.package Link copied!
packageThe prowlarr package to use.
pkgs.prowlarrnixflix.prowlarr.reverseProxy.expose Link copied!
booleanWhether to expose this service via the reverse proxy.
truenixflix.prowlarr.settings Link copied!
open submodule of attribute set of section of an INI file (attrs of INI atom (null, bool, int, float or string))Attribute set of arbitrary config options. Please consult the documentation at the wiki.
!!! warning
This configuration is stored in the world-readable Nix store!
Don't put secrets here!
{
auth = {
required = "Enabled";
method = "Forms";
};
server = {
inherit (config.nixflix.prowlarr.config.hostConfig) port urlBase;
};
} // optionalAttrs config.nixflix.postgres.enable {
log.dbEnabled = true;
postgres = {
user = config.nixflix.prowlarr.user;
host = "/run/postgresql";
port = config.services.postgresql.settings.port;
mainDb = config.nixflix.prowlarr.user;
logDb = "${config.nixflix.prowlarr.user}-logs";
};
}
{
update.mechanism = "internal";
server = {
urlbase = "localhost";
port = 8989;
bindaddress = "*";
};
}
nixflix.prowlarr.settings.app.instanceName Link copied!
stringName of the instance
"Prowlarr"nixflix.prowlarr.settings.log.analyticsEnabled Link copied!
booleanSend Anonymous Usage Data
falsenixflix.prowlarr.settings.server.port Link copied!
16 bit unsigned integer; between 0 and 65535 (both inclusive)Port Number
nixflix.prowlarr.settings.update.automatically Link copied!
booleanAutomatically download and install updates.
falsenixflix.prowlarr.settings.update.mechanism Link copied!
null or one of "external", "builtIn", "script"which update mechanism to use
"external"nixflix.prowlarr.subdomain Link copied!
stringSubdomain prefix for reverse proxy. Service accessible at <subdomain>.<domain>.
"prowlarr"nixflix.prowlarr.user Link copied!
stringUser under which the service runs
"prowlarr"nixflix.prowlarr.vpn.enable Link copied!
booleanWhether to route Prowlarr traffic through the VPN.
When false (default), Prowlarr bypasses the VPN to prevent Cloudflare and image provider blocks.
When true, Prowlarr routes through the VPN (requires nixflix.vpn.enable = true).
TRaSH Guides
recommend leaving this false.
falsenixflix.radarr.config.apiKey Link copied!
string or (submodule)API key for Radarr. Can be created by running:
openssl rand -hex 16
!!! warning
Can be a plain string (visible in Nix store) or { _secret = /path/to/file; } for file-based secrets.
Plain-text secrets will be visible in the Nix store. Use `{ _secret = path; }` for sensitive data.
null{ _secret = "/run/secrets/secret-file"; }nixflix.radarr.config.apiVersion Link copied!
stringCurrent version of the API of the service
"v3"nixflix.radarr.config.delayProfiles Link copied!
list of (submodule)List of delay profiles to configure via the API /delayprofile endpoint.
Profiles are created/updated in id order. If no profile with id=1 is provided, a default profile will be added automatically.
[
{
enableUsenet = true;
enableTorrent = true;
preferredProtocol = "usenet";
usenetDelay = 0;
torrentDelay = 0;
bypassIfHighestQuality = true;
bypassIfAboveCustomFormatScore = false;
minimumCustomFormatScore = 0;
order = 2147483647;
tags = [];
id = 1;
};
]
nixflix.radarr.config.delayProfiles.*.bypassIfAboveCustomFormatScore Link copied!
booleanBypass delay if custom format score is above minimum
falsenixflix.radarr.config.delayProfiles.*.bypassIfHighestQuality Link copied!
booleanBypass delay if release is the highest quality available
truenixflix.radarr.config.delayProfiles.*.enableTorrent Link copied!
booleanEnable Torrent protocol for this profile
truenixflix.radarr.config.delayProfiles.*.enableUsenet Link copied!
booleanEnable Usenet protocol for this profile
truenixflix.radarr.config.delayProfiles.*.id Link copied!
signed integerUnique identifier for the delay profile
nixflix.radarr.config.delayProfiles.*.minimumCustomFormatScore Link copied!
signed integerMinimum custom format score to bypass delay
0nixflix.radarr.config.delayProfiles.*.order Link copied!
signed integerOrder/priority of this delay profile (lower values = higher priority)
50nixflix.radarr.config.delayProfiles.*.preferredProtocol Link copied!
one of "usenet", "torrent"Preferred download protocol when both are available
"usenet"nixflix.radarr.config.delayProfiles.*.tags Link copied!
list of signed integerList of tag IDs this delay profile applies to (empty = applies to all)
[ ]nixflix.radarr.config.delayProfiles.*.torrentDelay Link copied!
signed integerDelay in minutes before grabbing a Torrent release
0nixflix.radarr.config.delayProfiles.*.usenetDelay Link copied!
signed integerDelay in minutes before grabbing a Usenet release
0nixflix.radarr.config.hostConfig Link copied!
submoduleHost configuration options that will be set via the API /config/host endpoint
{ }nixflix.radarr.config.hostConfig.analyticsEnabled Link copied!
booleanEnable analytics
falsenixflix.radarr.config.hostConfig.applicationUrl Link copied!
stringApplication URL
""nixflix.radarr.config.hostConfig.authenticationMethod Link copied!
one of "none", "basic", "forms", "external"Authentication method
"forms"nixflix.radarr.config.hostConfig.authenticationRequired Link copied!
one of "enabled", "disabled", "disabledForLocalAddresses"Authentication requirement level
"enabled"nixflix.radarr.config.hostConfig.backupFolder Link copied!
stringBackup folder name
"Backups"nixflix.radarr.config.hostConfig.backupInterval Link copied!
signed integerBackup interval in days
7nixflix.radarr.config.hostConfig.backupRetention Link copied!
signed integerBackup retention in days
28nixflix.radarr.config.hostConfig.bindAddress Link copied!
stringAddress to bind to
"0.0.0.0"nixflix.radarr.config.hostConfig.certificateValidation Link copied!
one of "enabled", "disabled", "disabledForLocalAddresses"Certificate validation
"enabled"nixflix.radarr.config.hostConfig.consoleLogLevel Link copied!
stringConsole log level
""nixflix.radarr.config.hostConfig.instanceName Link copied!
stringInstance name
"Radarr"nixflix.radarr.config.hostConfig.launchBrowser Link copied!
booleanLaunch browser on start (not applicable for NixOS services)
falsenixflix.radarr.config.hostConfig.logLevel Link copied!
one of "info", "debug", "trace"Log level
"info"nixflix.radarr.config.hostConfig.logSizeLimit Link copied!
signed integerLog size limit in MB
1nixflix.radarr.config.hostConfig.password Link copied!
null or string or (submodule)Password for web interface authentication.
!!! warning
Can be a plain string (visible in Nix store) or { _secret = /path/to/file; } for file-based secrets.
Plain-text secrets will be visible in the Nix store. Use `{ _secret = path; }` for sensitive data.
null{ _secret = "/run/secrets/secret-file"; }nixflix.radarr.config.hostConfig.port Link copied!
16 bit unsigned integer; between 0 and 65535 (both inclusive)Port the service listens on
nixflix.radarr.config.hostConfig.proxyBypassFilter Link copied!
stringProxy bypass filter
""nixflix.radarr.config.hostConfig.proxyBypassLocalAddresses Link copied!
booleanProxy bypass local addresses
truenixflix.radarr.config.hostConfig.proxyEnabled Link copied!
booleanEnable proxy
falsenixflix.radarr.config.hostConfig.proxyPassword Link copied!
string or (submodule)Proxy password
!!! warning
Can be a plain string (visible in Nix store) or { _secret = /path/to/file; } for file-based secrets.
Plain-text secrets will be visible in the Nix store. Use `{ _secret = path; }` for sensitive data.
null{ _secret = "/run/secrets/secret-file"; }nixflix.radarr.config.hostConfig.proxyPort Link copied!
16 bit unsigned integer; between 0 and 65535 (both inclusive)Proxy port
8080nixflix.radarr.config.hostConfig.proxyType Link copied!
one of "http", "socks4", "socks5"Proxy type
"http"nixflix.radarr.config.hostConfig.proxyUsername Link copied!
string or (submodule)Proxy username
!!! warning
Can be a plain string (visible in Nix store) or { _secret = /path/to/file; } for file-based secrets.
Plain-text secrets will be visible in the Nix store. Use `{ _secret = path; }` for sensitive data.
null{ _secret = "/run/secrets/secret-file"; }nixflix.radarr.config.hostConfig.sslCertPassword Link copied!
string or (submodule)SSL certificate password
!!! warning
Can be a plain string (visible in Nix store) or { _secret = /path/to/file; } for file-based secrets.
Plain-text secrets will be visible in the Nix store. Use `{ _secret = path; }` for sensitive data.
null{ _secret = "/run/secrets/secret-file"; }nixflix.radarr.config.hostConfig.sslCertPath Link copied!
stringSSL certificate path
""nixflix.radarr.config.hostConfig.sslPort Link copied!
16 bit unsigned integer; between 0 and 65535 (both inclusive)SSL port
9898nixflix.radarr.config.hostConfig.trustCgnatIpAddresses Link copied!
booleanTrust CGNAT IP addresses
falsenixflix.radarr.config.hostConfig.updateAutomatically Link copied!
booleanUpdate automatically
falsenixflix.radarr.config.hostConfig.updateMechanism Link copied!
one of "builtIn", "script", "external", "docker"Update mechanism
"builtIn"nixflix.radarr.config.hostConfig.updateScriptPath Link copied!
stringUpdate script path
""nixflix.radarr.config.hostConfig.urlBase Link copied!
stringURL base path
"""/takeMeThere"nixflix.radarr.config.hostConfig.username Link copied!
null or string or (submodule)Username for web interface authentication.
!!! warning
Can be a plain string (visible in Nix store) or { _secret = /path/to/file; } for file-based secrets.
Plain-text secrets will be visible in the Nix store. Use `{ _secret = path; }` for sensitive data.
null{ _secret = "/run/secrets/secret-file"; }nixflix.radarr.config.mediaManagement.autoUnmonitorPreviouslyDownloadedMovies Link copied!
booleanAutomatically unmonitor movies after they have been downloaded.
falsenixflix.radarr.config.mediaManagement.chmodFolder Link copied!
stringOctal permissions to apply to media folders.
"755"nixflix.radarr.config.mediaManagement.chownGroup Link copied!
stringGroup name or gid to apply to media folders.
""nixflix.radarr.config.mediaManagement.copyUsingHardlinks Link copied!
booleanUse hardlinks instead of copying when importing from torrents still being seeded.
truenixflix.radarr.config.mediaManagement.createEmptyMovieFolders Link copied!
booleanCreate missing movie folders during disk scan.
falsenixflix.radarr.config.mediaManagement.deleteEmptyFolders Link copied!
booleanDelete empty folders during disk scan and when media files are deleted.
truenixflix.radarr.config.mediaManagement.downloadPropersAndRepacks Link copied!
one of "preferAndUpgrade", "doNotUpgrade", "doNotPrefer"How to handle proper and repack releases.
"preferAndUpgrade"nixflix.radarr.config.mediaManagement.enableMediaInfo Link copied!
booleanScan video files for media info such as resolution, runtime, and codec.
truenixflix.radarr.config.mediaManagement.extraFileExtensions Link copied!
stringComma-separated list of extra file extensions to import.
"srt"nixflix.radarr.config.mediaManagement.fileDate Link copied!
one of "none", "cinemas", "physical", "digital"Set the file date on imported media files.
"none"nixflix.radarr.config.mediaManagement.importExtraFiles Link copied!
booleanImport matching extra files alongside media files.
falsenixflix.radarr.config.mediaManagement.minimumFreeSpaceWhenImporting Link copied!
signed integerMinimum free space in MB to leave on the disk when importing.
100nixflix.radarr.config.mediaManagement.recycleBin Link copied!
stringPath to the recycle bin directory.
""nixflix.radarr.config.mediaManagement.recycleBinCleanupDays Link copied!
signed integerNumber of days before items in the recycle bin are permanently deleted.
7nixflix.radarr.config.mediaManagement.rescanAfterRefresh Link copied!
one of "always", "afterManual", "never"When to rescan the media folder after refreshing media information.
"always"nixflix.radarr.config.mediaManagement.scriptImportPath Link copied!
stringPath to the custom import script.
""nixflix.radarr.config.mediaManagement.setPermissionsLinux Link copied!
booleanSet chmod and chown on imported files and media folders.
falsenixflix.radarr.config.mediaManagement.skipFreeSpaceCheckWhenImporting Link copied!
booleanSkip the free space check when importing media files.
falsenixflix.radarr.config.mediaManagement.useScriptImport Link copied!
booleanUse a custom script for importing instead of the built-in import.
falsenixflix.radarr.config.rootFolders Link copied!
list of (attribute set)List of root folders to create via the API /rootfolder endpoint. Each folder is an attribute set that will be converted to JSON and sent to the API.
For Sonarr/Radarr, a simple path is sufficient: {path = "/path/to/folder";}
For Lidarr, additional fields are required like defaultQualityProfileId, etc.
map (mediaDir: {path = mediaDir;}) nixflix.radarr.mediaDirsnixflix.radarr.connectionAddress Link copied!
stringAddress for connecting to this service.
"127.0.0.1"nixflix.radarr.dataDir Link copied!
absolute pathDirectory containing Seerr data and configuration
"${config.nixflix.stateDir}/${serviceName}"nixflix.radarr.enable Link copied!
booleanWhether to enable Radarr.
falsetruenixflix.radarr.mediaDirs Link copied!
list of absolute pathList of media directories to create and manage
[config.nixflix.mediaDir + "/<media-type>"]nixflix.radarr.openFirewall Link copied!
booleanOpen ports in the firewall for the Radarr web interface.
falsenixflix.radarr.reverseProxy.expose Link copied!
booleanWhether to expose this service via the reverse proxy.
truenixflix.radarr.settings Link copied!
open submodule of attribute set of section of an INI file (attrs of INI atom (null, bool, int, float or string))Attribute set of arbitrary config options. Please consult the documentation at the wiki.
!!! warning
This configuration is stored in the world-readable Nix store!
Don't put secrets here!
{
auth = {
required = "Enabled";
method = "Forms";
};
server = {
inherit (config.nixflix.radarr.config.hostConfig) port urlBase;
};
} // optionalAttrs config.nixflix.postgres.enable {
log.dbEnabled = true;
postgres = {
user = config.nixflix.radarr.user;
host = "/run/postgresql";
port = config.services.postgresql.settings.port;
mainDb = config.nixflix.radarr.user;
logDb = "${config.nixflix.radarr.user}-logs";
};
}
{
update.mechanism = "internal";
server = {
urlbase = "localhost";
port = 8989;
bindaddress = "*";
};
}
nixflix.radarr.settings.app.instanceName Link copied!
stringName of the instance
"Radarr"nixflix.radarr.settings.log.analyticsEnabled Link copied!
booleanSend Anonymous Usage Data
falsenixflix.radarr.settings.server.port Link copied!
16 bit unsigned integer; between 0 and 65535 (both inclusive)Port Number
nixflix.radarr.settings.update.automatically Link copied!
booleanAutomatically download and install updates.
falsenixflix.radarr.settings.update.mechanism Link copied!
null or one of "external", "builtIn", "script"which update mechanism to use
"external"nixflix.radarr.subdomain Link copied!
stringSubdomain prefix for reverse proxy. Service accessible at <subdomain>.<domain>.
"radarr"nixflix.radarr.vpn.enable Link copied!
booleanWhether to route Radarr traffic through the VPN.
When false (default), Radarr bypasses the VPN to prevent Cloudflare and image provider blocks.
When true, Radarr routes through the VPN (requires nixflix.vpn.enable = true).
TRaSH Guides
recommend leaving this false.
falsenixflix.recyclarr.cleanupUnmanagedProfiles.enable Link copied!
booleanWhether to automatically remove quality profiles from Sonarr and Radarr that are are unmanaged.
falsenixflix.recyclarr.cleanupUnmanagedProfiles.managedProfiles Link copied!
list of stringList of profiles to keep.
This list must be manually maintained if you change the default Recyclarr configuration.
optional (cfg.radarrQuality == "4K") "[SQP] SQP-1 (2160p)"
++ optional (cfg.radarrQuality == "1080p") "[SQP] SQP-1 (1080p)"
++ optional (cfg.sonarrQuality == "4K") "WEB-2160p (Alternative)"
++ optional (cfg.sonarrQuality == "1080p") "WEB-1080p (Alternative)"
++ optional config.nixflix.sonarr-anime.enable "[Anime] Remux-1080p";
[
"My Custom Profile"
]nixflix.recyclarr.config Link copied!
null or (submodule)Recyclarr configuration as a structured Nix attribute set. When set, this completely replaces the auto-generated configuration, giving you full control over the Recyclarr setup.
The structure is: { service_type.instance_name = { ... }; }
- service_type:
sonarrorradarr(only these two keys are allowed) - instance_name: arbitrary name for the instance (e.g.,
sonarr_main,radarr_4k)
Defaults are sonarr.sonarr, sonarr.sonarr_anime, and radarr.radarr.
Each instance supports guide-backed quality profiles (via trash_id) or
user-defined ones (via name), custom formats and custom format groups
from TRaSH guides, media naming, media management (e.g. Propers and
Repacks handling), and template/file includes.
"Generated from `nixflix.sonarr`, `nixflix.sonarr-anime`, and `nixflix.radarr` settings"{
sonarr.sonarr_main = {
base_url = "http://127.0.0.1:8989";
api_key._secret = "/run/credentials/recyclarr.service/sonarr-api_key";
quality_definition.type = "series";
quality_profiles = [{
trash_id = "dfa5eaae7894077ad6449169b6eb03e0"; # WEB-2160p (Alternative)
reset_unmatched_scores.enabled = true;
}];
custom_format_groups.add = [{
trash_id = "e3f37512790f00d0e89e54fe5e790d1c"; # [Required] Golden Rule UHD
select = [ "9b64dff695c2115facf1b6ea59c9bd07" ]; # x265 (no HDR/DV)
}];
};
radarr.radarr_main = {
base_url = "http://127.0.0.1:7878";
api_key._secret = "/run/credentials/recyclarr.service/radarr-api_key";
quality_definition.type = "movie";
media_management.propers_and_repacks = "do_not_prefer";
};
}
nixflix.recyclarr.config.radarr Link copied!
null or (attribute set of (submodule))Radarr instance configurations
nullnixflix.recyclarr.config.radarr.<name>.api_key Link copied!
string or (submodule)The API key that Recyclarr should use to synchronize settings to your instance.
!!! warning
Can be a plain string (visible in Nix store) or { _secret = /path/to/file; } for file-based secrets.
Plain-text secrets will be visible in the Nix store. Use `{ _secret = path; }` for sensitive data.
null{ _secret = "/run/secrets/secret-file"; }nixflix.recyclarr.config.radarr.<name>.base_url Link copied!
stringThe base URL of your instance. Basically this is the URL you bookmark to get to the front page.
"http://127.0.0.1:8989"nixflix.recyclarr.config.radarr.<name>.custom_format_groups Link copied!
null or (submodule)Controls which custom format groups synchronize from the TRaSH Guides. Groups
marked default: true in the guide are automatically synced when using
guide-backed quality profiles. Use skip to opt out of defaults or add to
opt in to non-default groups.
nullnixflix.recyclarr.config.radarr.<name>.custom_format_groups.add Link copied!
list of (submodule)Groups to explicitly synchronize. Use this to customize default group behavior or opt in to non-default groups.
[ ]nixflix.recyclarr.config.radarr.<name>.custom_format_groups.add.*.assign_scores_to Link copied!
null or (list of (submodule))Quality profiles to receive scores from this group. If omitted, scores are assigned to all applicable guide-backed profiles.
nullnixflix.recyclarr.config.radarr.<name>.custom_format_groups.add.*.assign_scores_to.*.name Link copied!
null or stringThe name of the quality profile.
nullnixflix.recyclarr.config.radarr.<name>.custom_format_groups.add.*.assign_scores_to.*.trash_id Link copied!
null or stringThe trash ID of a guide-backed quality profile.
nullnixflix.recyclarr.config.radarr.<name>.custom_format_groups.add.*.exclude Link copied!
null or (list of string)Trash IDs of custom formats to remove from the synced set. Required CFs cannot be excluded.
nullnixflix.recyclarr.config.radarr.<name>.custom_format_groups.add.*.select Link copied!
null or (list of string)Non-default custom formats to include alongside defaults. Mutually exclusive with select_all.
nullnixflix.recyclarr.config.radarr.<name>.custom_format_groups.add.*.select_all Link copied!
null or booleanWhen true, all non-required custom formats in the group are included. Mutually exclusive with select.
nullnixflix.recyclarr.config.radarr.<name>.custom_format_groups.add.*.trash_id Link copied!
stringThe trash ID of the custom format group.
nixflix.recyclarr.config.radarr.<name>.custom_format_groups.skip Link copied!
null or (list of string)Trash IDs of groups to exclude from auto-sync.
nullnixflix.recyclarr.config.radarr.<name>.custom_formats Link copied!
list of (submodule)Sets of custom formats with optional quality profile assignments for score application.
[ ]nixflix.recyclarr.config.radarr.<name>.custom_formats.*.assign_scores_to Link copied!
list of (submodule)Quality profiles to receive scores from these custom formats.
[ ]nixflix.recyclarr.config.radarr.<name>.custom_formats.*.assign_scores_to.*.name Link copied!
null or stringThe name of the quality profile. Works for both guide-backed and user-defined profiles.
nullnixflix.recyclarr.config.radarr.<name>.custom_formats.*.assign_scores_to.*.score Link copied!
null or signed integerScore override applied to all custom formats in this list. Omit to use guide default scores.
nullnixflix.recyclarr.config.radarr.<name>.custom_formats.*.assign_scores_to.*.trash_id Link copied!
null or stringThe trash ID of a guide-backed quality profile. Remains stable across guide updates.
nullnixflix.recyclarr.config.radarr.<name>.custom_formats.*.trash_ids Link copied!
list of stringTrash IDs of the custom formats to synchronize.
[ ][
"85c61753df5da1fb2aab6f2a47426b09"
]nixflix.recyclarr.config.radarr.<name>.delete_old_custom_formats Link copied!
booleanIf enabled, custom formats that you remove from your configuration or that are removed from the guide will be deleted from the service. Only applies to formats Recyclarr synchronized; manually added formats are preserved.
falsenixflix.recyclarr.config.radarr.<name>.include Link copied!
list of (submodule)A sequence of include directives to merge into this instance. Each entry must
set exactly one of template or config.
[ ]nixflix.recyclarr.config.radarr.<name>.include.*.config Link copied!
null or stringAn absolute or relative path to the YAML file to include. Relative paths
resolve from the includes directory in the Recyclarr app data folder.
nullnixflix.recyclarr.config.radarr.<name>.include.*.template Link copied!
null or stringThe ID of an include template from a resource provider. As of Recyclarr v8 the official repository no longer ships any include templates, so this only works with a custom resource provider or user-supplied local includes.
nullnixflix.recyclarr.config.radarr.<name>.media_management Link copied!
null or (submodule)Media management settings.
nullnixflix.recyclarr.config.radarr.<name>.media_management.propers_and_repacks Link copied!
null or one of "prefer_and_upgrade", "do_not_upgrade", "do_not_prefer"Controls how Sonarr/Radarr handles Propers and Repacks. This corresponds to the 'Propers and Repacks' dropdown in the Media Management settings.
nullnixflix.recyclarr.config.radarr.<name>.media_naming Link copied!
null or (submodule)Media naming configuration.
Use 'default' or 'standard' to apply TRaSH guide recommendations.
nullnixflix.recyclarr.config.radarr.<name>.media_naming.folder Link copied!
null or stringA naming format taken from the 'Key' column of the 'Movie Folder Format' table.
nullnixflix.recyclarr.config.radarr.<name>.media_naming.movie Link copied!
null or (submodule)Movie file naming configuration.
nullnixflix.recyclarr.config.radarr.<name>.media_naming.movie.rename Link copied!
booleanEnables the 'Rename Movies' checkbox when set to true.
truenixflix.recyclarr.config.radarr.<name>.media_naming.movie.standard Link copied!
null or stringA naming format taken from the 'Key' column of the 'Standard Movie Format' table.
nullnixflix.recyclarr.config.radarr.<name>.quality_definition Link copied!
null or (submodule)Control the minimum, maximum, and preferred file sizes for each quality level.
nullnixflix.recyclarr.config.radarr.<name>.quality_definition.preferred_ratio Link copied!
null or integer or floating point number between 0.0 and 1.0 (both inclusive)A value 0.0 to 1.0 that represents the percentage (interpolated) position of the preferred quality slider between minimum and maximum. Values outside the range are clamped with a warning. Has no effect on Sonarr v3.
nullnixflix.recyclarr.config.radarr.<name>.quality_definition.qualities Link copied!
null or (list of (submodule))Override size limits for specific qualities while retaining guide defaults for others. Constraint: min ≤ preferred ≤ max.
nullnixflix.recyclarr.config.radarr.<name>.quality_definition.qualities.*.max Link copied!
null or nonnegative integer or floating point number, meaning >=0, or value "unlimited" (singular enum)Maximum size in MB per minute of runtime, or "unlimited".
nullnixflix.recyclarr.config.radarr.<name>.quality_definition.qualities.*.min Link copied!
null or (nonnegative integer or floating point number, meaning >=0)Minimum size in MB per minute of runtime.
nullnixflix.recyclarr.config.radarr.<name>.quality_definition.qualities.*.name Link copied!
stringThe name of a quality to override. Must exist in the guide (case-insensitive).
"Bluray-1080p"nixflix.recyclarr.config.radarr.<name>.quality_definition.qualities.*.preferred Link copied!
null or nonnegative integer or floating point number, meaning >=0, or value "unlimited" (singular enum)Preferred size in MB per minute of runtime, or "unlimited".
nullnixflix.recyclarr.config.radarr.<name>.quality_definition.type Link copied!
one of "movie", "anime", "sqp-streaming", "sqp-uhd"Identifies which quality size settings to parse and upload.
nixflix.recyclarr.config.radarr.<name>.quality_profiles Link copied!
list of (submodule)An array of quality profiles that Recyclarr should create or modify.
Prefer setting trash_id to use a guide-backed profile — qualities, custom
formats, scores, and language will be configured automatically from the
TRaSH Guides. For user-defined profiles, set name along with qualities
and other fields.
[ ]nixflix.recyclarr.config.radarr.<name>.quality_profiles.*.min_format_score Link copied!
null or signed integerCorrelates directly to the 'Minimum Custom Format Score' field in the Quality Profile edit dialog in Radarr/Sonarr.
nullnixflix.recyclarr.config.radarr.<name>.quality_profiles.*.min_upgrade_format_score Link copied!
null or signed integerCorrelates directly to the 'Minimum Custom Format Score For Upgrades' field in the Quality Profile edit dialog in Radarr/Sonarr.
nullnixflix.recyclarr.config.radarr.<name>.quality_profiles.*.name Link copied!
null or stringThe name of the quality profile. For guide-backed profiles (with
trash_id), this defaults to the guide's recommended name and may be
overridden. For user-defined profiles, this is the profile identity.
Either trash_id or name is required.
null"WEB-2160p"nixflix.recyclarr.config.radarr.<name>.quality_profiles.*.qualities Link copied!
null or (list of (submodule))Ordered list of qualities in the profile (from highest to lowest priority).
nullnixflix.recyclarr.config.radarr.<name>.quality_profiles.*.qualities.*.enabled Link copied!
booleanIf true, this quality will be allowed. If false, this quality will be disallowed.
truenixflix.recyclarr.config.radarr.<name>.quality_profiles.*.qualities.*.name Link copied!
stringThe name of an existing quality. If this is a quality group, this name identifies either an existing quality group or will be used as the name for a newly created group.
"WEB 2160p"nixflix.recyclarr.config.radarr.<name>.quality_profiles.*.qualities.*.qualities Link copied!
null or (list of string)A list of one or more existing qualities to bundle into a group. By specifying this list, you implicitly make this item a quality group.
null[
"WEBDL-2160p"
"WEBRip-2160p"
]nixflix.recyclarr.config.radarr.<name>.quality_profiles.*.quality_sort Link copied!
null or one of "top", "bottom"Controls which direction specified qualities are sorted. top sorts them to the top of the list; bottom sorts them to the bottom.
nullnixflix.recyclarr.config.radarr.<name>.quality_profiles.*.reset_unmatched_scores Link copied!
null or (submodule)Configuration for resetting unmatched custom format scores.
nullnixflix.recyclarr.config.radarr.<name>.quality_profiles.*.reset_unmatched_scores.enabled Link copied!
booleanIf true, custom format scores not managed by Recyclarr are set to 0. If false, scores are only altered when listed in trash_ids with a valid score.
truenixflix.recyclarr.config.radarr.<name>.quality_profiles.*.reset_unmatched_scores.except Link copied!
null or (list of string)A list of one or more custom format names to exclude from score resets. Names must match exactly (case-sensitive).
nullnixflix.recyclarr.config.radarr.<name>.quality_profiles.*.reset_unmatched_scores.except_patterns Link copied!
null or (list of string)A list of one or more regular expression patterns used to exclude custom formats from score resets. Matching is case-insensitive.
nullnixflix.recyclarr.config.radarr.<name>.quality_profiles.*.score_set Link copied!
null or stringA string (name) that determines the guide-provided, preset scores to use across all custom formats assigned to a quality profile.
nullnixflix.recyclarr.config.radarr.<name>.quality_profiles.*.trash_id Link copied!
null or stringThe trash ID of a TRaSH Guide quality profile definition.
null"0896c29d74de619df168d23b98104b22"nixflix.recyclarr.config.radarr.<name>.quality_profiles.*.upgrade Link copied!
null or (submodule)Upgrade configuration for the quality profile.
nullnixflix.recyclarr.config.radarr.<name>.quality_profiles.*.upgrade.allowed Link copied!
booleanDirectly correlates to the 'Upgrades Allowed' checkbox in the Quality Profile edit dialog in Radarr/Sonarr.
truenixflix.recyclarr.config.radarr.<name>.quality_profiles.*.upgrade.until_quality Link copied!
null or stringThe quality name mentioned here must exist in the qualities list or be a valid quality in your profile.
null"WEB 2160p"nixflix.recyclarr.config.radarr.<name>.quality_profiles.*.upgrade.until_score Link copied!
null or signed integerCorrelates directly to the 'Upgrade Until Custom Format Score' field in the Quality Profile edit dialog.
nullnixflix.recyclarr.config.sonarr Link copied!
null or (attribute set of (submodule))Sonarr instance configurations
nullnixflix.recyclarr.config.sonarr.<name>.api_key Link copied!
string or (submodule)The API key that Recyclarr should use to synchronize settings to your instance.
!!! warning
Can be a plain string (visible in Nix store) or { _secret = /path/to/file; } for file-based secrets.
Plain-text secrets will be visible in the Nix store. Use `{ _secret = path; }` for sensitive data.
null{ _secret = "/run/secrets/secret-file"; }nixflix.recyclarr.config.sonarr.<name>.base_url Link copied!
stringThe base URL of your instance. Basically this is the URL you bookmark to get to the front page.
"http://127.0.0.1:8989"nixflix.recyclarr.config.sonarr.<name>.custom_format_groups Link copied!
null or (submodule)Controls which custom format groups synchronize from the TRaSH Guides. Groups
marked default: true in the guide are automatically synced when using
guide-backed quality profiles. Use skip to opt out of defaults or add to
opt in to non-default groups.
nullnixflix.recyclarr.config.sonarr.<name>.custom_format_groups.add Link copied!
list of (submodule)Groups to explicitly synchronize. Use this to customize default group behavior or opt in to non-default groups.
[ ]nixflix.recyclarr.config.sonarr.<name>.custom_format_groups.add.*.assign_scores_to Link copied!
null or (list of (submodule))Quality profiles to receive scores from this group. If omitted, scores are assigned to all applicable guide-backed profiles.
nullnixflix.recyclarr.config.sonarr.<name>.custom_format_groups.add.*.assign_scores_to.*.name Link copied!
null or stringThe name of the quality profile.
nullnixflix.recyclarr.config.sonarr.<name>.custom_format_groups.add.*.assign_scores_to.*.trash_id Link copied!
null or stringThe trash ID of a guide-backed quality profile.
nullnixflix.recyclarr.config.sonarr.<name>.custom_format_groups.add.*.exclude Link copied!
null or (list of string)Trash IDs of custom formats to remove from the synced set. Required CFs cannot be excluded.
nullnixflix.recyclarr.config.sonarr.<name>.custom_format_groups.add.*.select Link copied!
null or (list of string)Non-default custom formats to include alongside defaults. Mutually exclusive with select_all.
nullnixflix.recyclarr.config.sonarr.<name>.custom_format_groups.add.*.select_all Link copied!
null or booleanWhen true, all non-required custom formats in the group are included. Mutually exclusive with select.
nullnixflix.recyclarr.config.sonarr.<name>.custom_format_groups.add.*.trash_id Link copied!
stringThe trash ID of the custom format group.
nixflix.recyclarr.config.sonarr.<name>.custom_format_groups.skip Link copied!
null or (list of string)Trash IDs of groups to exclude from auto-sync.
nullnixflix.recyclarr.config.sonarr.<name>.custom_formats Link copied!
list of (submodule)Sets of custom formats with optional quality profile assignments for score application.
[ ]nixflix.recyclarr.config.sonarr.<name>.custom_formats.*.assign_scores_to Link copied!
list of (submodule)Quality profiles to receive scores from these custom formats.
[ ]nixflix.recyclarr.config.sonarr.<name>.custom_formats.*.assign_scores_to.*.name Link copied!
null or stringThe name of the quality profile. Works for both guide-backed and user-defined profiles.
nullnixflix.recyclarr.config.sonarr.<name>.custom_formats.*.assign_scores_to.*.score Link copied!
null or signed integerScore override applied to all custom formats in this list. Omit to use guide default scores.
nullnixflix.recyclarr.config.sonarr.<name>.custom_formats.*.assign_scores_to.*.trash_id Link copied!
null or stringThe trash ID of a guide-backed quality profile. Remains stable across guide updates.
nullnixflix.recyclarr.config.sonarr.<name>.custom_formats.*.trash_ids Link copied!
list of stringTrash IDs of the custom formats to synchronize.
[ ][
"85c61753df5da1fb2aab6f2a47426b09"
]nixflix.recyclarr.config.sonarr.<name>.delete_old_custom_formats Link copied!
booleanIf enabled, custom formats that you remove from your configuration or that are removed from the guide will be deleted from the service. Only applies to formats Recyclarr synchronized; manually added formats are preserved.
falsenixflix.recyclarr.config.sonarr.<name>.include Link copied!
list of (submodule)A sequence of include directives to merge into this instance. Each entry must
set exactly one of template or config.
[ ]nixflix.recyclarr.config.sonarr.<name>.include.*.config Link copied!
null or stringAn absolute or relative path to the YAML file to include. Relative paths
resolve from the includes directory in the Recyclarr app data folder.
nullnixflix.recyclarr.config.sonarr.<name>.include.*.template Link copied!
null or stringThe ID of an include template from a resource provider. As of Recyclarr v8 the official repository no longer ships any include templates, so this only works with a custom resource provider or user-supplied local includes.
nullnixflix.recyclarr.config.sonarr.<name>.media_management Link copied!
null or (submodule)Media management settings.
nullnixflix.recyclarr.config.sonarr.<name>.media_management.propers_and_repacks Link copied!
null or one of "prefer_and_upgrade", "do_not_upgrade", "do_not_prefer"Controls how Sonarr/Radarr handles Propers and Repacks. This corresponds to the 'Propers and Repacks' dropdown in the Media Management settings.
nullnixflix.recyclarr.config.sonarr.<name>.media_naming Link copied!
null or (submodule)Media naming configuration.
Use 'default' or 'standard' to apply TRaSH guide recommendations.
nullnixflix.recyclarr.config.sonarr.<name>.media_naming.episodes Link copied!
null or (submodule)Episode file naming configuration.
nullnixflix.recyclarr.config.sonarr.<name>.media_naming.episodes.anime Link copied!
null or stringAnime episode naming format key.
nullnixflix.recyclarr.config.sonarr.<name>.media_naming.episodes.daily Link copied!
null or stringDaily episode naming format key.
nullnixflix.recyclarr.config.sonarr.<name>.media_naming.episodes.rename Link copied!
booleanEnables the 'Rename Episodes' checkbox when set to true.
truenixflix.recyclarr.config.sonarr.<name>.media_naming.episodes.standard Link copied!
null or stringStandard episode naming format key.
nullnixflix.recyclarr.config.sonarr.<name>.media_naming.season Link copied!
null or stringA naming format taken from the 'Key' column of the 'Season Folder Format' table.
nullnixflix.recyclarr.config.sonarr.<name>.media_naming.series Link copied!
null or stringA naming format taken from the 'Key' column of the 'Series Folder Format' table.
nullnixflix.recyclarr.config.sonarr.<name>.quality_definition Link copied!
null or (submodule)Control the minimum, maximum, and preferred file sizes for each quality level.
nullnixflix.recyclarr.config.sonarr.<name>.quality_definition.preferred_ratio Link copied!
null or integer or floating point number between 0.0 and 1.0 (both inclusive)A value 0.0 to 1.0 that represents the percentage (interpolated) position of the preferred quality slider between minimum and maximum. Values outside the range are clamped with a warning. Has no effect on Sonarr v3.
nullnixflix.recyclarr.config.sonarr.<name>.quality_definition.qualities Link copied!
null or (list of (submodule))Override size limits for specific qualities while retaining guide defaults for others. Constraint: min ≤ preferred ≤ max.
nullnixflix.recyclarr.config.sonarr.<name>.quality_definition.qualities.*.max Link copied!
null or nonnegative integer or floating point number, meaning >=0, or value "unlimited" (singular enum)Maximum size in MB per minute of runtime, or "unlimited".
nullnixflix.recyclarr.config.sonarr.<name>.quality_definition.qualities.*.min Link copied!
null or (nonnegative integer or floating point number, meaning >=0)Minimum size in MB per minute of runtime.
nullnixflix.recyclarr.config.sonarr.<name>.quality_definition.qualities.*.name Link copied!
stringThe name of a quality to override. Must exist in the guide (case-insensitive).
"Bluray-1080p"nixflix.recyclarr.config.sonarr.<name>.quality_definition.qualities.*.preferred Link copied!
null or nonnegative integer or floating point number, meaning >=0, or value "unlimited" (singular enum)Preferred size in MB per minute of runtime, or "unlimited".
nullnixflix.recyclarr.config.sonarr.<name>.quality_definition.type Link copied!
one of "series", "anime"Identifies which quality size settings to parse and upload.
nixflix.recyclarr.config.sonarr.<name>.quality_profiles Link copied!
list of (submodule)An array of quality profiles that Recyclarr should create or modify.
Prefer setting trash_id to use a guide-backed profile — qualities, custom
formats, scores, and language will be configured automatically from the
TRaSH Guides. For user-defined profiles, set name along with qualities
and other fields.
[ ]nixflix.recyclarr.config.sonarr.<name>.quality_profiles.*.min_format_score Link copied!
null or signed integerCorrelates directly to the 'Minimum Custom Format Score' field in the Quality Profile edit dialog in Radarr/Sonarr.
nullnixflix.recyclarr.config.sonarr.<name>.quality_profiles.*.min_upgrade_format_score Link copied!
null or signed integerCorrelates directly to the 'Minimum Custom Format Score For Upgrades' field in the Quality Profile edit dialog in Radarr/Sonarr.
nullnixflix.recyclarr.config.sonarr.<name>.quality_profiles.*.name Link copied!
null or stringThe name of the quality profile. For guide-backed profiles (with
trash_id), this defaults to the guide's recommended name and may be
overridden. For user-defined profiles, this is the profile identity.
Either trash_id or name is required.
null"WEB-2160p"nixflix.recyclarr.config.sonarr.<name>.quality_profiles.*.qualities Link copied!
null or (list of (submodule))Ordered list of qualities in the profile (from highest to lowest priority).
nullnixflix.recyclarr.config.sonarr.<name>.quality_profiles.*.qualities.*.enabled Link copied!
booleanIf true, this quality will be allowed. If false, this quality will be disallowed.
truenixflix.recyclarr.config.sonarr.<name>.quality_profiles.*.qualities.*.name Link copied!
stringThe name of an existing quality. If this is a quality group, this name identifies either an existing quality group or will be used as the name for a newly created group.
"WEB 2160p"nixflix.recyclarr.config.sonarr.<name>.quality_profiles.*.qualities.*.qualities Link copied!
null or (list of string)A list of one or more existing qualities to bundle into a group. By specifying this list, you implicitly make this item a quality group.
null[
"WEBDL-2160p"
"WEBRip-2160p"
]nixflix.recyclarr.config.sonarr.<name>.quality_profiles.*.quality_sort Link copied!
null or one of "top", "bottom"Controls which direction specified qualities are sorted. top sorts them to the top of the list; bottom sorts them to the bottom.
nullnixflix.recyclarr.config.sonarr.<name>.quality_profiles.*.reset_unmatched_scores Link copied!
null or (submodule)Configuration for resetting unmatched custom format scores.
nullnixflix.recyclarr.config.sonarr.<name>.quality_profiles.*.reset_unmatched_scores.enabled Link copied!
booleanIf true, custom format scores not managed by Recyclarr are set to 0. If false, scores are only altered when listed in trash_ids with a valid score.
truenixflix.recyclarr.config.sonarr.<name>.quality_profiles.*.reset_unmatched_scores.except Link copied!
null or (list of string)A list of one or more custom format names to exclude from score resets. Names must match exactly (case-sensitive).
nullnixflix.recyclarr.config.sonarr.<name>.quality_profiles.*.reset_unmatched_scores.except_patterns Link copied!
null or (list of string)A list of one or more regular expression patterns used to exclude custom formats from score resets. Matching is case-insensitive.
nullnixflix.recyclarr.config.sonarr.<name>.quality_profiles.*.score_set Link copied!
null or stringA string (name) that determines the guide-provided, preset scores to use across all custom formats assigned to a quality profile.
nullnixflix.recyclarr.config.sonarr.<name>.quality_profiles.*.trash_id Link copied!
null or stringThe trash ID of a TRaSH Guide quality profile definition.
null"0896c29d74de619df168d23b98104b22"nixflix.recyclarr.config.sonarr.<name>.quality_profiles.*.upgrade Link copied!
null or (submodule)Upgrade configuration for the quality profile.
nullnixflix.recyclarr.config.sonarr.<name>.quality_profiles.*.upgrade.allowed Link copied!
booleanDirectly correlates to the 'Upgrades Allowed' checkbox in the Quality Profile edit dialog in Radarr/Sonarr.
truenixflix.recyclarr.config.sonarr.<name>.quality_profiles.*.upgrade.until_quality Link copied!
null or stringThe quality name mentioned here must exist in the qualities list or be a valid quality in your profile.
null"WEB 2160p"nixflix.recyclarr.config.sonarr.<name>.quality_profiles.*.upgrade.until_score Link copied!
null or signed integerCorrelates directly to the 'Upgrade Until Custom Format Score' field in the Quality Profile edit dialog.
nullnixflix.recyclarr.enable Link copied!
booleanWhether to enable Recyclarr for automated TRaSH guide syncing.
Default configurations select profiles that prioritize acquisition over quality. Lower quality hits that meet TRaSH standards will be accepted and grabbed.
falsenixflix.recyclarr.group Link copied!
stringGroup under which Recyclarr runs.
"recyclarr"nixflix.recyclarr.radarrQuality Link copied!
one of "4K", "1080p"Allows for easy recyclarr quality profile configuration for the radarr instance.
This option selects profiles that prioritize acquisition over quality. Lower quality hits that meet TRaSH standards will be accepted and grabbed.
- 4k creates a profile named "[SQP] SQP-1 (2160p)"
- 1080p creates a profile named "[SQP] SQP-1 (1080p)"
If you want Seerr to use these, you'll have to configure them manually.
Complex configurations can be manually applied using nixflix.recyclarr.config.radarr.radarr.
If you do, you need to set
nixflix.recyclarr.config.radarr.radarr.quality_profiles = mkForce [];.
"1080p""4K"nixflix.recyclarr.sonarrQuality Link copied!
one of "4K", "1080p"Allows for easy recyclarr quality profile configuration for the sonarr instance.
Does not effect Sonarr Anime.
This option selects profiles that prioritize acquisition over quality. Lower quality hits that meet TRaSH standards will be accepted and grabbed.
- 4k creates a quality profile named "WEB-2160p (Alternative)"
- 1080p creates a quality profile named "WEB-1080p (Alternative)"
If you want Seerr to use these, you'll have to configure them manually.
Complex configurations can be manually applied using nixflix.recyclarr.config.sonarr.sonarr.
If you do, you need to set
nixflix.recyclarr.config.sonarr.sonarr.quality_profiles = mkForce [];.
"1080p""4K"nixflix.recyclarr.user Link copied!
stringUser under which Recyclarr runs.
"recyclarr"nixflix.seerr.apiKey Link copied!
string or (submodule)API key for Seerr. Can be created with:
uuidgen | base64
!!! warning
Can be a plain string (visible in Nix store) or { _secret = /path/to/file; } for file-based secrets.
Plain-text secrets will be visible in the Nix store. Use `{ _secret = path; }` for sensitive data.
null{ _secret = "/run/secrets/secret-file"; }nixflix.seerr.connectionAddress Link copied!
stringAddress for connecting to this service.
"127.0.0.1"nixflix.seerr.dataDir Link copied!
absolute pathDirectory containing Seerr data and configuration
"${nixflix.stateDir}/seerr"nixflix.seerr.enable Link copied!
booleanWhether to enable Seerr media request manager.
falsetruenixflix.seerr.externalUrlScheme Link copied!
stringScheme to use for external linking to other services from within Seerr.
"http""https"nixflix.seerr.jellyfin.adminPassword Link copied!
string or (submodule)Jellyfin admin password for Seerr authentication.
Auto-derived from nixflix.jellyfin.users when Jellyfin is enabled locally.
Must be set explicitly when using a remote Jellyfin instance.
!!! warning
Can be a plain string (visible in Nix store) or { _secret = /path/to/file; } for file-based secrets.
Plain-text secrets will be visible in the Nix store. Use `{ _secret = path; }` for sensitive data.
password of first admin from nixflix.jellyfin.users, or null{ _secret = "/run/secrets/secret-file"; }nixflix.seerr.jellyfin.adminUsername Link copied!
null or stringJellyfin admin username for Seerr authentication.
Auto-derived from nixflix.jellyfin.users when Jellyfin is enabled locally.
Must be set explicitly when using a remote Jellyfin instance.
first admin username from nixflix.jellyfin.users, or nullnixflix.seerr.jellyfin.enableAllLibraries Link copied!
booleanEnable all Jellyfin libraries (fetched from API). Set to false to use libraryFilter.
truenixflix.seerr.jellyfin.externalHostname Link copied!
stringThis option has no description.
if config.nixflix.reverseProxy.enable != ""
then "$${config.nixflix.seerr.externalUrlScheme}://$${config.nixflix.jellyfin.subdomain}.$${config.nixflix.reverseProxy.domain}"
else "";
nixflix.seerr.jellyfin.hostname Link copied!
stringJellyfin server hostname
config.nixflix.jellyfin.connectionAddressnixflix.seerr.jellyfin.libraryFilter Link copied!
submoduleFilter which libraries to enable (only used when enableAllLibraries = false)
{ }nixflix.seerr.jellyfin.libraryFilter.names Link copied!
list of stringOnly enable libraries matching these names (empty = all names)
[ ][
"Movies"
"TV Shows"
]nixflix.seerr.jellyfin.libraryFilter.types Link copied!
list of (one of "movie", "show")Only enable libraries of these types (empty = all types)
[ ][
"movie"
"show"
]nixflix.seerr.jellyfin.port Link copied!
16 bit unsigned integer; between 0 and 65535 (both inclusive)Jellyfin server port
config.nixflix.jellyfin.network.internalHttpPortnixflix.seerr.jellyfin.serverType Link copied!
signed integerServer type (2 = Jellyfin)
2nixflix.seerr.jellyfin.useSsl Link copied!
booleanUse SSL to connect to Jellyfin
falsenixflix.seerr.openFirewall Link copied!
booleanOpen port in firewall for Seerr
falsenixflix.seerr.port Link copied!
16 bit unsigned integer; between 0 and 65535 (both inclusive)Port on which Seerr listens
5055nixflix.seerr.radarr Link copied!
attribute set of (submodule)Radarr instances to configure. Automatically configured from config.nixflix.radarr when enabled, otherwise {}.
Default instances can be overridden with lib.mkForce {}.
{ }{
Radarr = {
activeDirectory = "/movies";
activeProfileName = "HD-1080p";
apiKey = {
_secret = "/run/secrets/radarr-apikey";
};
};
"Radarr 4K" = {
activeDirectory = "/movies-4k";
activeProfileName = "UHD-2160p";
apiKey = {
_secret = "/run/secrets/radarr-4k-apikey";
};
is4k = true;
};
}nixflix.seerr.radarr.<name>.activeDirectory Link copied!
stringRoot folder for movies
head (config.nixflix.radarr.mediaDirs or ["/movies"])nixflix.seerr.radarr.<name>.activeProfileName Link copied!
null or stringQuality profile name. Defaults to first available quality profile in Seerr.
nullnixflix.seerr.radarr.<name>.apiKey Link copied!
string or (submodule)Radarr API key.
!!! warning
Can be a plain string (visible in Nix store) or { _secret = /path/to/file; } for file-based secrets.
Plain-text secrets will be visible in the Nix store. Use `{ _secret = path; }` for sensitive data.
null{ _secret = "/run/secrets/secret-file"; }nixflix.seerr.radarr.<name>.baseUrl Link copied!
stringRadarr URL base
"""/radarr"nixflix.seerr.radarr.<name>.externalUrl Link copied!
stringExternal URL for Radarr
""nixflix.seerr.radarr.<name>.is4k Link copied!
booleanIs this a 4K Radarr instance
falsenixflix.seerr.radarr.<name>.isDefault Link copied!
booleanIs this the default Radarr instance
falsenixflix.seerr.radarr.<name>.minimumAvailability Link copied!
one of "announced", "inCinemas", "released"Minimum availability for movies
"released"nixflix.seerr.radarr.<name>.port Link copied!
16 bit unsigned integer; between 0 and 65535 (both inclusive)Radarr port
7878nixflix.seerr.radarr.<name>.preventSearch Link copied!
booleanPrevent Seerr from triggering searches
falsenixflix.seerr.radarr.<name>.syncEnabled Link copied!
booleanEnable automatic sync with Radarr
falsenixflix.seerr.radarr.<name>.useSsl Link copied!
booleanUse SSL to connect to Radarr
falsenixflix.seerr.reverseProxy.expose Link copied!
booleanWhether to expose Seerr via the reverse proxy.
truenixflix.seerr.settings.users Link copied!
submoduleDefault user settings for Seerr (authentication, permissions, and quotas)
{
localLogin = true;
mediaServerLogin = true;
newPlexLogin = true;
defaultPermissions = 32;
defaultQuotas = {
movie = { quotaLimit = 0; quotaDays = 7; };
tv = { quotaLimit = 0; quotaDays = 7; };
};
}
nixflix.seerr.settings.users.defaultPermissions Link copied!
signed integerDefault permission flags for newly created users. Common values: 0 (none), 32 (REQUEST - default), 1024 (ADMIN), 160 (Auto-approve non-4k)
32nixflix.seerr.settings.users.defaultQuotas Link copied!
submoduleDefault request quotas for new users
{ }nixflix.seerr.settings.users.defaultQuotas.movie Link copied!
submoduleThis option has no description.
{ }nixflix.seerr.settings.users.defaultQuotas.movie.quotaDays Link copied!
positive integer, meaning >0Quota period in days
7nixflix.seerr.settings.users.defaultQuotas.movie.quotaLimit Link copied!
unsigned integer, meaning >=0Max movie requests per period (0 = unlimited)
0nixflix.seerr.settings.users.defaultQuotas.tv Link copied!
submoduleThis option has no description.
{ }nixflix.seerr.settings.users.defaultQuotas.tv.quotaDays Link copied!
positive integer, meaning >0Quota period in days
7nixflix.seerr.settings.users.defaultQuotas.tv.quotaLimit Link copied!
unsigned integer, meaning >=0Max TV requests per period (0 = unlimited)
0nixflix.seerr.settings.users.localLogin Link copied!
booleanEnable local account authentication independent of Jellyfin/Plex
truenixflix.seerr.settings.users.mediaServerLogin Link copied!
booleanEnable authentication via connected media server (Jellyfin/Plex)
truenixflix.seerr.settings.users.newPlexLogin Link copied!
booleanAllow new Plex users to authenticate and create accounts
truenixflix.seerr.sonarr Link copied!
attribute set of (submodule)Sonarr instances to configure. Automatically configured from config.nixflix.sonarr and config.nixflix.sonarr-anime when enabled, otherwise {}.
Default instances can be overridden with lib.mkForce {}.
{ }{
Sonarr = {
activeDirectory = "/tv";
activeProfileName = "WEB-1080p";
port = 8989;
};
"Sonarr Anime" = {
activeDirectory = "/anime";
activeProfileName = "Remux-1080p - Anime";
port = 8990;
};
}nixflix.seerr.sonarr.<name>.activeAnimeDirectory Link copied!
stringRoot folder for anime
""nixflix.seerr.sonarr.<name>.activeAnimeProfileName Link copied!
null or stringAnime quality profile name.
nullnixflix.seerr.sonarr.<name>.activeDirectory Link copied!
stringRoot folder for TV shows
head (config.nixflix.sonarr.mediaDirs or ["/tv"])nixflix.seerr.sonarr.<name>.activeProfileName Link copied!
null or stringQuality profile name. Defaults to first available quality profile in Seerr.
nullnixflix.seerr.sonarr.<name>.animeSeriesType Link copied!
one of "standard", "anime"Series type for anime content
"standard"nixflix.seerr.sonarr.<name>.apiKey Link copied!
string or (submodule)Sonarr API key.
!!! warning
Can be a plain string (visible in Nix store) or { _secret = /path/to/file; } for file-based secrets.
Plain-text secrets will be visible in the Nix store. Use `{ _secret = path; }` for sensitive data.
null{ _secret = "/run/secrets/secret-file"; }nixflix.seerr.sonarr.<name>.baseUrl Link copied!
stringSonarr URL base
"""/sonarr"nixflix.seerr.sonarr.<name>.enableSeasonFolders Link copied!
booleanEnable season folders
truenixflix.seerr.sonarr.<name>.externalUrl Link copied!
stringExternal URL for Sonarr
""nixflix.seerr.sonarr.<name>.is4k Link copied!
booleanIs this a 4K Sonarr instance
falsenixflix.seerr.sonarr.<name>.isDefault Link copied!
booleanIs this the default Sonarr instance
falsenixflix.seerr.sonarr.<name>.port Link copied!
16 bit unsigned integer; between 0 and 65535 (both inclusive)Sonarr port
8989nixflix.seerr.sonarr.<name>.preventSearch Link copied!
booleanPrevent Seerr from triggering searches
falsenixflix.seerr.sonarr.<name>.seriesType Link copied!
one of "standard", "daily"Series type for regular content
"standard"nixflix.seerr.sonarr.<name>.syncEnabled Link copied!
booleanEnable automatic sync with Sonarr
falsenixflix.seerr.sonarr.<name>.useSsl Link copied!
booleanUse SSL to connect to Sonarr
falsenixflix.seerr.subdomain Link copied!
stringSubdomain prefix for reverse proxy.
"seerr"nixflix.seerr.vpn.enable Link copied!
booleanWhether to route Seerr traffic through the VPN.
When false, Seerr bypasses the VPN.
When true, Seerr is confined to the WireGuard network namespace (requires nixflix.vpn.enable = true).
config.nixflix.vpn.enablenixflix.serviceDependencies Link copied!
list of stringList of systemd services that nixflix services should wait for before starting. Useful for mounting encrypted drives, starting VPNs, or other prerequisites.
[ ][
"unlock-raid.service"
"tailscale.service"
]nixflix.sonarr-anime.config.apiKey Link copied!
string or (submodule)API key for Sonarr-anime. Can be created by running:
openssl rand -hex 16
!!! warning
Can be a plain string (visible in Nix store) or { _secret = /path/to/file; } for file-based secrets.
Plain-text secrets will be visible in the Nix store. Use `{ _secret = path; }` for sensitive data.
null{ _secret = "/run/secrets/secret-file"; }nixflix.sonarr-anime.config.apiVersion Link copied!
stringCurrent version of the API of the service
"v3"nixflix.sonarr-anime.config.delayProfiles Link copied!
list of (submodule)List of delay profiles to configure via the API /delayprofile endpoint.
Profiles are created/updated in id order. If no profile with id=1 is provided, a default profile will be added automatically.
[
{
enableUsenet = true;
enableTorrent = true;
preferredProtocol = "usenet";
usenetDelay = 0;
torrentDelay = 0;
bypassIfHighestQuality = true;
bypassIfAboveCustomFormatScore = false;
minimumCustomFormatScore = 0;
order = 2147483647;
tags = [];
id = 1;
};
]
nixflix.sonarr-anime.config.delayProfiles.*.bypassIfAboveCustomFormatScore Link copied!
booleanBypass delay if custom format score is above minimum
falsenixflix.sonarr-anime.config.delayProfiles.*.bypassIfHighestQuality Link copied!
booleanBypass delay if release is the highest quality available
truenixflix.sonarr-anime.config.delayProfiles.*.enableTorrent Link copied!
booleanEnable Torrent protocol for this profile
truenixflix.sonarr-anime.config.delayProfiles.*.enableUsenet Link copied!
booleanEnable Usenet protocol for this profile
truenixflix.sonarr-anime.config.delayProfiles.*.id Link copied!
signed integerUnique identifier for the delay profile
nixflix.sonarr-anime.config.delayProfiles.*.minimumCustomFormatScore Link copied!
signed integerMinimum custom format score to bypass delay
0nixflix.sonarr-anime.config.delayProfiles.*.order Link copied!
signed integerOrder/priority of this delay profile (lower values = higher priority)
50nixflix.sonarr-anime.config.delayProfiles.*.preferredProtocol Link copied!
one of "usenet", "torrent"Preferred download protocol when both are available
"usenet"nixflix.sonarr-anime.config.delayProfiles.*.tags Link copied!
list of signed integerList of tag IDs this delay profile applies to (empty = applies to all)
[ ]nixflix.sonarr-anime.config.delayProfiles.*.torrentDelay Link copied!
signed integerDelay in minutes before grabbing a Torrent release
0nixflix.sonarr-anime.config.delayProfiles.*.usenetDelay Link copied!
signed integerDelay in minutes before grabbing a Usenet release
0nixflix.sonarr-anime.config.hostConfig Link copied!
submoduleHost configuration options that will be set via the API /config/host endpoint
{ }nixflix.sonarr-anime.config.hostConfig.analyticsEnabled Link copied!
booleanEnable analytics
falsenixflix.sonarr-anime.config.hostConfig.applicationUrl Link copied!
stringApplication URL
""nixflix.sonarr-anime.config.hostConfig.authenticationMethod Link copied!
one of "none", "basic", "forms", "external"Authentication method
"forms"nixflix.sonarr-anime.config.hostConfig.authenticationRequired Link copied!
one of "enabled", "disabled", "disabledForLocalAddresses"Authentication requirement level
"enabled"nixflix.sonarr-anime.config.hostConfig.backupFolder Link copied!
stringBackup folder name
"Backups"nixflix.sonarr-anime.config.hostConfig.backupInterval Link copied!
signed integerBackup interval in days
7nixflix.sonarr-anime.config.hostConfig.backupRetention Link copied!
signed integerBackup retention in days
28nixflix.sonarr-anime.config.hostConfig.bindAddress Link copied!
stringAddress to bind to
"0.0.0.0"nixflix.sonarr-anime.config.hostConfig.certificateValidation Link copied!
one of "enabled", "disabled", "disabledForLocalAddresses"Certificate validation
"enabled"nixflix.sonarr-anime.config.hostConfig.consoleLogLevel Link copied!
stringConsole log level
""nixflix.sonarr-anime.config.hostConfig.enableSsl Link copied!
booleanEnable SSL
falsenixflix.sonarr-anime.config.hostConfig.instanceName Link copied!
stringInstance name
"Sonarr-anime"nixflix.sonarr-anime.config.hostConfig.launchBrowser Link copied!
booleanLaunch browser on start (not applicable for NixOS services)
falsenixflix.sonarr-anime.config.hostConfig.logLevel Link copied!
one of "info", "debug", "trace"Log level
"info"nixflix.sonarr-anime.config.hostConfig.logSizeLimit Link copied!
signed integerLog size limit in MB
1nixflix.sonarr-anime.config.hostConfig.password Link copied!
null or string or (submodule)Password for web interface authentication.
!!! warning
Can be a plain string (visible in Nix store) or { _secret = /path/to/file; } for file-based secrets.
Plain-text secrets will be visible in the Nix store. Use `{ _secret = path; }` for sensitive data.
null{ _secret = "/run/secrets/secret-file"; }nixflix.sonarr-anime.config.hostConfig.port Link copied!
16 bit unsigned integer; between 0 and 65535 (both inclusive)Port the service listens on
nixflix.sonarr-anime.config.hostConfig.proxyBypassFilter Link copied!
stringProxy bypass filter
""nixflix.sonarr-anime.config.hostConfig.proxyBypassLocalAddresses Link copied!
booleanProxy bypass local addresses
truenixflix.sonarr-anime.config.hostConfig.proxyEnabled Link copied!
booleanEnable proxy
falsenixflix.sonarr-anime.config.hostConfig.proxyHostname Link copied!
stringProxy hostname
""nixflix.sonarr-anime.config.hostConfig.proxyPassword Link copied!
string or (submodule)Proxy password
!!! warning
Can be a plain string (visible in Nix store) or { _secret = /path/to/file; } for file-based secrets.
Plain-text secrets will be visible in the Nix store. Use `{ _secret = path; }` for sensitive data.
null{ _secret = "/run/secrets/secret-file"; }nixflix.sonarr-anime.config.hostConfig.proxyPort Link copied!
16 bit unsigned integer; between 0 and 65535 (both inclusive)Proxy port
8080nixflix.sonarr-anime.config.hostConfig.proxyType Link copied!
one of "http", "socks4", "socks5"Proxy type
"http"nixflix.sonarr-anime.config.hostConfig.proxyUsername Link copied!
string or (submodule)Proxy username
!!! warning
Can be a plain string (visible in Nix store) or { _secret = /path/to/file; } for file-based secrets.
Plain-text secrets will be visible in the Nix store. Use `{ _secret = path; }` for sensitive data.
null{ _secret = "/run/secrets/secret-file"; }nixflix.sonarr-anime.config.hostConfig.sslCertPassword Link copied!
string or (submodule)SSL certificate password
!!! warning
Can be a plain string (visible in Nix store) or { _secret = /path/to/file; } for file-based secrets.
Plain-text secrets will be visible in the Nix store. Use `{ _secret = path; }` for sensitive data.
null{ _secret = "/run/secrets/secret-file"; }nixflix.sonarr-anime.config.hostConfig.sslCertPath Link copied!
stringSSL certificate path
""nixflix.sonarr-anime.config.hostConfig.sslPort Link copied!
16 bit unsigned integer; between 0 and 65535 (both inclusive)SSL port
9898nixflix.sonarr-anime.config.hostConfig.trustCgnatIpAddresses Link copied!
booleanTrust CGNAT IP addresses
falsenixflix.sonarr-anime.config.hostConfig.updateAutomatically Link copied!
booleanUpdate automatically
falsenixflix.sonarr-anime.config.hostConfig.updateMechanism Link copied!
one of "builtIn", "script", "external", "docker"Update mechanism
"builtIn"nixflix.sonarr-anime.config.hostConfig.updateScriptPath Link copied!
stringUpdate script path
""nixflix.sonarr-anime.config.hostConfig.urlBase Link copied!
stringURL base path
"""/takeMeThere"nixflix.sonarr-anime.config.hostConfig.username Link copied!
null or string or (submodule)Username for web interface authentication.
!!! warning
Can be a plain string (visible in Nix store) or { _secret = /path/to/file; } for file-based secrets.
Plain-text secrets will be visible in the Nix store. Use `{ _secret = path; }` for sensitive data.
null{ _secret = "/run/secrets/secret-file"; }nixflix.sonarr-anime.config.mediaManagement.autoUnmonitorPreviouslyDownloadedEpisodes Link copied!
booleanAutomatically unmonitor episodes after they have been downloaded.
falsenixflix.sonarr-anime.config.mediaManagement.chmodFolder Link copied!
stringOctal permissions to apply to media folders.
"755"nixflix.sonarr-anime.config.mediaManagement.chownGroup Link copied!
stringGroup name or gid to apply to media folders.
""nixflix.sonarr-anime.config.mediaManagement.copyUsingHardlinks Link copied!
booleanUse hardlinks instead of copying when importing from torrents still being seeded.
truenixflix.sonarr-anime.config.mediaManagement.createEmptySeriesFolders Link copied!
booleanCreate missing series folders during disk scan.
falsenixflix.sonarr-anime.config.mediaManagement.deleteEmptyFolders Link copied!
booleanDelete empty folders during disk scan and when media files are deleted.
truenixflix.sonarr-anime.config.mediaManagement.downloadPropersAndRepacks Link copied!
one of "preferAndUpgrade", "doNotUpgrade", "doNotPrefer"How to handle proper and repack releases.
"preferAndUpgrade"nixflix.sonarr-anime.config.mediaManagement.enableMediaInfo Link copied!
booleanScan video files for media info such as resolution, runtime, and codec.
truenixflix.sonarr-anime.config.mediaManagement.episodeTitleRequired Link copied!
one of "always", "bulkSeasonReleases", "never"Prevent importing for a limited time if the episode title is TBA.
"always"nixflix.sonarr-anime.config.mediaManagement.extraFileExtensions Link copied!
stringComma-separated list of extra file extensions to import.
"srt"nixflix.sonarr-anime.config.mediaManagement.fileDate Link copied!
one of "none", "localAirDate", "utcAirDate"Set the file date on imported media files.
"none"nixflix.sonarr-anime.config.mediaManagement.importExtraFiles Link copied!
booleanImport matching extra files alongside media files.
falsenixflix.sonarr-anime.config.mediaManagement.minimumFreeSpaceWhenImporting Link copied!
signed integerMinimum free space in MB to leave on the disk when importing.
100nixflix.sonarr-anime.config.mediaManagement.recycleBin Link copied!
stringPath to the recycle bin directory.
""nixflix.sonarr-anime.config.mediaManagement.recycleBinCleanupDays Link copied!
signed integerNumber of days before items in the recycle bin are permanently deleted.
7nixflix.sonarr-anime.config.mediaManagement.rescanAfterRefresh Link copied!
one of "always", "afterManual", "never"When to rescan the media folder after refreshing media information.
"always"nixflix.sonarr-anime.config.mediaManagement.scriptImportPath Link copied!
stringPath to the custom import script.
""nixflix.sonarr-anime.config.mediaManagement.setPermissionsLinux Link copied!
booleanSet chmod and chown on imported files and media folders.
falsenixflix.sonarr-anime.config.mediaManagement.skipFreeSpaceCheckWhenImporting Link copied!
booleanSkip the free space check when importing media files.
falsenixflix.sonarr-anime.config.mediaManagement.useScriptImport Link copied!
booleanUse a custom script for importing instead of the built-in import.
falsenixflix.sonarr-anime.config.rootFolders Link copied!
list of (attribute set)List of root folders to create via the API /rootfolder endpoint. Each folder is an attribute set that will be converted to JSON and sent to the API.
For Sonarr/Radarr, a simple path is sufficient: {path = "/path/to/folder";}
For Lidarr, additional fields are required like defaultQualityProfileId, etc.
map (mediaDir: {path = mediaDir;}) nixflix.sonarr-anime.mediaDirsnixflix.sonarr-anime.connectionAddress Link copied!
stringAddress for connecting to this service.
"127.0.0.1"nixflix.sonarr-anime.dataDir Link copied!
absolute pathDirectory containing Seerr data and configuration
"${config.nixflix.stateDir}/${serviceName}"nixflix.sonarr-anime.enable Link copied!
booleanWhether to enable Sonarr-anime.
falsetruenixflix.sonarr-anime.group Link copied!
stringGroup under which the service runs
"sonarr-anime"nixflix.sonarr-anime.mediaDirs Link copied!
list of absolute pathList of media directories to create and manage
[config.nixflix.mediaDir + "/<media-type>"]nixflix.sonarr-anime.openFirewall Link copied!
booleanOpen ports in the firewall for the Radarr web interface.
falsenixflix.sonarr-anime.package Link copied!
packageThe sonarr package to use.
pkgs.sonarrnixflix.sonarr-anime.reverseProxy.expose Link copied!
booleanWhether to expose this service via the reverse proxy.
truenixflix.sonarr-anime.settings Link copied!
open submodule of attribute set of section of an INI file (attrs of INI atom (null, bool, int, float or string))Attribute set of arbitrary config options. Please consult the documentation at the wiki.
!!! warning
This configuration is stored in the world-readable Nix store!
Don't put secrets here!
{
auth = {
required = "Enabled";
method = "Forms";
};
server = {
inherit (config.nixflix.sonarr-anime.config.hostConfig) port urlBase;
};
} // optionalAttrs config.nixflix.postgres.enable {
log.dbEnabled = true;
postgres = {
user = config.nixflix.sonarr-anime.user;
host = "/run/postgresql";
port = config.services.postgresql.settings.port;
mainDb = config.nixflix.sonarr-anime.user;
logDb = "${config.nixflix.sonarr-anime.user}-logs";
};
}
{
update.mechanism = "internal";
server = {
urlbase = "localhost";
port = 8989;
bindaddress = "*";
};
}
nixflix.sonarr-anime.settings.app.instanceName Link copied!
stringName of the instance
"Sonarr-anime"nixflix.sonarr-anime.settings.log.analyticsEnabled Link copied!
booleanSend Anonymous Usage Data
falsenixflix.sonarr-anime.settings.server.port Link copied!
16 bit unsigned integer; between 0 and 65535 (both inclusive)Port Number
nixflix.sonarr-anime.settings.update.automatically Link copied!
booleanAutomatically download and install updates.
falsenixflix.sonarr-anime.settings.update.mechanism Link copied!
null or one of "external", "builtIn", "script"which update mechanism to use
"external"nixflix.sonarr-anime.subdomain Link copied!
stringSubdomain prefix for reverse proxy. Service accessible at <subdomain>.<domain>.
"sonarr-anime"nixflix.sonarr-anime.user Link copied!
stringUser under which the service runs
"sonarr-anime"nixflix.sonarr-anime.vpn.enable Link copied!
booleanWhether to route Sonarr-anime traffic through the VPN.
When false (default), Sonarr-anime bypasses the VPN to prevent Cloudflare and image provider blocks.
When true, Sonarr-anime routes through the VPN (requires nixflix.vpn.enable = true).
TRaSH Guides
recommend leaving this false.
falsenixflix.sonarr.config.apiKey Link copied!
string or (submodule)API key for Sonarr. Can be created by running:
openssl rand -hex 16
!!! warning
Can be a plain string (visible in Nix store) or { _secret = /path/to/file; } for file-based secrets.
Plain-text secrets will be visible in the Nix store. Use `{ _secret = path; }` for sensitive data.
null{ _secret = "/run/secrets/secret-file"; }nixflix.sonarr.config.apiVersion Link copied!
stringCurrent version of the API of the service
"v3"nixflix.sonarr.config.delayProfiles Link copied!
list of (submodule)List of delay profiles to configure via the API /delayprofile endpoint.
Profiles are created/updated in id order. If no profile with id=1 is provided, a default profile will be added automatically.
[
{
enableUsenet = true;
enableTorrent = true;
preferredProtocol = "usenet";
usenetDelay = 0;
torrentDelay = 0;
bypassIfHighestQuality = true;
bypassIfAboveCustomFormatScore = false;
minimumCustomFormatScore = 0;
order = 2147483647;
tags = [];
id = 1;
};
]
nixflix.sonarr.config.delayProfiles.*.bypassIfAboveCustomFormatScore Link copied!
booleanBypass delay if custom format score is above minimum
falsenixflix.sonarr.config.delayProfiles.*.bypassIfHighestQuality Link copied!
booleanBypass delay if release is the highest quality available
truenixflix.sonarr.config.delayProfiles.*.enableTorrent Link copied!
booleanEnable Torrent protocol for this profile
truenixflix.sonarr.config.delayProfiles.*.enableUsenet Link copied!
booleanEnable Usenet protocol for this profile
truenixflix.sonarr.config.delayProfiles.*.id Link copied!
signed integerUnique identifier for the delay profile
nixflix.sonarr.config.delayProfiles.*.minimumCustomFormatScore Link copied!
signed integerMinimum custom format score to bypass delay
0nixflix.sonarr.config.delayProfiles.*.order Link copied!
signed integerOrder/priority of this delay profile (lower values = higher priority)
50nixflix.sonarr.config.delayProfiles.*.preferredProtocol Link copied!
one of "usenet", "torrent"Preferred download protocol when both are available
"usenet"nixflix.sonarr.config.delayProfiles.*.tags Link copied!
list of signed integerList of tag IDs this delay profile applies to (empty = applies to all)
[ ]nixflix.sonarr.config.delayProfiles.*.torrentDelay Link copied!
signed integerDelay in minutes before grabbing a Torrent release
0nixflix.sonarr.config.delayProfiles.*.usenetDelay Link copied!
signed integerDelay in minutes before grabbing a Usenet release
0nixflix.sonarr.config.hostConfig Link copied!
submoduleHost configuration options that will be set via the API /config/host endpoint
{ }nixflix.sonarr.config.hostConfig.analyticsEnabled Link copied!
booleanEnable analytics
falsenixflix.sonarr.config.hostConfig.applicationUrl Link copied!
stringApplication URL
""nixflix.sonarr.config.hostConfig.authenticationMethod Link copied!
one of "none", "basic", "forms", "external"Authentication method
"forms"nixflix.sonarr.config.hostConfig.authenticationRequired Link copied!
one of "enabled", "disabled", "disabledForLocalAddresses"Authentication requirement level
"enabled"nixflix.sonarr.config.hostConfig.backupFolder Link copied!
stringBackup folder name
"Backups"nixflix.sonarr.config.hostConfig.backupInterval Link copied!
signed integerBackup interval in days
7nixflix.sonarr.config.hostConfig.backupRetention Link copied!
signed integerBackup retention in days
28nixflix.sonarr.config.hostConfig.bindAddress Link copied!
stringAddress to bind to
"0.0.0.0"nixflix.sonarr.config.hostConfig.certificateValidation Link copied!
one of "enabled", "disabled", "disabledForLocalAddresses"Certificate validation
"enabled"nixflix.sonarr.config.hostConfig.consoleLogLevel Link copied!
stringConsole log level
""nixflix.sonarr.config.hostConfig.instanceName Link copied!
stringInstance name
"Sonarr"nixflix.sonarr.config.hostConfig.launchBrowser Link copied!
booleanLaunch browser on start (not applicable for NixOS services)
falsenixflix.sonarr.config.hostConfig.logLevel Link copied!
one of "info", "debug", "trace"Log level
"info"nixflix.sonarr.config.hostConfig.logSizeLimit Link copied!
signed integerLog size limit in MB
1nixflix.sonarr.config.hostConfig.password Link copied!
null or string or (submodule)Password for web interface authentication.
!!! warning
Can be a plain string (visible in Nix store) or { _secret = /path/to/file; } for file-based secrets.
Plain-text secrets will be visible in the Nix store. Use `{ _secret = path; }` for sensitive data.
null{ _secret = "/run/secrets/secret-file"; }nixflix.sonarr.config.hostConfig.port Link copied!
16 bit unsigned integer; between 0 and 65535 (both inclusive)Port the service listens on
nixflix.sonarr.config.hostConfig.proxyBypassFilter Link copied!
stringProxy bypass filter
""nixflix.sonarr.config.hostConfig.proxyBypassLocalAddresses Link copied!
booleanProxy bypass local addresses
truenixflix.sonarr.config.hostConfig.proxyEnabled Link copied!
booleanEnable proxy
falsenixflix.sonarr.config.hostConfig.proxyPassword Link copied!
string or (submodule)Proxy password
!!! warning
Can be a plain string (visible in Nix store) or { _secret = /path/to/file; } for file-based secrets.
Plain-text secrets will be visible in the Nix store. Use `{ _secret = path; }` for sensitive data.
null{ _secret = "/run/secrets/secret-file"; }nixflix.sonarr.config.hostConfig.proxyPort Link copied!
16 bit unsigned integer; between 0 and 65535 (both inclusive)Proxy port
8080nixflix.sonarr.config.hostConfig.proxyType Link copied!
one of "http", "socks4", "socks5"Proxy type
"http"nixflix.sonarr.config.hostConfig.proxyUsername Link copied!
string or (submodule)Proxy username
!!! warning
Can be a plain string (visible in Nix store) or { _secret = /path/to/file; } for file-based secrets.
Plain-text secrets will be visible in the Nix store. Use `{ _secret = path; }` for sensitive data.
null{ _secret = "/run/secrets/secret-file"; }nixflix.sonarr.config.hostConfig.sslCertPassword Link copied!
string or (submodule)SSL certificate password
!!! warning
Can be a plain string (visible in Nix store) or { _secret = /path/to/file; } for file-based secrets.
Plain-text secrets will be visible in the Nix store. Use `{ _secret = path; }` for sensitive data.
null{ _secret = "/run/secrets/secret-file"; }nixflix.sonarr.config.hostConfig.sslCertPath Link copied!
stringSSL certificate path
""nixflix.sonarr.config.hostConfig.sslPort Link copied!
16 bit unsigned integer; between 0 and 65535 (both inclusive)SSL port
9898nixflix.sonarr.config.hostConfig.trustCgnatIpAddresses Link copied!
booleanTrust CGNAT IP addresses
falsenixflix.sonarr.config.hostConfig.updateAutomatically Link copied!
booleanUpdate automatically
falsenixflix.sonarr.config.hostConfig.updateMechanism Link copied!
one of "builtIn", "script", "external", "docker"Update mechanism
"builtIn"nixflix.sonarr.config.hostConfig.updateScriptPath Link copied!
stringUpdate script path
""nixflix.sonarr.config.hostConfig.urlBase Link copied!
stringURL base path
"""/takeMeThere"nixflix.sonarr.config.hostConfig.username Link copied!
null or string or (submodule)Username for web interface authentication.
!!! warning
Can be a plain string (visible in Nix store) or { _secret = /path/to/file; } for file-based secrets.
Plain-text secrets will be visible in the Nix store. Use `{ _secret = path; }` for sensitive data.
null{ _secret = "/run/secrets/secret-file"; }nixflix.sonarr.config.mediaManagement.autoUnmonitorPreviouslyDownloadedEpisodes Link copied!
booleanAutomatically unmonitor episodes after they have been downloaded.
falsenixflix.sonarr.config.mediaManagement.chmodFolder Link copied!
stringOctal permissions to apply to media folders.
"755"nixflix.sonarr.config.mediaManagement.chownGroup Link copied!
stringGroup name or gid to apply to media folders.
""nixflix.sonarr.config.mediaManagement.copyUsingHardlinks Link copied!
booleanUse hardlinks instead of copying when importing from torrents still being seeded.
truenixflix.sonarr.config.mediaManagement.createEmptySeriesFolders Link copied!
booleanCreate missing series folders during disk scan.
falsenixflix.sonarr.config.mediaManagement.deleteEmptyFolders Link copied!
booleanDelete empty folders during disk scan and when media files are deleted.
truenixflix.sonarr.config.mediaManagement.downloadPropersAndRepacks Link copied!
one of "preferAndUpgrade", "doNotUpgrade", "doNotPrefer"How to handle proper and repack releases.
"preferAndUpgrade"nixflix.sonarr.config.mediaManagement.enableMediaInfo Link copied!
booleanScan video files for media info such as resolution, runtime, and codec.
truenixflix.sonarr.config.mediaManagement.episodeTitleRequired Link copied!
one of "always", "bulkSeasonReleases", "never"Prevent importing for a limited time if the episode title is TBA.
"always"nixflix.sonarr.config.mediaManagement.extraFileExtensions Link copied!
stringComma-separated list of extra file extensions to import.
"srt"nixflix.sonarr.config.mediaManagement.fileDate Link copied!
one of "none", "localAirDate", "utcAirDate"Set the file date on imported media files.
"none"nixflix.sonarr.config.mediaManagement.importExtraFiles Link copied!
booleanImport matching extra files alongside media files.
falsenixflix.sonarr.config.mediaManagement.minimumFreeSpaceWhenImporting Link copied!
signed integerMinimum free space in MB to leave on the disk when importing.
100nixflix.sonarr.config.mediaManagement.recycleBin Link copied!
stringPath to the recycle bin directory.
""nixflix.sonarr.config.mediaManagement.recycleBinCleanupDays Link copied!
signed integerNumber of days before items in the recycle bin are permanently deleted.
7nixflix.sonarr.config.mediaManagement.rescanAfterRefresh Link copied!
one of "always", "afterManual", "never"When to rescan the media folder after refreshing media information.
"always"nixflix.sonarr.config.mediaManagement.scriptImportPath Link copied!
stringPath to the custom import script.
""nixflix.sonarr.config.mediaManagement.setPermissionsLinux Link copied!
booleanSet chmod and chown on imported files and media folders.
falsenixflix.sonarr.config.mediaManagement.skipFreeSpaceCheckWhenImporting Link copied!
booleanSkip the free space check when importing media files.
falsenixflix.sonarr.config.mediaManagement.useScriptImport Link copied!
booleanUse a custom script for importing instead of the built-in import.
falsenixflix.sonarr.config.rootFolders Link copied!
list of (attribute set)List of root folders to create via the API /rootfolder endpoint. Each folder is an attribute set that will be converted to JSON and sent to the API.
For Sonarr/Radarr, a simple path is sufficient: {path = "/path/to/folder";}
For Lidarr, additional fields are required like defaultQualityProfileId, etc.
map (mediaDir: {path = mediaDir;}) nixflix.sonarr.mediaDirsnixflix.sonarr.connectionAddress Link copied!
stringAddress for connecting to this service.
"127.0.0.1"nixflix.sonarr.dataDir Link copied!
absolute pathDirectory containing Seerr data and configuration
"${config.nixflix.stateDir}/${serviceName}"nixflix.sonarr.enable Link copied!
booleanWhether to enable Sonarr.
falsetruenixflix.sonarr.mediaDirs Link copied!
list of absolute pathList of media directories to create and manage
[config.nixflix.mediaDir + "/<media-type>"]nixflix.sonarr.openFirewall Link copied!
booleanOpen ports in the firewall for the Radarr web interface.
falsenixflix.sonarr.reverseProxy.expose Link copied!
booleanWhether to expose this service via the reverse proxy.
truenixflix.sonarr.settings Link copied!
open submodule of attribute set of section of an INI file (attrs of INI atom (null, bool, int, float or string))Attribute set of arbitrary config options. Please consult the documentation at the wiki.
!!! warning
This configuration is stored in the world-readable Nix store!
Don't put secrets here!
{
auth = {
required = "Enabled";
method = "Forms";
};
server = {
inherit (config.nixflix.sonarr.config.hostConfig) port urlBase;
};
} // optionalAttrs config.nixflix.postgres.enable {
log.dbEnabled = true;
postgres = {
user = config.nixflix.sonarr.user;
host = "/run/postgresql";
port = config.services.postgresql.settings.port;
mainDb = config.nixflix.sonarr.user;
logDb = "${config.nixflix.sonarr.user}-logs";
};
}
{
update.mechanism = "internal";
server = {
urlbase = "localhost";
port = 8989;
bindaddress = "*";
};
}
nixflix.sonarr.settings.app.instanceName Link copied!
stringName of the instance
"Sonarr"nixflix.sonarr.settings.log.analyticsEnabled Link copied!
booleanSend Anonymous Usage Data
falsenixflix.sonarr.settings.server.port Link copied!
16 bit unsigned integer; between 0 and 65535 (both inclusive)Port Number
nixflix.sonarr.settings.update.automatically Link copied!
booleanAutomatically download and install updates.
falsenixflix.sonarr.settings.update.mechanism Link copied!
null or one of "external", "builtIn", "script"which update mechanism to use
"external"nixflix.sonarr.subdomain Link copied!
stringSubdomain prefix for reverse proxy. Service accessible at <subdomain>.<domain>.
"sonarr"nixflix.sonarr.vpn.enable Link copied!
booleanWhether to route Sonarr traffic through the VPN.
When false (default), Sonarr bypasses the VPN to prevent Cloudflare and image provider blocks.
When true, Sonarr routes through the VPN (requires nixflix.vpn.enable = true).
TRaSH Guides
recommend leaving this false.
falsenixflix.stateDir Link copied!
absolute pathThe location of the state directory for the services.
!!! warning
All parent directories must have execute permissions for everyone.
!!! warning
Setting this to any path, where the subpath is not owned by root, will fail! For example:
```nix
mediaDir = /home/user/data
```
Is not supported, because `/home/user` is owned by `user`.
"/var/lib""/data/.state"nixflix.theme.enable Link copied!
booleanEnables themeing via theme.park.
Requires a reverse proxy (nixflix.nginx.enable or nixflix.caddy.enable) for all services except Jellyfin.
falsetruenixflix.theme.name Link copied!
stringThe name of any official theme or community theme supported by theme.park.
"overseerr"nixflix.torrentClients.qbittorrent Link copied!
open submodule of attribute set of anythingThis option has no description.
{ }nixflix.torrentClients.qbittorrent.categories Link copied!
attribute set of stringMap of category names to their save paths (relative or absolute).
{
radarr = lib.optionalString (config.nixflix.radarr.enable or false) "/data/downloads/torrent/radarr";
sonarr = lib.optionalString (config.nixflix.radarr.enable or false) "/data/downloads/torrent/sonarr";
sonarr-anime = lib.optionalString (config.nixflix.radarr.enable or false) "/data/downloads/torrent/sonarr-anime";
lidarr = lib.optionalString (config.nixflix.radarr.enable or false) "/data/downloads/torrent/lidarr";
prowlarr = lib.optionalString (config.nixflix.radarr.enable or false) "/data/downloads/torrent/prowlarr";
}
{
prowlarr = "games";
sonarr = "/mnt/share/movies";
}nixflix.torrentClients.qbittorrent.connectionAddress Link copied!
stringAddress for connecting to this service.
"127.0.0.1"nixflix.torrentClients.qbittorrent.downloadsDir Link copied!
stringBase directory for qBittorrent downloads
"$${config.nixflix.downloadsDir}/torrent"nixflix.torrentClients.qbittorrent.enable Link copied!
booleanWhether to enable qBittorrent usenet downloader.
Uses all of the same options as nixpkgs qBittorent.
falsenixflix.torrentClients.qbittorrent.group Link copied!
stringGroup under which qbittorrent runs.
"media"nixflix.torrentClients.qbittorrent.password Link copied!
null or string or (submodule)The password for qbittorrent. This is for the other services to integrate with qBittorrent. Not for setting the password in qBittorrent
In order to set the password for qBittorrent itself, you will need to configure
nixflix.torrentClients.qbittorrent.serverConfig.Preferences.WebUI.Password_PBKDF2. Look at the
serverConfig documentation
to see how to configure it.
!!! warning
Can be a plain string (visible in Nix store) or { _secret = /path/to/file; } for file-based secrets.
Plain-text secrets will be visible in the Nix store. Use `{ _secret = path; }` for sensitive data.
null{ _secret = "/run/secrets/secret-file"; }nixflix.torrentClients.qbittorrent.reverseProxy.expose Link copied!
booleanWhether to expose qBittorrent via the reverse proxy.
truenixflix.torrentClients.qbittorrent.serverConfig.BitTorrent.Session.DefaultSavePath Link copied!
stringDefault save path for downloads without a category.
"${config.nixflix.torrentClients.qbittorrent.downloadsDir}/default"nixflix.torrentClients.qbittorrent.serverConfig.BitTorrent.Session.DisableAutoTMMByDefault Link copied!
booleanDefault Torrent Management Mode. Set to false to enable category save paths.
true = Manual, false = Automatic
falsenixflix.torrentClients.qbittorrent.serverConfig.Preferences.WebUI.Address Link copied!
stringBind address for the WebUI
"*"nixflix.torrentClients.qbittorrent.subdomain Link copied!
stringSubdomain prefix for reverse proxy.
"qbittorrent"nixflix.torrentClients.qbittorrent.user Link copied!
stringUser account under which qbittorrent runs.
"qbittorrent"nixflix.torrentClients.qbittorrent.vpn.enable Link copied!
booleanWhether to route qBittorrent traffic through the VPN.
When false, qBittorrent bypasses the VPN.
When true, qBittorrent is confined to the WireGuard network namespace (requires nixflix.vpn.enable = true).
config.nixflix.vpn.enablenixflix.torrentClients.qbittorrent.webuiPort Link copied!
null or 16 bit unsigned integer; between 0 and 65535 (both inclusive)the port passed to qbittorrent via --webui-port
8282nixflix.usenetClients.sabnzbd.connectionAddress Link copied!
stringAddress for connecting to this service.
"127.0.0.1"nixflix.usenetClients.sabnzbd.downloadsDir Link copied!
stringBase directory for SABnzbd downloads
"$${config.nixflix.downloadsDir}/usenet"nixflix.usenetClients.sabnzbd.enable Link copied!
booleanWhether to enable SABnzbd usenet downloader
falsenixflix.usenetClients.sabnzbd.group Link copied!
stringGroup under which the service runs
config.nixflix.globals.libraryOwner.groupnixflix.usenetClients.sabnzbd.openFirewall Link copied!
booleanOpen ports in the firewall for the SABnzbd web interface.
falsenixflix.usenetClients.sabnzbd.package Link copied!
packageThe sabnzbd package to use.
pkgs.sabnzbdnixflix.usenetClients.sabnzbd.reverseProxy.expose Link copied!
booleanWhether to expose SABnzbd via the reverse proxy.
truenixflix.usenetClients.sabnzbd.settings Link copied!
open submodule of anythingSABnzbd settings
{ }nixflix.usenetClients.sabnzbd.settings.categories Link copied!
list of (open submodule of anything)Download categories. By default, categories are automatically created based on enabled services, using the service name as the category name (radarr, sonarr, sonarr-anime, lidarr, prowlarr).
A catch-all "*" category is always included.
lib.optional (config.nixflix.radarr.enable or false) {
name = "radarr"; dir = "radarr"; priority = 0; pp = 3; script = "None";
}
++ lib.optional (config.nixflix.sonarr.enable or false) {
name = "sonarr"; dir = "sonarr"; priority = 0; pp = 3; script = "None";
}
++ lib.optional (config.nixflix.sonarr-anime.enable or false) {
name = "sonarr-anime"; dir = "sonarr-anime"; priority = 0; pp = 3; script = "None";
}
++ lib.optional (config.nixflix.lidarr.enable or false) {
name = "lidarr"; dir = "lidarr"; priority = 0; pp = 3; script = "None";
}
++ lib.optional (config.nixflix.prowlarr.enable or false) {
name = "prowlarr"; dir = "prowlarr"; priority = 0; pp = 3; script = "None";
}
++ [
{ name = "*"; priority = 0; pp = 3; script = "None"; }
]
[
{
name = "radarr";
dir = "radarr";
priority = 0;
pp = 3;
script = "None";
}
{
name = "sonarr";
dir = "sonarr";
priority = 0;
pp = 3;
script = "None";
}
]
nixflix.usenetClients.sabnzbd.settings.categories.*.dir Link copied!
stringDirectory name for this category
""nixflix.usenetClients.sabnzbd.settings.categories.*.pp Link copied!
(one of "", 0, 1, 2, 3) or (one of "Default", "Download", "Repair", "Repair+Unpack", "Repair+Unpack+Delete") convertible to itPost-processing level
3nixflix.usenetClients.sabnzbd.settings.categories.*.priority Link copied!
signed integerCategory priority
0nixflix.usenetClients.sabnzbd.settings.categories.*.script Link copied!
stringPost-processing script
"None"nixflix.usenetClients.sabnzbd.settings.misc Link copied!
open submodule of anythingSABnzbd [misc] section settings
{ }nixflix.usenetClients.sabnzbd.settings.misc.action_on_unwanted_extensions Link copied!
signed integerAction on unwanted extensions (0=None, 1=Abort, 2=Delete)
1nixflix.usenetClients.sabnzbd.settings.misc.admin_dir Link copied!
stringAdmin directory
config.nixflix.usenetClients.sabnzbd.downloadsDir + "/admin"nixflix.usenetClients.sabnzbd.settings.misc.allow_incomplete_nzb Link copied!
booleanSometimes you get an incomplete NZB file (partial content, incorrect syntax etc.) You can enable this option to allow SABnzbd to salvage as much as possible from the NZB. The job will enter the queue in paused mode.
falsenixflix.usenetClients.sabnzbd.settings.misc.anon_redirect Link copied!
booleanAnonymous redirect
falsenixflix.usenetClients.sabnzbd.settings.misc.api_key Link copied!
string or (submodule)API key for SABnzbd. Can be created with the following:
openssl rand -hex 16
!!! warning
Can be a plain string (visible in Nix store) or { _secret = /path/to/file; } for file-based secrets.
Plain-text secrets will be visible in the Nix store. Use `{ _secret = path; }` for sensitive data.
null{ _secret = "/run/secrets/secret-file"; }nixflix.usenetClients.sabnzbd.settings.misc.article_tries Link copied!
signed integerNumber of attempts per article
3nixflix.usenetClients.sabnzbd.settings.misc.auto_sort Link copied!
stringAutomatically sort queue
""nixflix.usenetClients.sabnzbd.settings.misc.bandwidth_max Link copied!
stringMaximum bandwidth in bytes/sec (supports prefixes). Use in conjunction with bandwidth_perc.
"""50MB/s"nixflix.usenetClients.sabnzbd.settings.misc.bandwidth_perc Link copied!
signed integerPercentage of bandwidth_max that SABnzbd is allowed to use. 0 means no limit.
050nixflix.usenetClients.sabnzbd.settings.misc.cache_limit Link copied!
stringSize of the RAM cache, in bytes (prefixes supported). SABnzbd recommends 25% of available RAM.
"512M""500M"nixflix.usenetClients.sabnzbd.settings.misc.check_new_rel Link copied!
booleanCheck for new releases
truenixflix.usenetClients.sabnzbd.settings.misc.complete_dir Link copied!
stringComplete downloads directory
config.nixflix.usenetClients.sabnzbd.downloadsDir + "/complete"nixflix.usenetClients.sabnzbd.settings.misc.connection_limit Link copied!
signed integerMaximum number of connections
100nixflix.usenetClients.sabnzbd.settings.misc.deobfuscate_final_filenames Link copied!
booleanDeobfuscate final filenames
truenixflix.usenetClients.sabnzbd.settings.misc.direct_unpack Link copied!
booleanUnpack during download
truenixflix.usenetClients.sabnzbd.settings.misc.dirscan_dir Link copied!
stringDirectory to watch for NZB files
config.nixflix.usenetClients.sabnzbd.downloadsDir + "/watch"nixflix.usenetClients.sabnzbd.settings.misc.dirscan_speed Link copied!
signed integerDirectory scan speed in seconds
5nixflix.usenetClients.sabnzbd.settings.misc.disable_api_key Link copied!
booleanDisable API key requirement
falsenixflix.usenetClients.sabnzbd.settings.misc.download_dir Link copied!
stringIncomplete downloads directory
config.nixflix.usenetClients.sabnzbd.downloadsDir + "/incomplete"nixflix.usenetClients.sabnzbd.settings.misc.email_account Link copied!
stringUsername for SMTP authentication.
""nixflix.usenetClients.sabnzbd.settings.misc.email_endjob Link copied!
(one of 1, 0, 2) or (one of "always", "never", "on error") convertible to itWhether to send emails on job completion.
0nixflix.usenetClients.sabnzbd.settings.misc.email_from Link copied!
string'From:' field for emails (needs to be an address).
""nixflix.usenetClients.sabnzbd.settings.misc.email_full Link copied!
booleanWhether to send alerts for full disks.
falsenixflix.usenetClients.sabnzbd.settings.misc.email_pwd Link copied!
string or (submodule)Password for SMTP authentication.
!!! warning
Can be a plain string (visible in Nix store) or { _secret = /path/to/file; } for file-based secrets.
Plain-text secrets will be visible in the Nix store. Use `{ _secret = path; }` for sensitive data.
null{ _secret = "/run/secrets/secret-file"; }nixflix.usenetClients.sabnzbd.settings.misc.email_rss Link copied!
booleanWhether to send alerts for jobs added by RSS feeds.
falsenixflix.usenetClients.sabnzbd.settings.misc.email_server Link copied!
stringSMTP server for email alerts (server:port format).
""nixflix.usenetClients.sabnzbd.settings.misc.email_to Link copied!
stringReceiving address for email alerts.
""nixflix.usenetClients.sabnzbd.settings.misc.enable_all_par Link copied!
booleanDownload all par2 files
falsenixflix.usenetClients.sabnzbd.settings.misc.enable_debug Link copied!
booleanEnable debug logging
falsenixflix.usenetClients.sabnzbd.settings.misc.enable_https Link copied!
booleanWhether to enable HTTPS for the web UI.
falsenixflix.usenetClients.sabnzbd.settings.misc.enable_https_verification Link copied!
booleanEnable HTTPS certificate verification
truenixflix.usenetClients.sabnzbd.settings.misc.enable_log_rotate Link copied!
booleanEnable log rotation
truenixflix.usenetClients.sabnzbd.settings.misc.enable_par_cleanup Link copied!
booleanNormally SABnzbd will clean up par2 files after verify/repair. You can disable this by using 0. Disabling this will also force all par2 files to be downloaded.
truenixflix.usenetClients.sabnzbd.settings.misc.enable_recursive Link copied!
booleanEnable recursive unpacking
truenixflix.usenetClients.sabnzbd.settings.misc.fail_hopeless_jobs Link copied!
booleanAbort jobs that cannot be completed
truenixflix.usenetClients.sabnzbd.settings.misc.fail_on_crc Link copied!
booleanFail on CRC errors
truenixflix.usenetClients.sabnzbd.settings.misc.flat_unpack Link copied!
booleanIgnore any folders inside archives
truenixflix.usenetClients.sabnzbd.settings.misc.host Link copied!
stringAddress for the Web UI to listen on for incoming connections.
if config.nixflix.vpn.enable && config.nixflix.usenetClients.sabnzbd.vpn.enable
then config.vpnNamespaces.wg.namespaceAddress
else if config.nixflix.reverseProxy.enable then "127.0.0.1"
else "0.0.0.0"
"0.0.0.0"nixflix.usenetClients.sabnzbd.settings.misc.host_whitelist Link copied!
stringHostname verification whitelist. SABnzbd refuses connections from hostnames not in this list. Automatically includes the service hostname when a reverse proxy is enabled.
if config.nixflix.reverseProxy.enable then "${cfg.subdomain}.${config.nixflix.reverseProxy.domain}" else ""nixflix.usenetClients.sabnzbd.settings.misc.html_login Link copied!
booleanHTML based login form, uncheck for basic authentication. Both offer similar security but password managers might not be able to fill basic authentication automatically.
truenixflix.usenetClients.sabnzbd.settings.misc.https_cert Link copied!
stringPath to the TLS certificate for the web UI. If not set and HTTPS is enabled, a self-signed certificate is generated.
""config.security.acme.certs."example.com".directory + "/fullchain.pem"nixflix.usenetClients.sabnzbd.settings.misc.https_key Link copied!
stringPath to the TLS key for the web UI. If not set and HTTPS is enabled, a self-signed key is generated.
""config.security.acme.certs."example.com".directory + "/key.pem"nixflix.usenetClients.sabnzbd.settings.misc.https_port Link copied!
16 bit unsigned integer; between 0 and 65535 (both inclusive)HTTPS port for the Web UI (0 to disable HTTPS).
0nixflix.usenetClients.sabnzbd.settings.misc.ignore_samples Link copied!
booleanIgnore sample files
falsenixflix.usenetClients.sabnzbd.settings.misc.ignore_unrar_errors Link copied!
booleanIgnore unrar errors
falsenixflix.usenetClients.sabnzbd.settings.misc.inet_exposure Link copied!
(one of 1, 3, 2, 4, 5, 0) or (one of "api (add nzbs)", "api (full)", "api (no config)", "api+web (auth needed)", "api+web (locally no auth)", "none") convertible to itControls access restrictions from non-local IP addresses. Defaults to
api+web (auth needed) when a reverse proxy is enabled, because nginx
forwards the real client IP via X-Forwarded-For and SABnzbd only
considers RFC 1918 ranges local — clients on Tailscale (100.64.0.0/10)
or similar networks would otherwise be refused.
if config.nixflix.reverseProxy.enable then 4 else 0nixflix.usenetClients.sabnzbd.settings.misc.keep_awake Link copied!
booleanDisable to stop SABnzbd's attempts to keep the system awake while the queue isn't empty.
falsenixflix.usenetClients.sabnzbd.settings.misc.language Link copied!
stringInterface language.
"en"nixflix.usenetClients.sabnzbd.settings.misc.log_dir Link copied!
stringLog directory
config.nixflix.usenetClients.sabnzbd.downloadsDir + "/logs"nixflix.usenetClients.sabnzbd.settings.misc.log_level Link copied!
signed integerLog level (0=None, 1=Info, 2=Debug)
1nixflix.usenetClients.sabnzbd.settings.misc.max_log_size Link copied!
stringMaximum log file size
"10M"nixflix.usenetClients.sabnzbd.settings.misc.max_queue_size Link copied!
signed integerMaximum queue size
3000nixflix.usenetClients.sabnzbd.settings.misc.no_smart_dupes Link copied!
signed integerSmart duplicate detection
4nixflix.usenetClients.sabnzbd.settings.misc.nomedia Link copied!
booleanCreate .nomedia files
truenixflix.usenetClients.sabnzbd.settings.misc.nzb_backup_dir Link copied!
stringNZB backup directory
config.nixflix.usenetClients.sabnzbd.downloadsDir + "/nzb-backup"nixflix.usenetClients.sabnzbd.settings.misc.nzb_key Link copied!
string or (submodule)NZB key for adding downloads via URL.
!!! warning
Can be a plain string (visible in Nix store) or { _secret = /path/to/file; } for file-based secrets.
Plain-text secrets will be visible in the Nix store. Use `{ _secret = path; }` for sensitive data.
null{ _secret = "/run/secrets/secret-file"; }nixflix.usenetClients.sabnzbd.settings.misc.pause_on_failure Link copied!
booleanPause queue on download failure
falsenixflix.usenetClients.sabnzbd.settings.misc.pause_on_post_processing Link copied!
booleanPause download during post-processing
falsenixflix.usenetClients.sabnzbd.settings.misc.pause_on_pwrar Link copied!
signed integerAction when encrypted RAR is downloaded
1nixflix.usenetClients.sabnzbd.settings.misc.permissions Link copied!
stringFile permissions for downloaded files
"775"nixflix.usenetClients.sabnzbd.settings.misc.port Link copied!
16 bit unsigned integer; between 0 and 65535 (both inclusive)Port for the Web UI to listen on for incoming connections.
808012345nixflix.usenetClients.sabnzbd.settings.misc.pre_check Link copied!
booleanCheck before download
truenixflix.usenetClients.sabnzbd.settings.misc.propagation_delay Link copied!
signed integerPosts will be pause until they are at least this age. Setting job priority to Force will skip the delay.
0nixflix.usenetClients.sabnzbd.settings.misc.reorder_files Link copied!
booleanReorder files for optimal unpacking
truenixflix.usenetClients.sabnzbd.settings.misc.require_modern_tls Link copied!
booleanRequire modern TLS
truenixflix.usenetClients.sabnzbd.settings.misc.retry_on_failure Link copied!
booleanRetry failed downloads
truenixflix.usenetClients.sabnzbd.settings.misc.safe_postproc Link copied!
booleanPost process only verified jobs
truenixflix.usenetClients.sabnzbd.settings.misc.sfv_check Link copied!
booleanEnable SFV-based checks
truenixflix.usenetClients.sabnzbd.settings.misc.top_only Link copied!
booleanOnly get articles from top of queue
truenixflix.usenetClients.sabnzbd.settings.misc.unwanted_extensions Link copied!
stringUnwanted extensions
""nixflix.usenetClients.sabnzbd.settings.misc.unwanted_extensions_mode Link copied!
signed integerUnwanted extension mode (0=Blacklist, 1=Whitelist
0nixflix.usenetClients.sabnzbd.settings.misc.url_base Link copied!
stringWhen using a reverse proxy (or just if you feel like it), you can change the base-URL of SABnzbd that is used during redirects. Trailing slash is not allowed. Leading slash is required unless the base URL is an empty string. SABnzbd will forcefully restart after changing this setting, you will need to reload the page after the restart completes.
"""/sabnzbd"nixflix.usenetClients.sabnzbd.settings.misc.warn_dupl_jobs Link copied!
booleanWarn about duplicate jobs
truenixflix.usenetClients.sabnzbd.settings.misc.warn_empty_nzb Link copied!
booleanWarn about empty NZB files
truenixflix.usenetClients.sabnzbd.settings.misc.web_color Link copied!
stringWeb interface color scheme.
"Gold"nixflix.usenetClients.sabnzbd.settings.misc.web_dir Link copied!
stringWeb interface theme.
"Glitter"nixflix.usenetClients.sabnzbd.settings.servers Link copied!
list of (open submodule of anything)List of usenet servers
[ ]nixflix.usenetClients.sabnzbd.settings.servers.*.backup Link copied!
booleanUse this server as a backup/fill server.
falsenixflix.usenetClients.sabnzbd.settings.servers.*.connections Link copied!
signed integerNumber of parallel connections permitted by the server.
1050nixflix.usenetClients.sabnzbd.settings.servers.*.displayname Link copied!
stringHuman-friendly description of the server.
"""Example News Provider"nixflix.usenetClients.sabnzbd.settings.servers.*.enable Link copied!
booleanEnable this server by default.
truenixflix.usenetClients.sabnzbd.settings.servers.*.expire_date Link copied!
stringIf notifications are enabled and an expiry date is set, warn 5 days before expiry.
""nixflix.usenetClients.sabnzbd.settings.servers.*.host Link copied!
stringHostname of the server.
"news.example.com"nixflix.usenetClients.sabnzbd.settings.servers.*.name Link copied!
stringThe name of the server.
"Example News Provider"nixflix.usenetClients.sabnzbd.settings.servers.*.optional Link copied!
booleanIn case of connection failures, temporarily disable this server.
falsenixflix.usenetClients.sabnzbd.settings.servers.*.password Link copied!
string or (submodule)Password for server authentication.
!!! warning
Can be a plain string (visible in Nix store) or { _secret = /path/to/file; } for file-based secrets.
Plain-text secrets will be visible in the Nix store. Use `{ _secret = path; }` for sensitive data.
null{ _secret = "/run/secrets/secret-file"; }nixflix.usenetClients.sabnzbd.settings.servers.*.port Link copied!
16 bit unsigned integer; between 0 and 65535 (both inclusive)Port of the server.
563443nixflix.usenetClients.sabnzbd.settings.servers.*.priority Link copied!
signed integerPriority of this server. Servers are queried in order of priority, from highest (0) to lowest (100).
0nixflix.usenetClients.sabnzbd.settings.servers.*.required Link copied!
booleanIn case of connection failures, wait for the server to come back online instead of skipping it.
falsenixflix.usenetClients.sabnzbd.settings.servers.*.retention Link copied!
signed integerServer retention in days (0 = unknown).
0nixflix.usenetClients.sabnzbd.settings.servers.*.ssl Link copied!
booleanWhether the server supports TLS.
truenixflix.usenetClients.sabnzbd.settings.servers.*.ssl_verify Link copied!
(one of 2, 0, 3) or (one of "allow injection", "none", "strict") convertible to itCertificate verification level.
2nixflix.usenetClients.sabnzbd.settings.servers.*.timeout Link copied!
signed integerTime, in seconds, to wait for a response before attempting error recovery.
60nixflix.usenetClients.sabnzbd.settings.servers.*.username Link copied!
string or (submodule)Username for server authentication.
!!! warning
Can be a plain string (visible in Nix store) or { _secret = /path/to/file; } for file-based secrets.
Plain-text secrets will be visible in the Nix store. Use `{ _secret = path; }` for sensitive data.
null{ _secret = "/run/secrets/secret-file"; }nixflix.usenetClients.sabnzbd.subdomain Link copied!
stringSubdomain prefix for reverse proxy.
"sabnzbd"nixflix.usenetClients.sabnzbd.user Link copied!
stringUser under which the service runs
"sabnzbd"nixflix.usenetClients.sabnzbd.vpn.enable Link copied!
booleanWhether to route SABnzbd traffic through the VPN.
When false, SABnzbd bypasses the VPN.
When true, SABnzbd is confined to the WireGuard network namespace (requires nixflix.vpn.enable = true).
config.nixflix.vpn.enablenixflix.vpn.accessibleFrom Link copied!
list of stringList of subnets or addresses in the default network namespace that should be able to reach services confined in the VPN namespace.
Required to access VPN-confined services (e.g. Radarr, Sonarr) from
your local network. Example: ["192.168.1.0/24"].
[
"192.168.1.0/24"
][
"192.168.1.0/24"
]nixflix.vpn.enable Link copied!
booleanWhether to enable WireGuard VPN.
falsetruenixflix.vpn.openVPNPorts Link copied!
list of (submodule)Ports to open through the VPN interface, e.g. for port forwarding provided by the VPN provider (AirVPN, IVPN, etc.).
[ ][
{
port = 60729;
protocol = "both";
}
]nixflix.vpn.openVPNPorts.*.port Link copied!
16 bit unsigned integer; between 0 and 65535 (both inclusive)Port number to open through the VPN interface.
nixflix.vpn.openVPNPorts.*.protocol Link copied!
one of "tcp", "udp", "both"Protocol for the port.
"tcp"nixflix.vpn.wgConfFile Link copied!
absolute pathPath to a wg-quick compatible WireGuard configuration file.
The file must contain at least [Interface] with Address, PrivateKey,
and DNS fields, and one or more [Peer] sections with PublicKey,
Endpoint, and AllowedIPs.
This file is read at service startup. Use a path to a file managed by your secrets solution (e.g. agenix, sops-nix) to keep the private key out of the Nix store.
"/etc/wireguard/airvpn.conf"programs.anime-game-launcher.enable Link copied!
booleanWhether to enable anime-game-launcher.
falseprograms.anime-game-launcher.package Link copied!
packageanime-game-launcher package to use.
<derivation anime-game-launcher-3.19.6>programs.anime-games-launcher.enable Link copied!
booleanWhether to enable anime-games-launcher.
falseprograms.anime-games-launcher.package Link copied!
packageanime-games-launcher package to use.
<derivation anime-games-launcher-2.1.0>programs.honkers-launcher.enable Link copied!
booleanWhether to enable honkers-launcher.
falseprograms.honkers-launcher.package Link copied!
packagehonkers-launcher package to use.
<derivation honkers-launcher-1.13.0>programs.honkers-railway-launcher.enable Link copied!
booleanWhether to enable honkers-railway-launcher.
falseprograms.honkers-railway-launcher.package Link copied!
packagehonkers-railway-launcher package to use.
<derivation honkers-railway-launcher-1.15.1>programs.sleepy-launcher.enable Link copied!
booleanWhether to enable sleepy-launcher.
falseprograms.sleepy-launcher.package Link copied!
packagesleepy-launcher package to use.
<derivation sleepy-launcher-1.6.6>programs.wavey-launcher.enable Link copied!
booleanWhether to enable wavey-launcher.
falseprograms.wavey-launcher.package Link copied!
packagewavey-launcher package to use.
<derivation wavey-launcher-1.0.1>services.copyparty.accounts Link copied!
attribute set of (submodule)A set of copyparty accounts to create.
{ }{
ed.passwordFile = "/run/keys/copyparty/ed";
};
services.copyparty.accounts.<name>.passwordFile Link copied!
stringRuntime file path to a file containing the user password. Must be readable by the copyparty user.
"/run/keys/copyparty/ed"services.copyparty.enable Link copied!
booleanWhether to enable web-based file manager.
falsetrueservices.copyparty.globalExtraConfig Link copied!
stringAppended to the end of the [global] section verbatim. This is useful for flags which are used in a repeating manner (e.g. ipu: 255.255.255.1=user) which can't be repeated in the settings = {} attribute set.
""services.copyparty.group Link copied!
stringThe group that copyparty will run under.
If changed from default, you are responsible for making sure the user exists.
"copyparty"services.copyparty.groups Link copied!
attribute set of list of stringA set of copyparty groups to create and the users that should be part of each group.
{ }{
group_name = [ "user1" "user2" ];
};
services.copyparty.mkHashWrapper Link copied!
booleanMake a shell script wrapper called copyparty-hash with all options set here,
that launches the hashing cli.
trueservices.copyparty.openFilesLimit Link copied!
signed integer or stringNumber of files to allow copyparty to open.
4096services.copyparty.package Link copied!
packageThe copyparty package to use. Package of the application to run, exposed for overriding purposes.
pkgs.copypartyservices.copyparty.settings Link copied!
attribute setGlobal settings to apply.
Directly maps to values in the [global] section of the copyparty config.
Cannot set "c" or "hist", those are set by this module.
See copyparty --help for more details.
{
hist = "/var/cache/copyparty";
i = "127.0.0.1";
no-reload = true;
}{
i = "0.0.0.0";
no-reload = true;
hist = /var/cache/copyparty;
}
services.copyparty.user Link copied!
stringThe user that copyparty will run under.
If changed from default, you are responsible for making sure the user exists.
"copyparty"services.copyparty.volumes Link copied!
attribute set of (submodule)A set of copyparty volumes to create
{
"/" = {
access = {
r = "*";
};
path = "/var/lib/copyparty/data";
};
}{
"/" = {
path = /var/lib/copyparty/data;
access = {
# wG = write-upget = see your own uploads only
wG = "*";
# read-write-modify-delete for users "ed" and "k"
rwmd = ["ed" "k"];
};
};
};
services.copyparty.volumes.<name>.access Link copied!
attribute setAttribute list of permissions and the users to apply them to.
The key must be a string containing any combination of allowed permission:
- "r" (read): list folder contents, download files
- "w" (write): upload files; need "r" to see the uploads
- "m" (move): move files and folders; need "w" at destination
- "d" (delete): permanently delete files and folders
- "g" (get): download files, but cannot see folder contents
- "G" (upget): "get", but can see filekeys of their own uploads
- "h" (html): "get", but folders return their index.html
- "a" (admin): can see uploader IPs, config-reload
For example: "rwmd"
The value must be one of:
- an account name, defined in
accounts - a list of account names
- "*", which means "any account"
{ }{
# wG = write-upget = see your own uploads only
wG = "*";
# read-write-modify-delete for users "ed" and "k"
rwmd = ["ed" "k"];
};
services.copyparty.volumes.<name>.flags Link copied!
attribute setAttribute list of volume flags to apply.
See copyparty --help-flags for more details.
{ }{
# "fk" enables filekeys (necessary for upget permission) (4 chars long)
fk = 4;
# scan for new files every 60sec
scan = 60;
# volflag "e2d" enables the uploads database
e2d = true;
# "d2t" disables multimedia parsers (in case the uploads are malicious)
d2t = true;
# skips hashing file contents if path matches *.iso
nohash = "\.iso$";
};
services.copyparty.volumes.<name>.path Link copied!
absolute pathPath of a directory to share.
services.minecraft-servers.dataDir Link copied!
absolute pathDirectory to store the Minecraft servers. Each server will be under a subdirectory named after the server name in this directory, such as <literal>/srv/minecraft/servername</literal>.
"/srv/minecraft"services.minecraft-servers.enable Link copied!
booleanIf enabled, the servers in <option>services.minecraft-servers.servers</option> will be created and started as applicable. The data for the servers will be loaded from and saved to <option>services.minecraft-servers.dataDir</option>
falsetrueservices.minecraft-servers.environmentFile Link copied!
null or absolute pathFile consisting of lines in the form varname=value to define environment variables for the minecraft servers.
Secrets (database passwords, secret keys, etc.) can be provided to server files without adding them to the Nix store by defining them in the environment file and referring to them in option <option>services.minecraft-servers.servers.<name>.files</option> with the syntax @varname@.
nullservices.minecraft-servers.eula Link copied!
booleanWhether you agree to <link xlink:href="https://account.mojang.com/documents/minecraft_eula"> Mojang's EULA</link>. This option must be set to <literal>true</literal> to run Minecraft server.
falsetrueservices.minecraft-servers.group Link copied!
stringName of the group to create and run servers under. In order to modify the server files your user must be a part of this group. If you are using the tmux management system (the default), you also need to be a part of this group to attach to the tmux socket. It is recommended to leave this as the default, as it is the same group as <option>services.minecraft-server</option>.
"minecraft"services.minecraft-servers.managementSystem Link copied!
submoduleThe default management system for all servers.
{
tmux = {
enable = true;
};
}''
{
tmux.enable = false;
systemd-socket.enable = true;
}
''services.minecraft-servers.managementSystem.systemd-socket.enable Link copied!
booleanmanagement through the systemd journal & a command socket
falsetrueservices.minecraft-servers.managementSystem.systemd-socket.stdinSocket.mode Link copied!
string matching the pattern [0-7]{4}Access mode of the socket file in octal notation
"0660"services.minecraft-servers.managementSystem.systemd-socket.stdinSocket.path Link copied!
function that evaluates to a(n) absolute pathFunction from a server name to the path at which the server's stdin socket is placed.
You can send the server commands by writing to this socket,
for example with shell redirection: echo 'list' > <path to socket>.
Note that while currently the default respects <option>services.minecraft-servers.runDir</option>,
that option is deprecated and will be removed.
The default will then change to name: "/run/minecraft/${name}.stdin.
name: "${cfg.runDir}/${name}.stdin"services.minecraft-servers.managementSystem.tmux.enable Link copied!
booleanWhether to enable management via a TMUX socket.
falsetrueservices.minecraft-servers.managementSystem.tmux.socketPath Link copied!
function that evaluates to a(n) absolute pathFunction from a server name to the path at which the server's tmux socket is placed.
To connect to the console, run tmux -S <path to socket> attach,
press Ctrl + b then d to detach.
Note that while currently the default respects <option>services.minecraft-servers.runDir</option>,
that option is deprecated and will be removed.
The default will then change to name: "/run/minecraft/${name}.sock.
name: "${cfg.runDir}/${name}.sock"services.minecraft-servers.openFirewall Link copied!
booleanWhether to open ports in the firewall for each server. Sets the default for <option>services.minecraft-servers.servers.<name>.openFirewall</option>.
falsetrueservices.minecraft-servers.runDir Link copied!
absolute pathDeprecated: Directory to place the runtime tmux sockets into.
Each server's console will be a tmux socket file in the form of <literal>servername.sock</literal>.
To connect to the console, run tmux -S /run/minecraft/servername.sock attach,
press Ctrl + b then d to detach.
Plase use <option>services.minecraft-servers.managementSystem.tmux.socketPath</option>` instead.
"/run/minecraft"services.minecraft-servers.servers Link copied!
attribute set of (submodule)Servers to create and manage using this module. Each server can be stopped with <literal>systemctl stop minecraft-server-servername</literal>.
Warning
If the server is not stopped using systemctl, the service will automatically restart the server.
See <option>services.minecraft-servers.servers.<name>.restart</option>.
{ }services.minecraft-servers.servers.<name>.allowedSymlinks Link copied!
list of stringMinecraft 1.20+ disallows symlinks inside world directories, unless its destinations are allow-listed. /nix/store is allowed by default, but you may add more destinations through this option. See <link xlink:href="https://help.minecraft.net/hc/en-us/articles/16165590199181"/> for more information.
Use lib.mkForce to shadow the default value (i.e. if you want to exclude /nix/store).
[ ][
"/mnt/worlds"
]
services.minecraft-servers.servers.<name>.autoStart Link copied!
booleanWhether to start this server on boot. If set to <literal>false</literal>, can still be started with <literal>systemctl start minecraft-server-servername</literal>. Requires the server to be enabled.
truetrueservices.minecraft-servers.servers.<name>.bannedPlayers Link copied!
attribute set of ((submodule) or Minecraft UUID convertible to it)Banned players. See <link xlink:href="https://docs.papermc.io/paper/reference/vanilla-data-files/"/>.
To use a non-declarative banned player list, don't fill in this value. As long as it is empty, no banned players file is generated.
{ }{
username1 = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx";
username2 = {
uuid = "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy";
created = "2025-12-01 09:00:00 -0500";
source = "(Unknown)";
expires = "forever";
reason = "Banned by an operator.";
};
}
services.minecraft-servers.servers.<name>.bannedPlayers.<name>.created Link copied!
null or stringThe date of the ban
null"2025-12-01 09:00:00 -0500"services.minecraft-servers.servers.<name>.bannedPlayers.<name>.expires Link copied!
null or stringWhen the ban expires, if ever
null"forever"services.minecraft-servers.servers.<name>.bannedPlayers.<name>.reason Link copied!
null or stringThe reason for the ban, if any.
null"Banned by an operator."services.minecraft-servers.servers.<name>.bannedPlayers.<name>.source Link copied!
null or stringThe source of the ban
null"Server"services.minecraft-servers.servers.<name>.bannedPlayers.<name>.uuid Link copied!
Minecraft UUIDThe banned player's UUID
"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"services.minecraft-servers.servers.<name>.enable Link copied!
booleanWhether to enable this server. If set to <literal>false</literal>, does NOT delete any data in the data directory, just does not generate the service file.
falsetrueservices.minecraft-servers.servers.<name>.enableReload Link copied!
booleanReload server when configuration changes (instead of restart).
This action re-links/copies the declared symlinks/files. You can include additional actions (even in-game commands) by setting <option>services.minecraft-servers.<name>.extraReload</option>.
falseservices.minecraft-servers.servers.<name>.environment Link copied!
attribute set of (null or string or absolute path or package)Environment variables added to the Minecraft server's processes. Works as <option>systemd.services.<name>.environment</option>.
{ }services.minecraft-servers.servers.<name>.extraReload Link copied!
strings concatenated with "\n"Extra commands to run when reloading the service. Only has an effect if <option>services.minecraft-servers.<name>.enableReload</option> is true.
""services.minecraft-servers.servers.<name>.extraStartPost Link copied!
strings concatenated with "\n"Extra commands to run after starting the service.
""services.minecraft-servers.servers.<name>.extraStartPre Link copied!
strings concatenated with "\n"Extra commands to run before starting the service.
""services.minecraft-servers.servers.<name>.extraStopPost Link copied!
strings concatenated with "\n"Extra commands to run after stopping the service.
""services.minecraft-servers.servers.<name>.extraStopPre Link copied!
strings concatenated with "\n"Extra commands to run before stopping the service.
""services.minecraft-servers.servers.<name>.files Link copied!
attribute set of (absolute path or (submodule))Things to copy into this server's data directory. Similar to symlinks, but these are actual, writable, files. Useful for configuration files that don't behave well when read-only. Directories are copied recursively and dereferenced. They will be deleted after the server stops, so any modification is discarded.
These files may include placeholders to substitute with values from <option>services.minecraft-servers.environmentFile</option> (i.e. @variable_name@).
{ }services.minecraft-servers.servers.<name>.jvmOpts Link copied!
strings concatenated with " " or (list of string) convertible to itJVM options for this server.
"-Xmx2G -Xms1G"services.minecraft-servers.servers.<name>.managementSystem Link copied!
submoduleConfiguration for the system used to manage this server. Overrides the global configuration on an option-by-option basis.
{ }''
{
tmux.enable = false;
systemd-socket.enable = true;
}
''services.minecraft-servers.servers.<name>.managementSystem.systemd-socket.enable Link copied!
booleanmanagement through the systemd journal & a command socket
falsetrueservices.minecraft-servers.servers.<name>.managementSystem.systemd-socket.stdinSocket.mode Link copied!
string matching the pattern [0-7]{4}Access mode of the socket file in octal notation
"0660"services.minecraft-servers.servers.<name>.managementSystem.systemd-socket.stdinSocket.path Link copied!
function that evaluates to a(n) absolute pathFunction from a server name to the path at which the server's stdin socket is placed.
You can send the server commands by writing to this socket,
for example with shell redirection: echo 'list' > <path to socket>.
Note that while currently the default respects <option>services.minecraft-servers.runDir</option>,
that option is deprecated and will be removed.
The default will then change to name: "/run/minecraft/${name}.stdin.
name: "${cfg.runDir}/${name}.stdin"services.minecraft-servers.servers.<name>.managementSystem.tmux.enable Link copied!
booleanWhether to enable management via a TMUX socket.
falsetrueservices.minecraft-servers.servers.<name>.managementSystem.tmux.socketPath Link copied!
function that evaluates to a(n) absolute pathFunction from a server name to the path at which the server's tmux socket is placed.
To connect to the console, run tmux -S <path to socket> attach,
press Ctrl + b then d to detach.
Note that while currently the default respects <option>services.minecraft-servers.runDir</option>,
that option is deprecated and will be removed.
The default will then change to name: "/run/minecraft/${name}.sock.
name: "${cfg.runDir}/${name}.sock"services.minecraft-servers.servers.<name>.openFirewall Link copied!
booleanWhether to open ports in the firewall for this server.
"The value of <literal>services.minecraft-servers.openFirewall</literal>"services.minecraft-servers.servers.<name>.operators Link copied!
attribute set of ((submodule) or Minecraft UUID convertible to it)Server operators. See <link xlink:href="https://minecraft.wiki/w/Ops.json_format"/>.
To use a non-declarative operator list, don't fill in this value. As long as it is empty, no operators file is generated.
{ }{
username1 = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx";
username2 = {
uuid = "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy";
level = 3;
bypassesPlayerLimit = true;
};
}
services.minecraft-servers.servers.<name>.operators.<name>.bypassesPlayerLimit Link copied!
booleanIf true, the operator can join the server even if the player limit has been reached
falseservices.minecraft-servers.servers.<name>.operators.<name>.level Link copied!
integer between 0 and 4 (both inclusive)The operator's permission level
4services.minecraft-servers.servers.<name>.operators.<name>.uuid Link copied!
Minecraft UUIDThe operator's UUID
"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"services.minecraft-servers.servers.<name>.package Link copied!
packageThe Minecraft server package to use.
pkgs.minecraft-server"pkgs.minecraftServers.vanilla-1_18_2"services.minecraft-servers.servers.<name>.path Link copied!
list of (absolute path or string)Packages added to the Minecraft server's <literal>PATH</literal> environment variable. Works as <option>systemd.services.<name>.path</option>.
[ ]services.minecraft-servers.servers.<name>.restart Link copied!
stringValue of systemd's <literal>Restart=</literal> service configuration option. If you are using the tmux management system (the default), values other than <literal>"no"</literal> and <literal>"always"</literal> may not work properly. As a consequence of the <literal>"always"</literal> option, stopping the server in-game with the <literal>stop</literal> command will cause the server to automatically restart.
"always"services.minecraft-servers.servers.<name>.serverProperties Link copied!
attribute set of (boolean or signed integer or string)Minecraft server properties for the server.properties file of this server. See <link xlink:href="https://minecraft.gamepedia.com/Server.properties#Java_Edition_3"/> for documentation on these values.
To use a non-declarative server.properties, don't fill in this value. As long as it is empty, no server.properties file is generated.
{ }{
server-port = 43000;
difficulty = 3;
gamemode = 1;
max-players = 5;
motd = "NixOS Minecraft server!";
white-list = true;
enable-rcon = true;
"rcon.password" = "hunter2";
}
services.minecraft-servers.servers.<name>.stopCommand Link copied!
null or stringConsole command to run when cleanly stopping the server (ExecStop). Defaults to <literal>stop</literal>, which works for most servers. For proxies (bungeecord, velocity), you should set <literal>end</literal>.
If set to <literal>null</literal>, the server will be stopped by systemd without issuing any command.
"stop"services.minecraft-servers.servers.<name>.symlinks Link copied!
attribute set of (absolute path or (submodule))Things to symlink into this server's data directory, in the form of a nix package/derivation. Can be used to declaratively manage arbitrary files in the server's data directory.
{ }services.minecraft-servers.servers.<name>.whitelist Link copied!
attribute set of Minecraft UUIDWhitelisted players, only has an effect when enabled via <option>services.minecraft-servers.<name>.serverProperties</option> by setting <literal>white-list</literal> to <literal>true</literal.
To use a non-declarative whitelist, enable the whitelist and don't fill in this value. As long as it is empty, no whitelist file is generated.
{ }{
username1 = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx";
username2 = "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy";
}
services.takina.config.botName Link copied!
stringThe name of the bot used throughout the bot's commands.
"Takina"services.takina.config.embedColor Link copied!
stringThe colour of embed responses.
"#2B2D31"services.takina.config.libretranslateApiUrl Link copied!
stringThe API URL of the LibeTranslate instance to use for the translation cog.
nullservices.takina.config.prefix Link copied!
stringThe command prefix for Takina to listen for.
"."services.takina.database.createLocally Link copied!
booleanCreate the database and database user locally.
trueservices.takina.database.port Link copied!
16 bit unsigned integer; between 0 and 65535 (both inclusive)Database port
27017services.takina.enable Link copied!
booleanWhether to enable Takina Discord bot.
falsetrueservices.takina.environmentFile Link copied!
null or absolute pathPath to a environment file, usually used for passing sensitive environment variables to Takina such as the Discord bot token.
nullservices.takina.package Link copied!
packageThe Takina package to use.
<derivation takina-1.20.4>services.takina.user Link copied!
stringUser account under which Takina runs.
"takina"sops.age.generateKey Link copied!
booleanWhether or not to generate the age key. If this option is set to false, the key must already be present at the specified location.
falsesops.age.keyFile Link copied!
null or path not in the Nix storePath to age key file used for sops decryption.
null"/var/lib/sops-nix/key.txt"sops.age.plugins Link copied!
list of packageList of plugins to use for sops decryption.
[ ]sops.age.sshKeyPaths Link copied!
list of absolute pathPaths to ssh keys added as age keys during sops description.
The ed25519 keys from {option}`config.services.openssh.hostKeys`sops.defaultSopsFormat Link copied!
stringDefault sops format used for all secrets.
"yaml"sops.defaultSopsKey Link copied!
null or stringDefault key used to lookup in all secrets. This option is ignored if format is binary. "" means whole file.
nullsops.environment Link copied!
attribute set of (string or absolute path)Environment variables to set before calling sops-install-secrets.
The values are placed in single quotes and not escaped any further to allow usage of command substitutions for more flexibility. To properly quote strings with quotes use lib.escapeShellArg.
This will be evaluated twice when using secrets that use neededForUsers but in a subshell each time so the environment variables don't collide.
{ }sops.gnupg.home Link copied!
null or stringPath to gnupg database directory containing the key for decrypting the sops file.
null"/root/.gnupg"sops.gnupg.package Link copied!
packageThe gnupg package to use for sops operations.
pkgs.gnupgsops.gnupg.sshKeyPaths Link copied!
list of absolute pathPath to ssh keys added as GPG keys during sops description. This option must be explicitly unset if <literal>config.sops.gnupg.home</literal> is set.
The rsa keys from {option}`config.services.openssh.hostKeys`sops.keepGenerations Link copied!
unsigned integer, meaning >=0Number of secrets generations to keep. Setting this to 0 disables pruning.
1sops.log Link copied!
list of (one of "keyImport", "secretChanges")What to log
[
"keyImport"
"secretChanges"
]sops.package Link copied!
packagesops-install-secrets package to use.
(pkgs.callPackage ../.. {}).sops-install-secretssops.secrets Link copied!
attribute set of (submodule)Path where the latest secrets are mounted to.
{ }sops.secrets.<name>.format Link copied!
one of "yaml", "json", "binary", "dotenv", "ini"File format used to decrypt the sops secret. Binary files are written to the target file as is.
"yaml"sops.secrets.<name>.gid Link copied!
null or signed integerGID of the file, only applied when group is null. The GID will be applied even if the corresponding group doesn't exist.
0sops.secrets.<name>.group Link copied!
null or stringGroup of the file. Can only be set if gid is 0.
{option}`config.users.users.${owner}.group`sops.secrets.<name>.key Link copied!
stringKey used to lookup in the sops file. No tested data structures are supported right now. This option is ignored if format is binary. "" means whole file.
"‹name›"sops.secrets.<name>.mode Link copied!
stringPermissions mode of the in octal.
"0400"sops.secrets.<name>.name Link copied!
stringName of the file used in /run/secrets
"‹name›"sops.secrets.<name>.neededForUsers Link copied!
booleanEnabling this option causes the secret to be decrypted before users and groups are created. This can be used to retrieve user's passwords from sops-nix. Setting this option moves the secret to /run/secrets-for-users and disallows setting owner and group to anything else than root.
falsesops.secrets.<name>.owner Link copied!
null or stringUser of the file. Can only be set if uid is 0.
nullsops.secrets.<name>.path Link copied!
stringPath where secrets are symlinked to. If the default is kept no symlink is created.
"/run/secrets-for-users/$name when neededForUsers is set, /run/secrets/$name when otherwise."sops.secrets.<name>.reloadUnits Link copied!
list of stringNames of units that should be reloaded when this secret changes. This works the same way as <xref linkend="opt-systemd.services.name.reloadTriggers" />.
[ ][
"sshd.service"
]sops.secrets.<name>.restartUnits Link copied!
list of stringNames of units that should be restarted when this secret changes. This works the same way as <xref linkend="opt-systemd.services.name.restartTriggers" />.
[ ][
"sshd.service"
]sops.secrets.<name>.sopsFile Link copied!
absolute pathSops file the secret is loaded from.
${config.sops.defaultSopsFile}sops.secrets.<name>.sopsFileHash Link copied!
stringHash of the sops file, useful in <xref linkend="opt-systemd.services.name.restartTriggers" />.
sops.secrets.<name>.uid Link copied!
null or signed integerUID of the file, only applied when owner is null. The UID will be applied even if the corresponding user doesn't exist.
0sops.templates Link copied!
attribute set of (submodule)Templates for secret files
{ }sops.templates.<name>.content Link copied!
strings concatenated with "\n"Content of the file
""sops.templates.<name>.file Link copied!
absolute pathFile used as the template. When this value is specified, sops.templates.<name>.content is ignored.
pkgs.writeText config.name config.content"./configuration-template.conf"sops.templates.<name>.gid Link copied!
null or signed integerGID of the template, only applied when group is null. The GID will be applied even if the corresponding group doesn't exist.
0sops.templates.<name>.group Link copied!
null or (optionally newline-terminated) single-line stringGroup of the file. Can only be set if gid is 0.
config.users.users.${cfg.owner}.groupsops.templates.<name>.mode Link copied!
(optionally newline-terminated) single-line stringPermissions mode of the rendered secret file in octal.
"0400"sops.templates.<name>.name Link copied!
(optionally newline-terminated) single-line stringName of the file used in /run/secrets/rendered
"‹name›"sops.templates.<name>.owner Link copied!
null or (optionally newline-terminated) single-line stringUser of the file. Can only be set if uid is 0;
nullsops.templates.<name>.path Link copied!
(optionally newline-terminated) single-line stringPath where the rendered file will be placed
"/run/secrets/rendered/‹name›"sops.templates.<name>.reloadUnits Link copied!
list of stringNames of units that should be reloaded when the rendered template changes. This works the same way as <xref linkend="opt-systemd.services.name.reloadTriggers" />.
[ ][
"sshd.service"
]sops.templates.<name>.restartUnits Link copied!
list of stringNames of units that should be restarted when the rendered template changes. This works the same way as <xref linkend="opt-systemd.services.name.restartTriggers" />.
[ ][
"sshd.service"
]sops.templates.<name>.uid Link copied!
null or signed integerUID of the template, only applied with owner is null. the UID will be applied even if the corresponding user doesn't exist.
0sops.useSystemdActivation Link copied!
booleanUse a systemd unit to install secrets, instead of deploying them using an activation script.
This option is automatically enabled when systemd-sysusers or userborn are used to manage users and groups. It can also be useful to specify additional dependencies to be satisfied before secrets are installed, such as required mountpoints for SOPS key files.
(options.systemd ? sysusers && config.systemd.sysusers.enable) || (options.services ? userborn && config.services.userborn.enable)sops.useTmpfs Link copied!
booleanUse tmpfs in place of ramfs for secrets storage.
WARNING On Linux kernels earlier than 6.4, enabling this option has the potential to write secrets to disk unencrypted if the tmpfs volume is written to swap. Do not use unless absolutely necessary.
When using a swap file or device, consider enabling swap encryption by setting the randomEncryption.enable option
swapDevices = [{
device = "/dev/sdXY";
randomEncryption.enable = true;
}];
falsesops.validateSopsFiles Link copied!
booleanCheck all sops files at evaluation time. This requires sops files to be added to the nix store.
truesops.validationPackage Link copied!
packagesops-install-secrets package to use when validating configuration.
Defaults to sops.package if building natively, and a native version of sops-install-secrets if cross compiling.
config.sops.packagesystemd.services.<name>.vpnConfinement.enable Link copied!
booleanWhether to confine the systemd service in a networking namespace which routes traffic through a VPN tunnel and forces a specified DNS.
falsesystemd.services.<name>.vpnConfinement.vpnNamespace Link copied!
stringName of the VPN networking namespace to use for the systemd service.
null"wg"vpnNamespaces Link copied!
attribute set of (submodule)This option has no description.
{ }vpnNamespaces.<name>.accessibleFrom Link copied!
list of (valid ipv4 or ipv6 address with optional mask)Subnets, ranges, and specific addresses that the namespace should be accessible to.
[ ][
"10.0.2.0/24"
"192.168.1.27"
"fd25:9ab6:6133::/64"
"fd25:9ab6:6133::203"
]vpnNamespaces.<name>.bridgeAddress Link copied!
valid ipv4 address with optional maskThe address of the linux bridge on the default namespace.
The linux bridge sits on the default namespace and needs an address to make communication between connected namespaces possible, including the default namespace.
"192.168.15.5"vpnNamespaces.<name>.bridgeAddressIPv6 Link copied!
valid ipv6 address with optional maskThe address of the linux bridge on the default namespace.
The linux bridge sits on the default namespace and needs an address to make communication between connected namespaces possible, including the default namespace.
"fd93:9701:1d00::1"vpnNamespaces.<name>.enable Link copied!
booleanWhether to enable the VPN namespace.
To access the networking namespace(netns) a veth pair is created to connect it and the default namespace through a linux bridge. One end of the pair is connected to the linux bridge on the default netns. The other end is connected to the vpn netns.
falsetruevpnNamespaces.<name>.namespaceAddress Link copied!
valid ipv4 address with optional maskThe address of the veth interface connected to the vpn namespace.
This is the address used to reach the vpn namespace from other namespaces connected to the linux bridge.
"192.168.15.1"vpnNamespaces.<name>.namespaceAddressIPv6 Link copied!
valid ipv6 address with optional maskThe address of the veth interface connected to the vpn namespace.
This is the address used to reach the vpn namespace from other namespaces connected to the linux bridge.
"fd93:9701:1d00::2"vpnNamespaces.<name>.openVPNPorts Link copied!
list of (submodule)Ports that should be accessible through the VPN interface.
[ ]vpnNamespaces.<name>.openVPNPorts.*.port Link copied!
16 bit unsigned integer; between 0 and 65535 (both inclusive)The port to open.
vpnNamespaces.<name>.openVPNPorts.*.protocol Link copied!
one of "tcp", "udp", "both"The transport layer protocol to use.
"tcp""both"vpnNamespaces.<name>.portMappings Link copied!
list of (submodule)A list of port mappings from the host to ports in the namespace. Neither the 'to' or 'from' ports should be open on the default netns as they are routed to the VPN netns. The 'to' ports are automatically opened in the VPN netns.
[ ][
{
from = 80;
protocol = "tcp";
to = 80;
}
]vpnNamespaces.<name>.portMappings.*.from Link copied!
16 bit unsigned integer; between 0 and 65535 (both inclusive)Port on the default netns.
80vpnNamespaces.<name>.portMappings.*.protocol Link copied!
one of "tcp", "udp", "both"The transport layer protocol to use.
"tcp""both"vpnNamespaces.<name>.portMappings.*.to Link copied!
16 bit unsigned integer; between 0 and 65535 (both inclusive)Port on the VPN netns.
443vpnNamespaces.<name>.wireguardConfigFile Link copied!
absolute pathPath to a wg-quick config file.
null"/secret/wg0.conf"