homelab.apps.audiobookshelf.enable¶
Whether to enable audiobookshelf with homelab defaults.
Type: boolean
Default:
false
Example:
true
Declared by:
- \
homelab.apps.bazarr.enable¶
Whether to enable bazarr with homelab defaults.
Type: boolean
Default:
false
Example:
true
Declared by:
- \
homelab.apps.jellyfin.enable¶
Whether to enable jellyfin with homelab defaults.
Type: boolean
Default:
false
Example:
true
Declared by:
- \
homelab.apps.lidarr.enable¶
Whether to enable lidarr with homelab defaults.
Type: boolean
Default:
false
Example:
true
Declared by:
- \
homelab.apps.navidrome.enable¶
Whether to enable navidrome with homelab defaults.
Type: boolean
Default:
false
Example:
true
Declared by:
- \
homelab.apps.nzbget.enable¶
Whether to enable nzbget with homelab defaults.
Type: boolean
Default:
false
Example:
true
Declared by:
- \
homelab.apps.nzbget.bindAddress¶
Control interface address.
Type: string
Default:
"127.0.0.1"
Declared by:
- \
homelab.apps.nzbget.controlPort¶
Control interface TCP port.
Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Default:
6789
Declared by:
- \
homelab.apps.nzbget.credentialsFile¶
User-provided runtime credential fragment. Merged before each start; values never enter command arguments or the Nix store.
Type: null or string matching the pattern /[A-Za-z0-9_./-]+
Default:
null
Declared by:
- \
homelab.apps.nzbget.vpn.enable¶
Whether to enable VPN egress for NZBGet.
Type: boolean
Default:
false
Example:
true
Declared by:
- \
homelab.apps.plex.enable¶
Whether to enable plex with homelab defaults.
Type: boolean
Default:
false
Example:
true
Declared by:
- \
homelab.apps.prowlarr.enable¶
Whether to enable prowlarr with homelab defaults.
Type: boolean
Default:
false
Example:
true
Declared by:
- \
homelab.apps.prowlarr.bindAddress¶
Prowlarr listen address.
Type: string
Default:
"127.0.0.1"
Declared by:
- \
homelab.apps.prowlarr.port¶
Default Prowlarr TCP port; native services.prowlarr.settings.server.port can override it.
Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Default:
9696
Declared by:
- \
homelab.apps.prowlarr.vpn.enable¶
Whether to enable confinement of all Prowlarr traffic, including app sync.
Type: boolean
Default:
false
Example:
true
Declared by:
- \
homelab.apps.qbittorrent.enable¶
Whether to enable qbittorrent with homelab defaults.
Type: boolean
Default:
false
Example:
true
Declared by:
- \
homelab.apps.qbittorrent.apiKeyFile¶
Runtime qBittorrent 5.2 API-key file used only to reconcile declared categories and tags.
Type: null or string matching the pattern /[A-Za-z0-9_./-]+
Default:
null
Declared by:
- \
homelab.apps.qbittorrent.bindAddress¶
Web UI listen address. Confined traffic is reachable only from the host link.
Type: string
Default:
"127.0.0.1"
Declared by:
- \
homelab.apps.qbittorrent.configuration.categories¶
Named qBittorrent categories. Paths must stay under the homelab downloads directory.
Type: attribute set of (submodule)
Default:
{ }
Declared by:
- \
homelab.apps.qbittorrent.configuration.categories.\.savePath¶
Absolute category save path. The default isolates each workflow below the torrent download root.
Type: string matching the pattern /[A-Za-z0-9_./-]+
Default:
"${config.homelab.storage.downloadsDir}/torrents/${name}"
Declared by:
- \
homelab.apps.qbittorrent.configuration.interval¶
Delay between completed qBittorrent resource reconciliation runs.
Type: string
Default:
"15min"
Declared by:
- \
homelab.apps.qbittorrent.configuration.mode¶
Bootstrap creates absent resources; managed also updates declared category paths. Neither mode deletes resources.
Type: one of “bootstrap”, “managed”
Default:
"bootstrap"
Declared by:
- \
homelab.apps.qbittorrent.configuration.tags¶
Tags to create if absent. Existing and undeclared tags are preserved.
Type: list of string
Default:
[ ]
Declared by:
- \
homelab.apps.qbittorrent.credentialsFile¶
Runtime INI file with WebUI username and Password_PBKDF2 under [Preferences]. Merged after public settings on every start.
Type: null or string matching the pattern /[A-Za-z0-9_./-]+
Default:
null
Declared by:
- \
homelab.apps.qbittorrent.resourcePolicy.ignoreSlowTorrents¶
Whether slow torrents may exceed the active queue limits.
Type: boolean
Default:
false
Declared by:
- \
homelab.apps.qbittorrent.resourcePolicy.localPeerDiscovery¶
Enable local peer discovery. Disabled by default to avoid LAN discovery traffic from the VPN namespace.
Type: boolean
Default:
false
Declared by:
- \
homelab.apps.qbittorrent.resourcePolicy.maxActiveDownloads¶
Maximum number of torrents downloading concurrently.
Type: positive integer, meaning >0
Default:
3
Declared by:
- \
homelab.apps.qbittorrent.resourcePolicy.maxActiveTorrents¶
Maximum combined number of active downloading and seeding torrents.
Type: positive integer, meaning >0
Default:
8
Declared by:
- \
homelab.apps.qbittorrent.resourcePolicy.maxActiveUploads¶
Maximum number of torrents seeding concurrently.
Type: positive integer, meaning >0
Default:
5
Declared by:
- \
homelab.apps.qbittorrent.resourcePolicy.maxConnections¶
Maximum global peer connections.
Type: positive integer, meaning >0
Default:
200
Declared by:
- \
homelab.apps.qbittorrent.resourcePolicy.maxConnectionsPerTorrent¶
Maximum peer connections for one torrent.
Type: positive integer, meaning >0
Default:
50
Declared by:
- \
homelab.apps.qbittorrent.resourcePolicy.maxUploads¶
Maximum global upload slots.
Type: positive integer, meaning >0
Default:
20
Declared by:
- \
homelab.apps.qbittorrent.resourcePolicy.maxUploadsPerTorrent¶
Maximum upload slots for one torrent.
Type: positive integer, meaning >0
Default:
8
Declared by:
- \
homelab.apps.qbittorrent.torrentingPort¶
Peer TCP/UDP port.
Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Default:
51413
Declared by:
- \
homelab.apps.qbittorrent.vpn.enable¶
Confine BitTorrent traffic. Disable explicitly only if direct ISP-visible peer traffic is intended.
Type: boolean
Default:
true
Declared by:
- \
homelab.apps.qbittorrent.vpn.allowInbound¶
Whether to enable inbound peer traffic from a provider that supports port forwarding.
Type: boolean
Default:
false
Example:
true
Declared by:
- \
homelab.apps.qbittorrent.webuiPort¶
Web UI TCP port.
Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Default:
8081
Declared by:
- \
homelab.apps.radarr.enable¶
Whether to enable radarr with homelab defaults.
Type: boolean
Default:
false
Example:
true
Declared by:
- \
homelab.apps.sabnzbd.enable¶
Whether to enable sabnzbd with homelab defaults.
Type: boolean
Default:
false
Example:
true
Declared by:
- \
homelab.apps.sabnzbd.port¶
SABnzbd Web UI port.
Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Default:
8080
Declared by:
- \
homelab.apps.sabnzbd.vpn.enable¶
Whether to enable VPN egress for SABnzbd in addition to provider TLS.
Type: boolean
Default:
false
Example:
true
Declared by:
- \
homelab.apps.seerr.enable¶
Whether to enable seerr with homelab defaults.
Type: boolean
Default:
false
Example:
true
Declared by:
- \
homelab.apps.sonarr.enable¶
Whether to enable sonarr with homelab defaults.
Type: boolean
Default:
false
Example:
true
Declared by:
- \
homelab.indexerProxy.enable¶
Whether to enable an authenticated VPN-confined SOCKS5 proxy for selected Prowlarr indexers.
Type: boolean
Default:
false
Example:
true
Declared by:
- \
homelab.indexerProxy.passwordFile¶
Absolute runtime file containing the SOCKS5 password.
Type: null or string matching the pattern /[A-Za-z0-9_./-]+
Default:
null
Declared by:
- \
homelab.indexerProxy.port¶
SOCKS5 port reachable only over the namespace host link.
Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Default:
1080
Declared by:
- \
homelab.indexerProxy.username¶
SOCKS5 username supplied to explicitly configured Prowlarr proxies.
Type: string matching the pattern [A-Za-z0-9._-]+
Default:
"prowlarr"
Declared by:
- \
homelab.integration.enable¶
Whether to enable authenticated application reconciliation.
Type: boolean
Default:
false
Example:
true
Declared by:
- \
homelab.integration.interval¶
Delay between completed reconciliation runs. No overlapping jobs are started.
Type: string
Default:
"15min"
Declared by:
- \
homelab.integration.services¶
Application API jobs. Settings support {_secret = /absolute/runtime/path;} references; values are loaded through systemd credentials.
Type: attribute set of (submodule)
Default:
{ }
Declared by:
- \
homelab.integration.services.\.after¶
Additional prerequisite systemd units, including user secret activation and other integration jobs.
Type: list of string
Default:
[ ]
Declared by:
- \
homelab.integration.services.\.apiKeyFile¶
User-supplied runtime API key file. Jellyfin, Seerr, Navidrome and Audiobookshelf may instead use settings.login.
Type: null or string
Default:
null
Declared by:
- \
homelab.integration.services.\.extraResources¶
Unsupported raw Arr resources for forward compatibility. They retain runtime secret validation but carry no versioned compatibility promise.
Type: list of (JSON value)
Default:
[ ]
Declared by:
- \
homelab.integration.services.\.extraSettings¶
Unsupported raw adapter settings recursively merged over typed settings for forward compatibility. These fields carry no versioned compatibility promise.
Type: JSON value
Default:
{ }
Declared by:
- \
homelab.integration.services.\.installApiKey¶
Install a user-provided key into a local Servarr runtime environment file or Bazarr configuration. Restart the key unit when present and the application after rotation.
Type: boolean
Default:
false
Declared by:
- \
homelab.integration.services.\.kind¶
Application API adapter.
Type: one of “audiobookshelf”, “autobrr”, “bazarr”, “jellyfin”, “lidarr”, “navidrome”, “prowlarr”, “radarr”, “seerr”, “sonarr”
Default:
"‹name›"
Declared by:
- \
homelab.integration.services.\.mode¶
Bootstrap preserves existing objects. Managed updates declared fields. Neither mode deletes undeclared objects.
Type: one of “bootstrap”, “managed”
Default:
"bootstrap"
Declared by:
- \
homelab.integration.services.\.resources¶
Typed Arr resource envelopes. Provider-specific values remain schema-validated by the running application.
Type: list of (submodule)
Default:
[ ]
Declared by:
- \
homelab.integration.services.\.resources.*.endpoint¶
Supported Arr collection endpoint.
Type: one of “rootfolder”, “downloadclient”, “indexer”, “indexerproxy”, “applications”, “tag”, “qualityprofile”, “delayprofile”, “notification”, “remotepathmapping”
Declared by:
- \
homelab.integration.services.\.resources.*.match¶
Stable name, path, or label used to find exactly one owned object.
Type: attribute set of (JSON value)
Default:
{ }
Declared by:
- \
homelab.integration.services.\.resources.*.values¶
Declared provider fields, validated against the running application’s schema.
Type: JSON value
Default:
{ }
Declared by:
- \
homelab.integration.services.\.settings¶
Typed adapter configuration for supported libraries, accounts, request policies and subtitle settings. See the integration guide.
Type: JSON value
Default:
{ }
Declared by:
- \
homelab.integration.services.\.url¶
Local HTTP or remote HTTPS API base URL. Redirects and credential-bearing URLs are rejected.
Type: string matching the pattern https?://[^@?#]+
Declared by:
- \
homelab.integrations.downloadClients¶
Reusable typed download-client connections referenced by Servarr instances.
Type: attribute set of (submodule)
Default:
{ }
Declared by:
- \
homelab.integrations.downloadClients.\.after¶
Units that must complete before managers reconcile this client.
Type: list of string
Default:
[ ]
Declared by:
- \
homelab.integrations.downloadClients.\.apiKeyFile¶
Runtime file containing the client API key.
Type: null or string matching the pattern /[A-Za-z0-9_./-]+
Default:
null
Declared by:
- \
homelab.integrations.downloadClients.\.extraFields¶
Schema-checked provider fields not covered by the stable typed interface.
Type: JSON value
Default:
{ }
Declared by:
- \
homelab.integrations.downloadClients.\.host¶
Host name or address reachable from the manager.
Type: string
Default:
"127.0.0.1"
Declared by:
- \
homelab.integrations.downloadClients.\.manageCategories¶
Create referenced categories in the local qBittorrent service before manager reconciliation.
Type: boolean
Default:
false
Declared by:
- \
homelab.integrations.downloadClients.\.name¶
Stable display name used to own this client in each manager.
Type: string
Default:
"‹name›"
Declared by:
- \
homelab.integrations.downloadClients.\.passwordFile¶
Runtime file containing the client password.
Type: null or string matching the pattern /[A-Za-z0-9_./-]+
Default:
null
Declared by:
- \
homelab.integrations.downloadClients.\.port¶
Download-client API port.
Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Declared by:
- \
homelab.integrations.downloadClients.\.type¶
Download-client provider translated to the running Servarr schema.
Type: one of “qbittorrent”, “sabnzbd”, “nzbget”, “transmission”, “deluge”
Declared by:
- \
homelab.integrations.downloadClients.\.urlBase¶
Optional URL path used by the client’s RPC interface.
Type: string
Default:
""
Declared by:
- \
homelab.integrations.downloadClients.\.useSsl¶
Use TLS between the manager and download client.
Type: boolean
Default:
false
Declared by:
- \
homelab.integrations.downloadClients.\.usernameFile¶
Runtime file containing the client username.
Type: null or string matching the pattern /[A-Za-z0-9_./-]+
Default:
null
Declared by:
- \
homelab.integrations.jellyfin¶
Typed Jellyfin bootstrap, library, encoding and restricted-user reconciliation.
Type: null or (submodule)
Default:
null
Declared by:
- \
homelab.integrations.jellyfin.administrator.name¶
Administrator name used for first-run setup and optional password rotation.
Type: string
Default:
"admin"
Declared by:
- \
homelab.integrations.jellyfin.administrator.passwordFile¶
Runtime file containing the administrator password.
Type: string matching the pattern /[A-Za-z0-9_./ -]+
Declared by:
- \
homelab.integrations.jellyfin.after¶
Additional prerequisite units for Jellyfin reconciliation.
Type: list of string
Default:
[ ]
Declared by:
- \
homelab.integrations.jellyfin.apiKeyFile¶
Runtime API-key file used after attended bootstrap.
Type: string matching the pattern /[A-Za-z0-9_./ -]+
Declared by:
- \
homelab.integrations.jellyfin.encoding¶
Portable encoding policy; device access and packages remain native service settings.
Type: submodule
Default:
{ }
Declared by:
- \
homelab.integrations.jellyfin.encoding.enableSegmentDeletion¶
Delete old transcoding segments during playback.
Type: null or boolean
Default:
null
Declared by:
- \
homelab.integrations.jellyfin.encoding.enableThrottling¶
Throttle transcodes that are sufficiently ahead of playback.
Type: null or boolean
Default:
null
Declared by:
- \
homelab.integrations.jellyfin.encoding.extraSettings¶
Version-specific encoding settings outside the stable typed interface.
Type: JSON value
Default:
{ }
Declared by:
- \
homelab.integrations.jellyfin.encoding.hardwareAccelerationType¶
Jellyfin hardware acceleration backend selected by the host.
Type: null or string
Default:
null
Declared by:
- \
homelab.integrations.jellyfin.encoding.hardwareDecodingCodecs¶
Codecs explicitly allowed for hardware decoding; an empty list leaves the API value unmanaged.
Type: list of string
Default:
[ ]
Declared by:
- \
homelab.integrations.jellyfin.encoding.segmentKeepSeconds¶
Seconds of completed segments retained behind playback.
Type: null or (positive integer, meaning >0)
Default:
null
Declared by:
- \
homelab.integrations.jellyfin.encoding.threadCount¶
FFmpeg encoding thread count; -1 lets Jellyfin choose.
Type: null or signed integer
Default:
null
Declared by:
- \
homelab.integrations.jellyfin.extraSettings¶
Version-specific top-level reconciler settings outside the stable typed interface.
Type: JSON value
Default:
{ }
Declared by:
- \
homelab.integrations.jellyfin.libraries¶
Named Jellyfin libraries updated without deleting undeclared libraries.
Type: attribute set of (submodule)
Default:
{ }
Declared by:
- \
homelab.integrations.jellyfin.libraries.\.enableChapterImageExtraction¶
Allow chapter-image extraction for this library.
Type: null or boolean
Default:
null
Declared by:
- \
homelab.integrations.jellyfin.libraries.\.enableRealtimeMonitor¶
Watch supported filesystems for library changes.
Type: null or boolean
Default:
null
Declared by:
- \
homelab.integrations.jellyfin.libraries.\.enableTrickplayImageExtraction¶
Allow trickplay image generation for this library.
Type: null or boolean
Default:
null
Declared by:
- \
homelab.integrations.jellyfin.libraries.\.collectionType¶
Jellyfin content type used when the library is created.
Type: one of “books”, “homevideos”, “mixed”, “movies”, “music”, “musicvideos”, “photos”, “tvshows”
Declared by:
- \
homelab.integrations.jellyfin.libraries.\.extraOptions¶
Version-specific Jellyfin LibraryOptions outside the stable typed interface.
Type: JSON value
Default:
{ }
Declared by:
- \
homelab.integrations.jellyfin.libraries.\.extractChapterImagesDuringLibraryScan¶
Extract chapter images during full scans.
Type: null or boolean
Default:
null
Declared by:
- \
homelab.integrations.jellyfin.libraries.\.extractTrickplayImagesDuringLibraryScan¶
Generate trickplay images during full scans.
Type: null or boolean
Default:
null
Declared by:
- \
homelab.integrations.jellyfin.libraries.\.paths¶
Absolute media locations owned by this named library.
Type: non-empty (list of string matching the pattern /[A-Za-z0-9_./ -]+)
Declared by:
- \
homelab.integrations.jellyfin.libraries.\.saveTrickplayWithMedia¶
Store trickplay data beside media rather than only in Jellyfin state.
Type: null or boolean
Default:
null
Declared by:
- \
homelab.integrations.jellyfin.mode¶
Bootstrap preserves existing objects; managed updates fields owned by this declaration.
Type: one of “bootstrap”, “managed”
Default:
"bootstrap"
Declared by:
- \
homelab.integrations.jellyfin.startup.metadataCountryCode¶
Metadata country installed during first-run setup.
Type: string
Default:
"US"
Declared by:
- \
homelab.integrations.jellyfin.startup.preferredMetadataLanguage¶
Metadata language installed during first-run setup.
Type: string
Default:
"en"
Declared by:
- \
homelab.integrations.jellyfin.startup.serverName¶
Server name installed during first-run setup.
Type: string
Default:
"Media library"
Declared by:
- \
homelab.integrations.jellyfin.startup.uiCulture¶
UI culture installed during first-run setup.
Type: string
Default:
"en"
Declared by:
- \
homelab.integrations.jellyfin.url¶
Jellyfin API base URL.
Type: string
Declared by:
- \
homelab.integrations.jellyfin.users¶
Named local Jellyfin users with restrictive policy defaults.
Type: attribute set of (submodule)
Default:
{ }
Declared by:
- \
homelab.integrations.jellyfin.users.\.enableAllFolders¶
Grant access to every library, including libraries created outside this module.
Type: boolean
Default:
false
Declared by:
- \
homelab.integrations.jellyfin.users.\.enableAudioPlaybackTranscoding¶
Allow server-side audio transcoding for this user.
Type: boolean
Default:
false
Declared by:
- \
homelab.integrations.jellyfin.users.\.enableContentDeletion¶
Allow this user to delete media from storage.
Type: boolean
Default:
false
Declared by:
- \
homelab.integrations.jellyfin.users.\.enableContentDownloading¶
Allow this user to download original media files.
Type: boolean
Default:
false
Declared by:
- \
homelab.integrations.jellyfin.users.\.enableMediaPlayback¶
Allow local media playback.
Type: boolean
Default:
true
Declared by:
- \
homelab.integrations.jellyfin.users.\.enablePlaybackRemuxing¶
Allow container remuxing without re-encoding media.
Type: boolean
Default:
true
Declared by:
- \
homelab.integrations.jellyfin.users.\.enableRemoteAccess¶
Allow authentication from outside Jellyfin’s local-network classification.
Type: boolean
Default:
false
Declared by:
- \
homelab.integrations.jellyfin.users.\.enableVideoPlaybackTranscoding¶
Allow server-side video transcoding for this user.
Type: boolean
Default:
false
Declared by:
- \
homelab.integrations.jellyfin.users.\.extraPolicy¶
Version-specific Jellyfin UserPolicy fields outside the stable typed interface.
Type: JSON value
Default:
{ }
Declared by:
- \
homelab.integrations.jellyfin.users.\.isAdministrator¶
Grant Jellyfin administrator privileges.
Type: boolean
Default:
false
Declared by:
- \
homelab.integrations.jellyfin.users.\.isHidden¶
Hide this account from the login screen.
Type: boolean
Default:
true
Declared by:
- \
homelab.integrations.jellyfin.users.\.passwordFile¶
Runtime file containing this user’s desired password.
Type: string matching the pattern /[A-Za-z0-9_./ -]+
Declared by:
- \
homelab.integrations.notifications¶
Reusable typed Jellyfin and ntfy notifications referenced by Servarr instances.
Type: attribute set of (submodule)
Default:
{ }
Declared by:
- \
homelab.integrations.notifications.\.accessTokenFile¶
Runtime file containing an ntfy access token.
Type: null or string matching the pattern /[A-Za-z0-9_./-]+
Default:
null
Declared by:
- \
homelab.integrations.notifications.\.after¶
Units that must be ready before managers reconcile this notification.
Type: list of string
Default:
[ ]
Declared by:
- \
homelab.integrations.notifications.\.apiKeyFile¶
Runtime file containing the Jellyfin API key.
Type: null or string matching the pattern /[A-Za-z0-9_./-]+
Default:
null
Declared by:
- \
homelab.integrations.notifications.\.clickUrl¶
Optional ntfy notification click target.
Type: string
Default:
""
Declared by:
- \
homelab.integrations.notifications.\.events¶
Events that trigger this notification.
Type: submodule
Default:
{ }
Declared by:
- \
homelab.integrations.notifications.\.events.includeHealthWarnings¶
Include warning-level manager health events.
Type: boolean
Default:
false
Declared by:
- \
homelab.integrations.notifications.\.events.onApplicationUpdate¶
Notify after the manager updates itself.
Type: boolean
Default:
false
Declared by:
- \
homelab.integrations.notifications.\.events.onDownload¶
Notify after a download is imported.
Type: boolean
Default:
true
Declared by:
- \
homelab.integrations.notifications.\.events.onGrab¶
Notify when a release is grabbed.
Type: boolean
Default:
false
Declared by:
- \
homelab.integrations.notifications.\.events.onHealthIssue¶
Notify when a manager health check fails.
Type: boolean
Default:
true
Declared by:
- \
homelab.integrations.notifications.\.events.onHealthRestored¶
Notify when a manager health check recovers.
Type: boolean
Default:
true
Declared by:
- \
homelab.integrations.notifications.\.events.onImportComplete¶
Notify after all files in an import complete.
Type: boolean
Default:
true
Declared by:
- \
homelab.integrations.notifications.\.events.onManualInteractionRequired¶
Notify when an import requires operator intervention.
Type: boolean
Default:
true
Declared by:
- \
homelab.integrations.notifications.\.events.onRename¶
Notify after files are renamed.
Type: boolean
Default:
true
Declared by:
- \
homelab.integrations.notifications.\.events.onUpgrade¶
Include upgrades in download notifications.
Type: boolean
Default:
true
Declared by:
- \
homelab.integrations.notifications.\.extraFields¶
Schema-checked provider fields not covered by the stable typed interface.
Type: JSON value
Default:
{ }
Declared by:
- \
homelab.integrations.notifications.\.host¶
Jellyfin host name or address.
Type: null or string
Default:
null
Declared by:
- \
homelab.integrations.notifications.\.mapFrom¶
Optional manager path prefix translated for Jellyfin.
Type: string
Default:
""
Declared by:
- \
homelab.integrations.notifications.\.mapTo¶
Optional Jellyfin path prefix paired with mapFrom.
Type: string
Default:
""
Declared by:
- \
homelab.integrations.notifications.\.messageTags¶
ntfy message tags or emoji short names.
Type: list of string
Default:
[ ]
Declared by:
- \
homelab.integrations.notifications.\.name¶
Stable display name owned in each referencing manager.
Type: string
Default:
"‹name›"
Declared by:
- \
homelab.integrations.notifications.\.notify¶
Send Jellyfin user notifications as well as library updates.
Type: boolean
Default:
false
Declared by:
- \
homelab.integrations.notifications.\.passwordFile¶
Runtime file containing an ntfy password.
Type: null or string matching the pattern /[A-Za-z0-9_./-]+
Default:
null
Declared by:
- \
homelab.integrations.notifications.\.port¶
Jellyfin API port.
Type: null or 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Default:
null
Declared by:
- \
homelab.integrations.notifications.\.priority¶
ntfy message priority from 1 (minimum) through 5 (maximum).
Type: integer between 1 and 5 (both inclusive)
Default:
3
Declared by:
- \
homelab.integrations.notifications.\.serverUrl¶
ntfy server URL; null uses the provider default.
Type: null or string
Default:
null
Declared by:
- \
homelab.integrations.notifications.\.tags¶
Manager tags restricting this notification.
Type: list of string matching the pattern [A-Za-z0-9][A-Za-z0-9._ -]*
Default:
[ ]
Declared by:
- \
homelab.integrations.notifications.\.topics¶
ntfy topics receiving events.
Type: list of string matching the pattern [A-Za-z0-9_-]+
Default:
[ ]
Declared by:
- \
homelab.integrations.notifications.\.type¶
Reviewed Servarr notification provider.
Type: one of “jellyfin”, “ntfy”
Declared by:
- \
homelab.integrations.notifications.\.updateLibrary¶
Tell Jellyfin to refresh affected library items.
Type: boolean
Default:
true
Declared by:
- \
homelab.integrations.notifications.\.urlBase¶
Optional Jellyfin URL base.
Type: string
Default:
""
Declared by:
- \
homelab.integrations.notifications.\.useSsl¶
Use TLS for the Jellyfin connection.
Type: boolean
Default:
false
Declared by:
- \
homelab.integrations.notifications.\.username¶
Optional ntfy username.
Type: null or string
Default:
null
Declared by:
- \
homelab.integrations.prowlarr¶
Typed Prowlarr application, indexer, tag and per-indexer proxy reconciliation.
Type: null or (submodule)
Default:
null
Declared by:
- \
homelab.integrations.prowlarr.after¶
Additional prerequisite units for Prowlarr reconciliation.
Type: list of string
Default:
[ ]
Declared by:
- \
homelab.integrations.prowlarr.apiKeyFile¶
Runtime file containing the Prowlarr API key.
Type: string matching the pattern /[A-Za-z0-9_./-]+
Declared by:
- \
homelab.integrations.prowlarr.applications¶
Named Servarr instances synchronized by Prowlarr.
Type: attribute set of (submodule)
Default:
{ }
Declared by:
- \
homelab.integrations.prowlarr.applications.\.animeSyncCategories¶
Sonarr anime categories synchronized in addition to the standard categories.
Type: list of (unsigned integer, meaning >=0)
Default:
[
5070
]
Declared by:
- \
homelab.integrations.prowlarr.applications.\.authPasswordFile¶
Runtime file containing application HTTP-auth password.
Type: null or string matching the pattern /[A-Za-z0-9_./-]+
Default:
null
Declared by:
- \
homelab.integrations.prowlarr.applications.\.authUsername¶
Optional application HTTP-auth username.
Type: null or string
Default:
null
Declared by:
- \
homelab.integrations.prowlarr.applications.\.extraFields¶
Schema-checked application fields not covered by the stable typed interface.
Type: JSON value
Default:
{ }
Declared by:
- \
homelab.integrations.prowlarr.applications.\.manager¶
Named homelab.integrations.servarr instance to synchronize.
Type: string
Default:
"‹name›"
Declared by:
- \
homelab.integrations.prowlarr.applications.\.name¶
Stable display name owned in Prowlarr.
Type: string
Default:
"‹name›"
Declared by:
- \
homelab.integrations.prowlarr.applications.\.syncAnimeStandardFormatSearch¶
Allow Prowlarr to synchronize Sonarr’s standard-numbering anime search.
Type: boolean
Default:
true
Declared by:
- \
homelab.integrations.prowlarr.applications.\.syncCategories¶
Newznab categories to synchronize; null uses the pinned Prowlarr defaults.
Type: null or (list of (unsigned integer, meaning >=0))
Default:
null
Declared by:
- \
homelab.integrations.prowlarr.applications.\.syncLevel¶
Whether Prowlarr only adds indexers or also updates and removes synchronized indexers.
Type: one of “addOnly”, “fullSync”
Default:
"fullSync"
Declared by:
- \
homelab.integrations.prowlarr.applications.\.syncRejectBlocklistedTorrentHashesWhileGrabbing¶
Ask the target manager to reject blocklisted torrent hashes while grabbing.
Type: boolean
Default:
false
Declared by:
- \
homelab.integrations.prowlarr.extraResources¶
Unsupported schema-checked Prowlarr resources for forward compatibility.
Type: list of (JSON value)
Default:
[ ]
Declared by:
- \
homelab.integrations.prowlarr.indexers¶
Opt-in provider indexers; provider-specific fields remain runtime-schema validated.
Type: attribute set of (submodule)
Default:
{ }
Declared by:
- \
homelab.integrations.prowlarr.indexers.\.enable¶
Enable this indexer in Prowlarr.
Type: boolean
Default:
true
Declared by:
- \
homelab.integrations.prowlarr.indexers.\.extraSettings¶
Schema-checked indexer settings outside the stable typed interface.
Type: JSON value
Default:
{ }
Declared by:
- \
homelab.integrations.prowlarr.indexers.\.fields¶
Non-secret provider fields validated against the running Prowlarr schema.
Type: JSON value
Default:
{ }
Declared by:
- \
homelab.integrations.prowlarr.indexers.\.implementation¶
Implementation selected from the running Prowlarr indexer schema.
Type: string
Declared by:
- \
homelab.integrations.prowlarr.indexers.\.name¶
Stable display name owned in Prowlarr.
Type: string
Default:
"‹name›"
Declared by:
- \
homelab.integrations.prowlarr.indexers.\.priority¶
Indexer priority; lower values are preferred.
Type: integer between 1 and 50 (both inclusive)
Default:
25
Declared by:
- \
homelab.integrations.prowlarr.indexers.\.secretFields¶
Provider field names mapped to runtime secret files.
Type: attribute set of string matching the pattern /[A-Za-z0-9_./-]+
Default:
{ }
Declared by:
- \
homelab.integrations.prowlarr.indexers.\.tags¶
Named tags used for proxy selection and application filtering.
Type: list of string matching the pattern [A-Za-z0-9][A-Za-z0-9._ -]*
Default:
[ ]
Declared by:
- \
homelab.integrations.prowlarr.installApiKey¶
Install the declared API key into the local native Prowlarr service.
Type: boolean
Default:
false
Declared by:
- \
homelab.integrations.prowlarr.mode¶
Bootstrap preserves existing matches; managed updates declared fields. Neither mode deletes resources.
Type: one of “bootstrap”, “managed”
Default:
"bootstrap"
Declared by:
- \
homelab.integrations.prowlarr.proxies¶
Tagged per-indexer proxies managed in Prowlarr.
Type: attribute set of (submodule)
Default:
{ }
Declared by:
- \
homelab.integrations.prowlarr.proxies.\.extraFields¶
Schema-checked proxy fields not covered by the stable typed interface.
Type: JSON value
Default:
{ }
Declared by:
- \
homelab.integrations.prowlarr.proxies.\.host¶
HTTP or SOCKS5 proxy host name or address.
Type: null or string
Default:
null
Declared by:
- \
homelab.integrations.prowlarr.proxies.\.name¶
Stable display name owned in Prowlarr.
Type: string
Default:
"‹name›"
Declared by:
- \
homelab.integrations.prowlarr.proxies.\.passwordFile¶
Runtime file containing proxy password.
Type: null or string matching the pattern /[A-Za-z0-9_./-]+
Default:
null
Declared by:
- \
homelab.integrations.prowlarr.proxies.\.port¶
HTTP or SOCKS5 proxy port.
Type: null or 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Default:
null
Declared by:
- \
homelab.integrations.prowlarr.proxies.\.requestTimeout¶
FlareSolverr request timeout in seconds.
Type: integer between 1 and 180 (both inclusive)
Default:
60
Declared by:
- \
homelab.integrations.prowlarr.proxies.\.tags¶
Named tags selecting the indexers that use this proxy.
Type: non-empty (list of string matching the pattern [A-Za-z0-9][A-Za-z0-9._ -]*)
Declared by:
- \
homelab.integrations.prowlarr.proxies.\.type¶
Prowlarr indexer-proxy implementation.
Type: one of “http”, “socks5”, “flaresolverr”
Declared by:
- \
homelab.integrations.prowlarr.proxies.\.url¶
FlareSolverr-compatible service URL.
Type: null or string
Default:
null
Declared by:
- \
homelab.integrations.prowlarr.proxies.\.username¶
Optional HTTP or SOCKS5 proxy username.
Type: null or string
Default:
null
Declared by:
- \
homelab.integrations.prowlarr.url¶
Prowlarr API base URL, including a URL base when configured.
Type: string
Declared by:
- \
homelab.integrations.seerr¶
Typed Seerr onboarding, destination and conservative request policy reconciliation.
Type: null or (submodule)
Default:
null
Declared by:
- \
homelab.integrations.seerr.after¶
Additional prerequisite units for Seerr reconciliation.
Type: list of string
Default:
[ ]
Declared by:
- \
homelab.integrations.seerr.allowAutomaticRequests¶
Explicit safety gate for auto-approval or automatic-request permissions.
Type: boolean
Default:
false
Declared by:
- \
homelab.integrations.seerr.apiKeyFile¶
Optional runtime Seerr API-key file; login is used when absent.
Type: null or string matching the pattern /[A-Za-z0-9_./-]+
Default:
null
Declared by:
- \
homelab.integrations.seerr.defaultPermissions¶
Permissions granted to new media-server users.
Type: list of (one of “autoApprove”, “autoApprove4k”, “autoApprove4kMovie”, “autoApprove4kTv”, “autoApproveMovie”, “autoApproveTv”, “autoRequest”, “autoRequestMovie”, “autoRequestTv”, “createIssues”, “recentView”, “request”, “request4k”, “requestAdvanced”, “requestMovie”, “requestTv”, “requestView”, “viewBlocklist”, “viewIssues”, “vote”, “watchlistView”)
Default:
[
"request"
]
Declared by:
- \
homelab.integrations.seerr.destinations¶
Named Sonarr and Radarr request destinations.
Type: attribute set of (submodule)
Default:
{ }
Declared by:
- \
homelab.integrations.seerr.destinations.\.enableSeasonFolders¶
Create Sonarr season folders.
Type: boolean
Default:
true
Declared by:
- \
homelab.integrations.seerr.destinations.\.extraSettings¶
Version-specific destination settings outside the stable typed interface.
Type: JSON value
Default:
{ }
Declared by:
- \
homelab.integrations.seerr.destinations.\.is4k¶
Mark this as a 4K destination.
Type: boolean
Default:
false
Declared by:
- \
homelab.integrations.seerr.destinations.\.isDefault¶
Use this as Seerr’s default destination for its media type.
Type: boolean
Default:
false
Declared by:
- \
homelab.integrations.seerr.destinations.\.manager¶
Named Sonarr or Radarr instance from homelab.integrations.servarr.
Type: string
Default:
"‹name›"
Declared by:
- \
homelab.integrations.seerr.destinations.\.minimumAvailability¶
Radarr minimum availability for new requests.
Type: one of “announced”, “inCinemas”, “released”, “preDB”
Default:
"released"
Declared by:
- \
homelab.integrations.seerr.destinations.\.name¶
Stable Seerr destination name.
Type: string
Default:
"‹name›"
Declared by:
- \
homelab.integrations.seerr.destinations.\.preventSearch¶
Add requests without starting an automatic search.
Type: boolean
Default:
false
Declared by:
- \
homelab.integrations.seerr.destinations.\.qualityProfile¶
Exact quality profile name exposed by the referenced manager.
Type: string
Declared by:
- \
homelab.integrations.seerr.destinations.\.rootFolder¶
Named root folder in the referenced manager declaration.
Type: string
Declared by:
- \
homelab.integrations.seerr.destinations.\.syncEnabled¶
Synchronize manager state into Seerr.
Type: boolean
Default:
true
Declared by:
- \
homelab.integrations.seerr.extraMainSettings¶
Version-specific Seerr main settings outside the stable typed interface.
Type: JSON value
Default:
{ }
Declared by:
- \
homelab.integrations.seerr.extraNotificationSettings¶
Version-specific Seerr notification settings.
Type: JSON value
Default:
{ }
Declared by:
- \
homelab.integrations.seerr.jellyfin.email¶
Initial Seerr administrator email.
Type: string
Declared by:
- \
homelab.integrations.seerr.jellyfin.hostname¶
Jellyfin host reachable from Seerr.
Type: string
Default:
"127.0.0.1"
Declared by:
- \
homelab.integrations.seerr.jellyfin.libraries¶
Declared Jellyfin library names enabled in Seerr.
Type: list of string
Default:
[ ]
Declared by:
- \
homelab.integrations.seerr.jellyfin.port¶
Jellyfin port reachable from Seerr.
Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Default:
8096
Declared by:
- \
homelab.integrations.seerr.jellyfin.urlBase¶
Jellyfin URL base.
Type: string
Default:
""
Declared by:
- \
homelab.integrations.seerr.jellyfin.useSsl¶
Use TLS for Seerr’s Jellyfin connection.
Type: boolean
Default:
false
Declared by:
- \
homelab.integrations.seerr.mode¶
Bootstrap preserves existing destinations; managed updates declared fields.
Type: one of “bootstrap”, “managed”
Default:
"bootstrap"
Declared by:
- \
homelab.integrations.seerr.quotas.movie¶
Default movie request quota.
Type: null or (submodule)
Default:
null
Declared by:
- \
homelab.integrations.seerr.quotas.movie.days¶
Rolling quota window in days.
Type: positive integer, meaning >0
Declared by:
- \
homelab.integrations.seerr.quotas.movie.limit¶
Maximum requests during the quota window; zero disables requests of this type.
Type: unsigned integer, meaning >=0
Declared by:
- \
homelab.integrations.seerr.quotas.tv¶
Default television request quota.
Type: null or (submodule)
Default:
null
Declared by:
- \
homelab.integrations.seerr.quotas.tv.days¶
Rolling quota window in days.
Type: positive integer, meaning >0
Declared by:
- \
homelab.integrations.seerr.quotas.tv.limit¶
Maximum requests during the quota window; zero disables requests of this type.
Type: unsigned integer, meaning >=0
Declared by:
- \
homelab.integrations.seerr.url¶
Seerr API base URL.
Type: string
Declared by:
- \
homelab.integrations.servarr¶
Independently named Sonarr, Radarr and Lidarr API instances.
Type: attribute set of (submodule)
Default:
{ }
Declared by:
- \
homelab.integrations.servarr.\.after¶
Additional prerequisite units for this instance.
Type: list of string
Default:
[ ]
Declared by:
- \
homelab.integrations.servarr.\.apiKeyFile¶
Runtime API-key file for this instance.
Type: string matching the pattern /[A-Za-z0-9_./-]+
Declared by:
- \
homelab.integrations.servarr.\.downloadClients¶
References to reusable download-client declarations with unique categories.
Type: attribute set of (submodule)
Default:
{ }
Declared by:
- \
homelab.integrations.servarr.\.downloadClients.\.enable¶
Whether the manager may send jobs to this client.
Type: boolean
Default:
true
Declared by:
- \
homelab.integrations.servarr.\.downloadClients.\.category¶
Unique queue category for this manager workflow.
Type: string matching the pattern [A-Za-z0-9][A-Za-z0-9._/-]*
Declared by:
- \
homelab.integrations.servarr.\.downloadClients.\.client¶
Name of a declaration in homelab.integrations.downloadClients.
Type: string
Default:
"‹name›"
Declared by:
- \
homelab.integrations.servarr.\.downloadClients.\.priority¶
Manager-side client priority; lower values are preferred.
Type: integer between 1 and 50 (both inclusive)
Default:
1
Declared by:
- \
homelab.integrations.servarr.\.downloadClients.\.removeCompletedDownloads¶
Allow the manager to remove completed client jobs.
Type: boolean
Default:
false
Declared by:
- \
homelab.integrations.servarr.\.downloadClients.\.removeFailedDownloads¶
Allow the manager to remove failed client jobs.
Type: boolean
Default:
false
Declared by:
- \
homelab.integrations.servarr.\.downloadClients.\.savePath¶
Local qBittorrent category path; defaults below the shared torrent root.
Type: null or string matching the pattern /[A-Za-z0-9_./-]+
Default:
null
Declared by:
- \
homelab.integrations.servarr.\.extraResources¶
Unsupported schema-checked Arr resources for forward compatibility.
Type: list of (JSON value)
Default:
[ ]
Declared by:
- \
homelab.integrations.servarr.\.extraSettings¶
Unsupported manager settings for forward compatibility.
Type: JSON value
Default:
{ }
Declared by:
- \
homelab.integrations.servarr.\.installApiKey¶
Install this key into the one local native service of the same kind.
Type: boolean
Default:
false
Declared by:
- \
homelab.integrations.servarr.\.kind¶
Servarr application represented by this independently named instance.
Type: one of “sonarr”, “radarr”, “lidarr”
Declared by:
- \
homelab.integrations.servarr.\.mode¶
Bootstrap preserves existing matches; managed updates declared fields. Neither deletes resources.
Type: one of “bootstrap”, “managed”
Default:
"bootstrap"
Declared by:
- \
homelab.integrations.servarr.\.notifications¶
Names from homelab.integrations.notifications reconciled into this instance.
Type: list of string
Default:
[ ]
Declared by:
- \
homelab.integrations.servarr.\.rootFolders¶
Named library roots, matched by their stable absolute paths.
Type: attribute set of (submodule)
Default:
{ }
Declared by:
- \
homelab.integrations.servarr.\.rootFolders.\.extraSettings¶
Schema-checked root fields, such as Lidarr’s named profile lookups.
Type: JSON value
Default:
{ }
Declared by:
- \
homelab.integrations.servarr.\.rootFolders.\.path¶
Stable absolute library root registered with the manager.
Type: string matching the pattern /[A-Za-z0-9_./-]+
Declared by:
- \
homelab.integrations.servarr.\.settings.downloadHandling¶
Typed completed-download and retry policy.
Type: submodule
Default:
{ }
Declared by:
- \
homelab.integrations.servarr.\.settings.downloadHandling.enableCompletedDownloadHandling¶
Import completed downloads automatically.
Type: null or boolean
Default:
null
Declared by:
- \
homelab.integrations.servarr.\.settings.downloadHandling.autoRedownloadFailed¶
Automatically search again after a failed download.
Type: null or boolean
Default:
null
Declared by:
- \
homelab.integrations.servarr.\.settings.downloadHandling.autoRedownloadFailedFromInteractiveSearch¶
Automatically search again after a failed interactive download.
Type: null or boolean
Default:
null
Declared by:
- \
homelab.integrations.servarr.\.settings.mediaManagement¶
Typed storage and import policy supported by the pinned managers.
Type: submodule
Default:
{ }
Declared by:
- \
homelab.integrations.servarr.\.settings.mediaManagement.enableMediaInfo¶
Read media information during imports.
Type: null or boolean
Default:
null
Declared by:
- \
homelab.integrations.servarr.\.settings.mediaManagement.allowFingerprinting¶
Lidarr audio fingerprint policy.
Type: null or one of “allFiles”, “newFiles”, “never”
Default:
null
Declared by:
- \
homelab.integrations.servarr.\.settings.mediaManagement.autoRenameFolders¶
Radarr folder rename policy.
Type: null or boolean
Default:
null
Declared by:
- \
homelab.integrations.servarr.\.settings.mediaManagement.autoUnmonitorPreviouslyDownloadedEpisodes¶
Sonarr unmonitor policy.
Type: null or boolean
Default:
null
Declared by:
- \
homelab.integrations.servarr.\.settings.mediaManagement.autoUnmonitorPreviouslyDownloadedMovies¶
Radarr unmonitor policy.
Type: null or boolean
Default:
null
Declared by:
- \
homelab.integrations.servarr.\.settings.mediaManagement.autoUnmonitorPreviouslyDownloadedTracks¶
Lidarr unmonitor policy.
Type: null or boolean
Default:
null
Declared by:
- \
homelab.integrations.servarr.\.settings.mediaManagement.chmodFolder¶
Permission mode used when permission management is enabled.
Type: null or string
Default:
null
Declared by:
- \
homelab.integrations.servarr.\.settings.mediaManagement.chownGroup¶
Group used when permission management is enabled.
Type: null or string
Default:
null
Declared by:
- \
homelab.integrations.servarr.\.settings.mediaManagement.copyUsingHardlinks¶
Prefer hardlinks when downloads and libraries share a filesystem.
Type: null or boolean
Default:
null
Declared by:
- \
homelab.integrations.servarr.\.settings.mediaManagement.createEmptyArtistFolders¶
Lidarr empty-artist-folder policy.
Type: null or boolean
Default:
null
Declared by:
- \
homelab.integrations.servarr.\.settings.mediaManagement.createEmptyMovieFolders¶
Radarr empty-movie-folder policy.
Type: null or boolean
Default:
null
Declared by:
- \
homelab.integrations.servarr.\.settings.mediaManagement.createEmptySeriesFolders¶
Sonarr empty-series-folder policy.
Type: null or boolean
Default:
null
Declared by:
- \
homelab.integrations.servarr.\.settings.mediaManagement.deleteEmptyFolders¶
Remove empty library directories after import.
Type: null or boolean
Default:
null
Declared by:
- \
homelab.integrations.servarr.\.settings.mediaManagement.downloadPropersAndRepacks¶
Policy for proper and repack releases.
Type: null or one of “preferAndUpgrade”, “doNotUpgrade”, “doNotPrefer”
Default:
null
Declared by:
- \
homelab.integrations.servarr.\.settings.mediaManagement.episodeTitleRequired¶
Sonarr episode-title requirement.
Type: null or one of “always”, “bulkSeasonReleases”, “never”
Default:
null
Declared by:
- \
homelab.integrations.servarr.\.settings.mediaManagement.extraFileExtensions¶
Comma-separated extra file extensions accepted by Servarr.
Type: null or string
Default:
null
Declared by:
- \
homelab.integrations.servarr.\.settings.mediaManagement.fileDate¶
Upstream file timestamp policy.
Type: null or string
Default:
null
Declared by:
- \
homelab.integrations.servarr.\.settings.mediaManagement.importExtraFiles¶
Import declared non-media file extensions.
Type: null or boolean
Default:
null
Declared by:
- \
homelab.integrations.servarr.\.settings.mediaManagement.minimumFreeSpaceWhenImporting¶
Minimum free space in MiB before import.
Type: null or (unsigned integer, meaning >=0)
Default:
null
Declared by:
- \
homelab.integrations.servarr.\.settings.mediaManagement.pathsDefaultStatic¶
Radarr static-path default.
Type: null or boolean
Default:
null
Declared by:
- \
homelab.integrations.servarr.\.settings.mediaManagement.recycleBin¶
Directory receiving deleted or upgraded media.
Type: null or string matching the pattern /[A-Za-z0-9_./-]+
Default:
null
Declared by:
- \
homelab.integrations.servarr.\.settings.mediaManagement.recycleBinCleanupDays¶
Days to retain items in the recycle directory.
Type: null or (unsigned integer, meaning >=0)
Default:
null
Declared by:
- \
homelab.integrations.servarr.\.settings.mediaManagement.rescanAfterRefresh¶
When to rescan files after a metadata refresh.
Type: null or one of “always”, “afterManual”, “never”
Default:
null
Declared by:
- \
homelab.integrations.servarr.\.settings.mediaManagement.scriptImportPath¶
Absolute operator-supplied import script path.
Type: null or string matching the pattern /[A-Za-z0-9_./-]+
Default:
null
Declared by:
- \
homelab.integrations.servarr.\.settings.mediaManagement.setPermissionsLinux¶
Let the manager chmod imported files.
Type: null or boolean
Default:
null
Declared by:
- \
homelab.integrations.servarr.\.settings.mediaManagement.skipFreeSpaceCheckWhenImporting¶
Skip the import free-space guard.
Type: null or boolean
Default:
null
Declared by:
- \
homelab.integrations.servarr.\.settings.mediaManagement.useScriptImport¶
Use an operator-supplied import script.
Type: null or boolean
Default:
null
Declared by:
- \
homelab.integrations.servarr.\.settings.mediaManagement.watchLibraryForChanges¶
Lidarr library watcher policy.
Type: null or boolean
Default:
null
Declared by:
- \
homelab.integrations.servarr.\.settings.naming¶
Typed service-specific naming templates.
Type: submodule
Default:
{ }
Declared by:
- \
homelab.integrations.servarr.\.settings.naming.animeEpisodeFormat¶
Sonarr anime episode template.
Type: null or string
Default:
null
Declared by:
- \
homelab.integrations.servarr.\.settings.naming.artistFolderFormat¶
Lidarr artist directory template.
Type: null or string
Default:
null
Declared by:
- \
homelab.integrations.servarr.\.settings.naming.colonReplacementFormat¶
Upstream colon replacement style.
Type: null or signed integer
Default:
null
Declared by:
- \
homelab.integrations.servarr.\.settings.naming.customColonReplacementFormat¶
Custom replacement used for colons.
Type: null or string
Default:
null
Declared by:
- \
homelab.integrations.servarr.\.settings.naming.dailyEpisodeFormat¶
Sonarr daily episode template.
Type: null or string
Default:
null
Declared by:
- \
homelab.integrations.servarr.\.settings.naming.movieFolderFormat¶
Radarr movie directory template.
Type: null or string
Default:
null
Declared by:
- \
homelab.integrations.servarr.\.settings.naming.multiDiscTrackFormat¶
Lidarr multidisc track template.
Type: null or string
Default:
null
Declared by:
- \
homelab.integrations.servarr.\.settings.naming.multiEpisodeStyle¶
Sonarr multi-episode naming style.
Type: null or signed integer
Default:
null
Declared by:
- \
homelab.integrations.servarr.\.settings.naming.renameEpisodes¶
Rename imported Sonarr episodes.
Type: null or boolean
Default:
null
Declared by:
- \
homelab.integrations.servarr.\.settings.naming.renameMovies¶
Rename imported Radarr movies.
Type: null or boolean
Default:
null
Declared by:
- \
homelab.integrations.servarr.\.settings.naming.renameTracks¶
Rename imported Lidarr tracks.
Type: null or boolean
Default:
null
Declared by:
- \
homelab.integrations.servarr.\.settings.naming.replaceIllegalCharacters¶
Replace filesystem-invalid characters.
Type: null or boolean
Default:
null
Declared by:
- \
homelab.integrations.servarr.\.settings.naming.seasonFolderFormat¶
Sonarr season directory template.
Type: null or string
Default:
null
Declared by:
- \
homelab.integrations.servarr.\.settings.naming.seriesFolderFormat¶
Sonarr series directory template.
Type: null or string
Default:
null
Declared by:
- \
homelab.integrations.servarr.\.settings.naming.specialsFolderFormat¶
Sonarr specials directory template.
Type: null or string
Default:
null
Declared by:
- \
homelab.integrations.servarr.\.settings.naming.standardEpisodeFormat¶
Sonarr standard episode template.
Type: null or string
Default:
null
Declared by:
- \
homelab.integrations.servarr.\.settings.naming.standardMovieFormat¶
Radarr movie filename template.
Type: null or string
Default:
null
Declared by:
- \
homelab.integrations.servarr.\.settings.naming.standardTrackFormat¶
Lidarr track filename template.
Type: null or string
Default:
null
Declared by:
- \
homelab.integrations.servarr.\.tags¶
Manager tags to create if absent. Undeclared tags are preserved.
Type: list of string matching the pattern [A-Za-z0-9][A-Za-z0-9._ -]*
Default:
[ ]
Declared by:
- \
homelab.integrations.servarr.\.url¶
Loopback HTTP or remote HTTPS API base URL.
Type: string
Declared by:
- \
homelab.operations.enable¶
Whether to enable an inventory of application state and optional operational integrations.
Type: boolean
Default:
false
Example:
true
Declared by:
- \
homelab.operations.access.enable¶
Whether to enable private HTTPS access with native Caddy and Authelia.
Type: boolean
Default:
false
Example:
true
Declared by:
- \
homelab.operations.access.allowedInterfaces¶
Host interfaces on which to allow HTTPS; empty keeps remote firewall closed.
Type: list of string
Default:
[ ]
Declared by:
- \
homelab.operations.access.backends¶
Browser-compatible protected services. Native app authentication remains enabled; applications with non-browser clients need separate compatibility validation.
Type: attribute set of (submodule)
Default:
{ }
Declared by:
- \
homelab.operations.access.backends.\.policy¶
Authentication policy; two-factor enrollment is the default.
Type: one of “one_factor”, “two_factor”
Default:
"two_factor"
Declared by:
- \
homelab.operations.access.backends.\.port¶
Loopback-only backend HTTP port.
Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Declared by:
- \
homelab.operations.access.backends.\.subjects¶
Authelia subjects, such as group:media; empty permits any authenticated user meeting the policy.
Type: list of string
Default:
[ ]
Declared by:
- \
homelab.operations.access.backends.\.unit¶
Existing backend systemd service name without .service; coupled to the ingress guard for fail-closed shutdown.
Type: string matching the pattern [A-Za-z0-9_-]+
Default:
"‹name›"
Declared by:
- \
homelab.operations.access.bindAddress¶
Private host IPv4 address for HTTPS. The host owns address assignment and DNS.
Type: string matching the pattern [0-9.]+
Default:
"127.0.0.1"
Declared by:
- \
homelab.operations.access.certificateFile¶
User-provided certificate chain with the required DNS names.
Type: null or string matching the pattern /[A-Za-z0-9_./-]+
Default:
null
Declared by:
- \
homelab.operations.access.domain¶
Host-owned private DNS/cookie domain; certificates must cover portal and backend hostnames.
Type: string matching the pattern [a-z0-9][a-z0-9.-]+
Default:
"homelab.home.arpa"
Declared by:
- \
homelab.operations.access.jwtSecretFile¶
nix-seal identity-validation secret.
Type: null or string matching the pattern /[A-Za-z0-9_./-]+
Default:
null
Declared by:
- \
homelab.operations.access.keyFile¶
User-provided nix-seal TLS private key.
Type: null or string matching the pattern /[A-Za-z0-9_./-]+
Default:
null
Declared by:
- \
homelab.operations.access.portal¶
Authentication portal subdomain.
Type: string matching the pattern [a-z0-9][a-z0-9-]*
Default:
"auth"
Declared by:
- \
homelab.operations.access.sessionSecretFile¶
nix-seal session secret.
Type: null or string matching the pattern /[A-Za-z0-9_./-]+
Default:
null
Declared by:
- \
homelab.operations.access.storageEncryptionKeyFile¶
nix-seal persistent identity-storage encryption key; retain with recovery material.
Type: null or string matching the pattern /[A-Za-z0-9_./-]+
Default:
null
Declared by:
- \
homelab.operations.access.usersFile¶
nix-seal Authelia YAML user database with Argon2id password hashes and group membership; updates require service restart.
Type: null or string matching the pattern /[A-Za-z0-9_./-]+
Default:
null
Declared by:
- \
homelab.operations.arrPostgresql.migratedServices¶
Services whose existing SQLite state has been migrated and validated by the operator. This removes the startup guard; it never migrates or deletes data.
Type: list of (one of “sonarr”, “radarr”, “lidarr”, “prowlarr”)
Default:
[ ]
Declared by:
- \
homelab.operations.arrPostgresql.services¶
Explicitly selected Arr services using local PostgreSQL over peer-authenticated Unix sockets. Empty keeps native SQLite defaults.
Type: list of (one of “sonarr”, “radarr”, “lidarr”, “prowlarr”)
Default:
[ ]
Declared by:
- \
homelab.operations.backup.job¶
Existing root-owned native Restic job to extend; host supplies repository, password, schedule and retention.
Type: null or string matching the pattern [A-Za-z0-9_-]+
Default:
null
Declared by:
- \
homelab.operations.backup.stagingDir¶
Private staging on a filesystem with room for application state. Writers stop only during this local copy.
Type: string matching the pattern /[A-Za-z0-9_./-]+
Default:
"/var/lib/homelab-recovery"
Declared by:
- \
homelab.operations.dashboard.enable¶
Whether to enable a private Homepage view of inventory endpoints.
Type: boolean
Default:
false
Example:
true
Declared by:
- \
homelab.operations.endpoints¶
Host-visible health and dashboard endpoints. Keep credentials in Gatus environment files, never URLs.
Type: attribute set of (submodule)
Default:
{ }
Declared by:
- \
homelab.operations.endpoints.\.enable¶
Include this endpoint in generated operations views.
Type: boolean
Default:
true
Declared by:
- \
homelab.operations.endpoints.\.conditions¶
Gatus health conditions; select an application health API where available.
Type: list of string
Default:
[
"[STATUS] == 200"
]
Declared by:
- \
homelab.operations.endpoints.\.description¶
Dashboard description.
Type: string
Default:
"‹name›"
Declared by:
- \
homelab.operations.endpoints.\.healthUrl¶
Health probe URL, separate from the browser dashboard link.
Type: string matching the pattern https?://[A-Za-z0-9:._/-]+
Default:
config.url
Declared by:
- \
homelab.operations.endpoints.\.monitor¶
Create a Gatus probe as well as a dashboard link. Disable when authentication or API semantics require a host-owned check.
Type: boolean
Default:
true
Declared by:
- \
homelab.operations.endpoints.\.url¶
Credential-free URL reachable from the host.
Type: string matching the pattern https?://[A-Za-z0-9:._/-]+
Declared by:
- \
homelab.operations.monitoring.enable¶
Whether to enable Gatus checks generated from the endpoint inventory.
Type: boolean
Default:
false
Example:
true
Declared by:
- \
homelab.operations.monitoring.alerts¶
Native Gatus alert types for generated endpoints; configure their providers under services.gatus.settings.alerting.
Type: list of string
Default:
[ ]
Declared by:
- \
homelab.operations.monitoring.health.enable¶
Publish private backup, storage and job health when monitoring is enabled.
Type: boolean
Default:
true
Declared by:
- \
homelab.operations.monitoring.health.backupMaxAgeSeconds¶
Maximum age of a fully successful Restic unit before health fails.
Type: positive integer, meaning >0
Default:
129600
Declared by:
- \
homelab.operations.monitoring.health.port¶
Loopback-only operational health port.
Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Default:
9086
Declared by:
- \
homelab.operations.monitoring.health.pressureMaxAgeSeconds¶
Maximum pressure-marker age; increase when overriding the native pressure timer interval.
Type: positive integer, meaning >0
Default:
180
Declared by:
- \
homelab.operations.monitoring.health.vpnDnsProbeHost¶
Public hostname resolved inside the VPN namespace by homelab-doctor.
Type: string matching the pattern [A-Za-z0-9.-]+
Default:
"example.com"
Declared by:
- \
homelab.operations.monitoring.health.vpnMaxHandshakeAgeSeconds¶
Maximum age of the newest WireGuard peer handshake accepted by homelab-doctor.
Type: positive integer, meaning >0
Default:
180
Declared by:
- \
homelab.operations.notifications.enable¶
Whether to enable private deny-by-default ntfy notifications.
Type: boolean
Default:
false
Example:
true
Declared by:
- \
homelab.operations.notifications.environmentFile¶
nix-seal EnvironmentFile containing NTFY_AUTH_USERS and NTFY_AUTH_ACCESS declarations and optional tokens.
Type: null or string matching the pattern /[A-Za-z0-9_./-]+
Default:
null
Declared by:
- \
homelab.operations.paperlessDatabase¶
Declare PostgreSQL explicitly when Paperless selects its database through a private environment file; native public DBHOST is detected.
Type: one of “sqlite”, “postgresql”
Default:
"sqlite"
Declared by:
- \
homelab.operations.postgresql¶
Explicit logical database exports included in the stopped-writer recovery copy. Local exports use PostgreSQL peer authentication; remote exports require a runtime pgpass file.
Type: attribute set of (submodule)
Default:
{ }
Declared by:
- \
homelab.operations.postgresql.\.caFile¶
Trusted CA bundle for remote PostgreSQL verify-full TLS. Override with the host’s private CA when needed.
Type: string matching the pattern /[A-Za-z0-9_./-]+
Default:
"/nix/store/biiabd2fcxdxmy0f99r7i88nziqdqsy6-nss-cacert-3.126/etc/ssl/certs/ca-bundle.crt"
Declared by:
- \
homelab.operations.postgresql.\.database¶
Existing database to export.
Type: string matching the pattern [A-Za-z0-9_-]+
Default:
"‹name›"
Declared by:
- \
homelab.operations.postgresql.\.host¶
Socket directory or trusted PostgreSQL hostname.
Type: string matching the pattern [A-Za-z0-9_./:-]+
Default:
"/run/postgresql"
Declared by:
- \
homelab.operations.postgresql.\.local¶
Use the local postgres operating-system account and peer authentication.
Type: boolean
Default:
true
Declared by:
- \
homelab.operations.postgresql.\.passwordFile¶
nix-seal pgpass file for a remote database, loaded through systemd credentials during backup.
Type: null or string matching the pattern /[A-Za-z0-9_./-]+
Default:
null
Declared by:
- \
homelab.operations.postgresql.\.port¶
PostgreSQL port.
Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Default:
5432
Declared by:
- \
homelab.operations.postgresql.\.user¶
Export/restore database login.
Type: string matching the pattern [A-Za-z0-9_-]+
Default:
"postgres"
Declared by:
- \
homelab.operations.pressure.enable¶
Whether to enable download pausing with filesystem headroom and hysteresis.
Type: boolean
Default:
false
Example:
true
Declared by:
- \
homelab.operations.pressure.clients¶
qBittorrent v5 and/or SABnzbd APIs. qBittorrent credentials are a JSON username/password object; SABnzbd uses a raw API key file.
Type: attribute set of (submodule)
Default:
{ }
Declared by:
- \
homelab.operations.pressure.clients.\.credentialsFile¶
User-provided nix-seal runtime file, loaded with systemd credentials.
Type: string matching the pattern /[A-Za-z0-9_./-]+
Declared by:
- \
homelab.operations.pressure.clients.\.url¶
Trusted private API origin, including an optional base path.
Type: string matching the pattern https?://[A-Za-z0-9:._/-]+
Declared by:
- \
homelab.operations.pressure.path¶
Existing directory on the filesystem whose available space is measured.
Type: string matching the pattern /[A-Za-z0-9_./-]+
Default:
"/srv/media/downloads"
Declared by:
- \
homelab.operations.pressure.pauseBytes¶
Pause below these available bytes; tune for unpacking and backup headroom.
Type: positive integer, meaning >0
Default:
42949672960
Declared by:
- \
homelab.operations.pressure.requiredMounts¶
Mountpoints that must exist; absence forces the pause policy.
Type: list of string matching the pattern /[A-Za-z0-9_./-]+
Default:
[ ]
Declared by:
- \
homelab.operations.pressure.resumeBytes¶
Resume owned pauses only above this free-space threshold.
Type: positive integer, meaning >0
Default:
64424509440
Declared by:
- \
homelab.operations.state¶
State directories and every writer to stop for a consistent copy. Override entries when external databases or queue paths are used. Media and secret catalogs are separate host backup decisions.
Type: attribute set of (submodule)
Default:
{ }
Declared by:
- \
homelab.operations.state.\.paths¶
Persistent directories; DynamicUser symlinks are resolved during staging.
Type: list of string matching the pattern /[A-Za-z0-9_./-]+
Default:
[ ]
Declared by:
- \
homelab.operations.state.\.prepareCommand¶
Host export command run after all writers stop and before state copies. A failure aborts staging and restarts writers. Read secrets from runtime files.
Type: null or strings concatenated with “\n”
Default:
null
Declared by:
- \
homelab.operations.state.\.units¶
All systemd writers and timer triggers for these directories.
Type: list of string matching the pattern [A-Za-z0-9_@.:-]+\.(service|timer)
Default:
[ ]
Declared by:
- \
homelab.optional.apps.adguardhome.enable¶
Whether to enable adguardhome with private homelab defaults.
Type: boolean
Default:
false
Example:
true
Declared by:
- \
homelab.optional.apps.autobrr.enable¶
Whether to enable autobrr with private homelab defaults.
Type: boolean
Default:
false
Example:
true
Declared by:
- \
homelab.optional.apps.cross-seed.enable¶
Whether to enable cross-seed with private homelab defaults.
Type: boolean
Default:
false
Example:
true
Declared by:
- \
homelab.optional.apps.flaresolverr.enable¶
Whether to enable flaresolverr with private homelab defaults.
Type: boolean
Default:
false
Example:
true
Declared by:
- \
homelab.optional.apps.immich.enable¶
Whether to enable immich with private homelab defaults.
Type: boolean
Default:
false
Example:
true
Declared by:
- \
homelab.optional.apps.karakeep.enable¶
Whether to enable karakeep with private homelab defaults.
Type: boolean
Default:
false
Example:
true
Declared by:
- \
homelab.optional.apps.kavita.enable¶
Whether to enable kavita with private homelab defaults.
Type: boolean
Default:
false
Example:
true
Declared by:
- \
homelab.optional.apps.komga.enable¶
Whether to enable komga with private homelab defaults.
Type: boolean
Default:
false
Example:
true
Declared by:
- \
homelab.optional.apps.maintainerr.enable¶
Whether to enable maintainerr with private homelab defaults.
Type: boolean
Default:
false
Example:
true
Declared by:
- \
homelab.optional.apps.paperless.enable¶
Whether to enable paperless with private homelab defaults.
Type: boolean
Default:
false
Example:
true
Declared by:
- \
homelab.optional.apps.pinchflat.enable¶
Whether to enable pinchflat with private homelab defaults.
Type: boolean
Default:
false
Example:
true
Declared by:
- \
homelab.optional.apps.scrutiny.enable¶
Whether to enable scrutiny with private homelab defaults.
Type: boolean
Default:
false
Example:
true
Declared by:
- \
homelab.optional.apps.shelfmark.enable¶
Whether to enable shelfmark with private homelab defaults.
Type: boolean
Default:
false
Example:
true
Declared by:
- \
homelab.optional.apps.syncthing.enable¶
Whether to enable syncthing with private homelab defaults.
Type: boolean
Default:
false
Example:
true
Declared by:
- \
homelab.optional.apps.unpackerr.enable¶
Whether to enable unpackerr with private homelab defaults.
Type: boolean
Default:
false
Example:
true
Declared by:
- \
homelab.optional.karakeep.package¶
The karakeep package to use.
Type: package
Default:
pkgs.karakeep
Declared by:
- \
homelab.optional.karakeep.browserPort¶
Loopback Chrome DevTools port used by Karakeep workers.
Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Default:
9222
Declared by:
- \
homelab.optional.karakeep.browserUid¶
Dedicated headless-browser UID, used numerically by the browser firewall rule.
Type: positive integer, meaning >0
Default:
62463
Declared by:
- \
homelab.optional.karakeep.environmentFile¶
Optional runtime environment file for provider credentials. Karakeep and Meilisearch authentication variables are module-owned.
Type: null or string matching the pattern /[A-Za-z0-9_./-]+
Default:
null
Declared by:
- \
homelab.optional.karakeep.extraEnvironment¶
Non-secret Karakeep environment variables that do not change module-owned topology or authentication.
Type: attribute set of string
Default:
{ }
Declared by:
- \
homelab.optional.karakeep.port¶
Loopback port for the Karakeep web interface.
Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Default:
5337
Declared by:
- \
homelab.optional.karakeep.uid¶
Dedicated Karakeep service UID, used numerically by the browser firewall rule.
Type: positive integer, meaning >0
Default:
62462
Declared by:
- \
homelab.optional.maintainerr.package¶
The maintainerr package to use.
Type: package
Default:
pkgs.maintainerr
Declared by:
- \
homelab.optional.maintainerr.backendPort¶
Loopback service port, restricted to nginx, root and the Maintainerr account by nftables.
Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Default:
6247
Declared by:
- \
homelab.optional.maintainerr.htpasswdFile¶
User-provided nix-seal htpasswd file for HTTP Basic authentication. Use TLS when exposing the proxy beyond loopback.
Type: null or string matching the pattern /[A-Za-z0-9_./-]+
Default:
null
Declared by:
- \
homelab.optional.maintainerr.port¶
Authenticated loopback proxy port.
Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Default:
6246
Declared by:
- \
homelab.optional.maintainerr.uid¶
Dedicated service UID; choose an unused host UID. Used numerically in the firewall ruleset.
Type: positive integer, meaning >0
Default:
62460
Declared by:
- \
homelab.optional.quality.enable¶
Whether to enable a conservative, locally declared Recyclarr 1080p profile.
Type: boolean
Default:
false
Example:
true
Declared by:
- \
homelab.optional.quality.radarrApiKeyFile¶
User-provided runtime Radarr API key. Null leaves Radarr unmanaged.
Type: null or string matching the pattern /[^ ]+
Default:
null
Declared by:
- \
homelab.optional.quality.sonarrApiKeyFile¶
User-provided runtime Sonarr API key. Null leaves Sonarr unmanaged.
Type: null or string matching the pattern /[^ ]+
Default:
null
Declared by:
- \
homelab.profiles.desktop.enable¶
Whether to enable lower media background CPU and I/O priority on a shared desktop.
Type: boolean
Default:
false
Example:
true
Declared by:
- \
homelab.profiles.media.enable¶
Whether to enable Jellyfin, Seerr, Sonarr, Radarr, Bazarr, Prowlarr and confined qBittorrent.
Type: boolean
Default:
false
Example:
true
Declared by:
- \
homelab.readiness.enable¶
Whether to enable strict checks that reject enabled applications without their production credentials, configuration ownership, recovery, and monitoring contracts .
Type: boolean
Default:
false
Example:
true
Declared by:
- \
homelab.readiness.checks.*.assertion¶
Whether this production-readiness condition is satisfied.
Type: boolean
Declared by:
- \
homelab.readiness.checks.*.message¶
Actionable failure message for an unsatisfied readiness condition.
Type: string
Declared by:
- \
homelab.readiness.hostManaged¶
Applications whose account, provider, hardware, client, or destructive policy was configured and tested by the consuming host. Listing a name records responsibility; it does not make the setup safe by itself.
Type: list of (one of “adguardhome”, “audiobookshelf”, “autobrr”, “bazarr”, “cross-seed”, “flaresolverr”, “immich”, “jellyfin”, “karakeep”, “kavita”, “komga”, “lidarr”, “maintainerr”, “navidrome”, “nzbget”, “paperless”, “pinchflat”, “plex”, “prowlarr”, “qbittorrent”, “radarr”, “sabnzbd”, “scrutiny”, “seerr”, “shelfmark”, “sonarr”, “syncthing”, “unpackerr”)
Default:
[ ]
Declared by:
- \
homelab.storage.enable¶
Whether to enable shared media storage.
Type: boolean
Default:
false
Example:
true
Declared by:
- \
homelab.storage.downloadsDir¶
Downloads root, on the same filesystem as the library for hardlinks.
Type: string matching the pattern /[A-Za-z0-9_./-]+
Default:
"${config.homelab.storage.rootDir}/downloads"
Declared by:
- \
homelab.storage.group¶
Supplementary group shared by media services; state keeps each service’s own group.
Type: string matching the pattern [a-z_][a-z0-9_-]*
Default:
"media"
Declared by:
- \
homelab.storage.libraryDir¶
Library root. Avoid separate mounts for downloads and libraries.
Type: string matching the pattern /[A-Za-z0-9_./-]+
Default:
"${config.homelab.storage.rootDir}/library"
Declared by:
- \
homelab.storage.requiredMounts¶
Actual media mount points. Start fails when absent, preventing fallback writes onto the root disk.
Type: list of string matching the pattern /[A-Za-z0-9_./-]+
Default:
[ ]
Example:
[
"/mnt/homelab"
]
Declared by:
- \
homelab.storage.rootDir¶
Media root on one filesystem. State databases remain on the system disk.
Type: string matching the pattern /[A-Za-z0-9_./-]+
Default:
"/srv/media"
Declared by:
- \
homelab.vpn.enable¶
Whether to enable WireGuard confinement for selected homelab services.
Type: boolean
Default:
false
Example:
true
Declared by:
- \
homelab.vpn.inboundPorts.tcp¶
TCP ports accepted from the tunnel. The VPN provider must forward these ports separately.
Type: list of 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Default:
[ ]
Declared by:
- \
homelab.vpn.inboundPorts.udp¶
UDP ports accepted from the tunnel. The VPN provider must forward these ports separately.
Type: list of 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Default:
[ ]
Declared by:
- \
homelab.vpn.interface.addressIPv4¶
Provider-assigned tunnel IPv4 address, without a prefix length.
Type: null or string
Default:
null
Example:
"10.64.0.2"
Declared by:
- \
homelab.vpn.interface.addressIPv6¶
Provider-assigned tunnel IPv6 address, without a prefix length. Null disables namespace IPv6.
Type: null or string
Default:
null
Example:
"fd00::2"
Declared by:
- \
homelab.vpn.interface.dns¶
Literal resolver IPs reachable through the tunnel. DNS containment uses strict mode.
Type: list of string
Default:
[ ]
Example:
[
"10.64.0.1"
]
Declared by:
- \
homelab.vpn.interface.mtu¶
WireGuard MTU. Change only to match the provider or measured path MTU.
Type: integer between 1280 and 65535 (both inclusive)
Default:
1420
Declared by:
- \
homelab.vpn.interface.name¶
WireGuard interface name. Must be unique on the host.
Type: string
Default:
"wg0"
Declared by:
- \
homelab.vpn.interface.privateKeyFile¶
Absolute string path to a root-readable private key outside the Nix store.
Type: null or string
Default:
null
Example:
"/run/secrets/wireguard-private-key"
Declared by:
- \
homelab.vpn.namespace.bindAddress¶
Service address on the namespace side of the host link. Derived by vpn-confinement when enabled; loopback when disabled. This link permits host access to declared TCP ports without opening the host firewall.
Type: string (read only)
Default:
"127.0.0.1"
Declared by:
- \
homelab.vpn.namespace.hostIngressPorts.tcp¶
TCP ports published to the host. Enabled homelab services add their Web UI ports.
Type: list of 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Default:
[ ]
Declared by:
- \
homelab.vpn.namespace.name¶
Name of the namespace managed by nix-forge/vpn-confinement.
Type: string
Default:
"vpnapps"
Declared by:
- \
homelab.vpn.peer.endpointHost¶
Literal public IPv4 or IPv6 peer address. Hostnames are rejected to avoid host-side DNS.
Type: null or string
Default:
null
Declared by:
- \
homelab.vpn.peer.endpointPort¶
VPN peer’s WireGuard UDP port.
Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Default:
51820
Declared by:
- \
homelab.vpn.peer.persistentKeepalive¶
WireGuard keepalive interval in seconds. Zero disables keepalives.
Type: integer between 0 and 65535 (both inclusive)
Default:
25
Declared by:
- \
homelab.vpn.peer.presharedKeyFile¶
Optional absolute string path to a preshared key outside the Nix store.
Type: null or string
Default:
null
Declared by:
- \
homelab.vpn.peer.publicKey¶
VPN peer’s WireGuard public key.
Type: null or string
Default:
null
Declared by:
- \