Appendix A. All Options
-
shb.arr.bazarr -
Configuration for bazarr
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.bazarr.enable -
Whether to enable bazarr.
Type: boolean
Default:
falseExample:
trueDeclared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.bazarr.authEndpoint -
Endpoint to the SSO provider. Leave null to not have SSO configured.
Type: null or string
Default:
nullExample:
"https://authelia.example.com"Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.bazarr.backup -
Backup configuration.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.bazarr.backup.request -
Request part of the backup contract.
Options set by the requester module enforcing how to backup files.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.bazarr.backup.request.excludePatterns -
File patterns to exclude.
Type: list of string
Default:
[ ".db-shm" ".db-wal" ".mono" ]Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.bazarr.backup.request.hooks -
Hooks to run around the backup.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.bazarr.backup.request.hooks.afterBackup -
Hooks to run after backup.
Type: list of string
Default:
[ ]Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.bazarr.backup.request.hooks.beforeBackup -
Hooks to run before backup.
Type: list of string
Default:
[ ]Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.bazarr.backup.request.sourceDirectories -
Directories to backup.
Type: non-empty (list of string)
Default:
[ "/var/lib/bazarr" ]Example:
"/var/lib/vaultwarden"Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.bazarr.backup.request.user -
Unix user doing the backups.
Type: string
Default:
"bazarr"Example:
"vaultwarden"Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.bazarr.backup.result -
Result part of the backup contract.
Options set by the provider module that indicates the name of the backup and restore scripts.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.bazarr.backup.result.backupService -
Name of service backing up the database.
This script can be ran manually to backup the database:
$ systemctl start backup.serviceType: string
Default:
"backup.service"Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.bazarr.backup.result.restoreScript -
Name of script that can restore the database. One can then list snapshots with:
$ restore snapshots <snapshot 1> <metadata> <snapshot 2> <metadata>And restore the database with:
$ restore restore <snapshot 1>Type: string
Default:
"restore"Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.bazarr.dashboard -
Dashboard contract consumer
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.bazarr.dashboard.request -
Request part of the dashboard contract.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.bazarr.dashboard.request.externalUrl -
URL at which the service can be accessed.
This URL should go through the reverse proxy.
Type: string
Default:
"https://\${config.shb.arr.bazarr.subdomain}.\${config.shb.arr.bazarr.domain}"Example:
"https://jellyfin.example.com"Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.bazarr.dashboard.request.internalUrl -
URL at which the service can be accessed directly.
This URL should bypass the reverse proxy. It can be used for example to ping the service and making sure it is up and running correctly.
Type: null or string
Default:
"http://127.0.0.1:6767"Example:
"http://127.0.0.1:8081"Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.bazarr.dashboard.result -
Result part of the dashboard contract.
No option is provided here.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.bazarr.dataDir -
Directory where bazarr stores data.
Type: string
Default:
"/var/lib/bazarr"Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.bazarr.domain -
Domain under which bazarr will be served.
Type: string
Example:
"example.com"Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.bazarr.ldapUserGroup -
LDAP group a user must belong to be able to login.
Note that all users are admins too.
Type: string
Default:
"arr_user"Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.bazarr.settings -
Specific options for bazarr.
Type: open submodule of (XML value)
Default:
{ }Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.bazarr.settings.ApiKey -
Path to api key secret file.
Type: submodule
Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.bazarr.settings.ApiKey.source -
File containing the value.
Type: absolute path
Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.bazarr.settings.ApiKey.transform -
An optional function to transform the secret.
Type: raw value
Default:
nullExample:
v: "prefix-$${v}-suffix"Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.bazarr.settings.LogLevel -
Log level.
Type: one of “debug”, “info”
Default:
"info"Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.bazarr.settings.Port -
Port on which bazarr listens to incoming requests.
Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive) (read only)
Default:
6767Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.bazarr.ssl -
Path to SSL files
Type: null or (open submodule of anything)
Default:
nullDeclared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.bazarr.ssl.paths -
Paths where the files for the certificate will be located.
This option is the contract output of the
shb.certs.certsSSL block.Type: open submodule of anything
Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.bazarr.ssl.paths.cert -
Path to the cert file.
Type: absolute path
Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.bazarr.ssl.paths.key -
Path to the key file.
Type: absolute path
Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.bazarr.ssl.systemdService -
Systemd oneshot service used to generate the certificate. Ends with the
.servicesuffix.Use this if downstream services must wait for the certificates to be generated before starting.
Type: string
Example:
"cert-generator.service"Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.bazarr.subdomain -
Subdomain under which bazarr will be served.
Type: string
Example:
"bazarr"Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.jackett -
Configuration for jackett
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.jackett.enable -
Whether to enable jackett.
Type: boolean
Default:
falseExample:
trueDeclared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.jackett.authEndpoint -
Endpoint to the SSO provider. Leave null to not have SSO configured.
Type: null or string
Default:
nullExample:
"https://authelia.example.com"Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.jackett.backup -
Backup configuration.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.jackett.backup.request -
Request part of the backup contract.
Options set by the requester module enforcing how to backup files.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.jackett.backup.request.excludePatterns -
File patterns to exclude.
Type: list of string
Default:
[ ".db-shm" ".db-wal" ".mono" ]Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.jackett.backup.request.hooks -
Hooks to run around the backup.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.jackett.backup.request.hooks.afterBackup -
Hooks to run after backup.
Type: list of string
Default:
[ ]Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.jackett.backup.request.hooks.beforeBackup -
Hooks to run before backup.
Type: list of string
Default:
[ ]Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.jackett.backup.request.sourceDirectories -
Directories to backup.
Type: non-empty (list of string)
Default:
[ "/var/lib/jackett" ]Example:
"/var/lib/vaultwarden"Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.jackett.backup.request.user -
Unix user doing the backups.
Type: string
Default:
"jackett"Example:
"vaultwarden"Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.jackett.backup.result -
Result part of the backup contract.
Options set by the provider module that indicates the name of the backup and restore scripts.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.jackett.backup.result.backupService -
Name of service backing up the database.
This script can be ran manually to backup the database:
$ systemctl start backup.serviceType: string
Default:
"backup.service"Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.jackett.backup.result.restoreScript -
Name of script that can restore the database. One can then list snapshots with:
$ restore snapshots <snapshot 1> <metadata> <snapshot 2> <metadata>And restore the database with:
$ restore restore <snapshot 1>Type: string
Default:
"restore"Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.jackett.dashboard -
Dashboard contract consumer
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.jackett.dashboard.request -
Request part of the dashboard contract.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.jackett.dashboard.request.externalUrl -
URL at which the service can be accessed.
This URL should go through the reverse proxy.
Type: string
Default:
"https://\${config.shb.arr.jackett.subdomain}.\${config.shb.arr.jackett.domain}"Example:
"https://jellyfin.example.com"Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.jackett.dashboard.request.internalUrl -
URL at which the service can be accessed directly.
This URL should bypass the reverse proxy. It can be used for example to ping the service and making sure it is up and running correctly.
Type: null or string
Default:
"http://127.0.0.1:9117"Example:
"http://127.0.0.1:8081"Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.jackett.dashboard.result -
Result part of the dashboard contract.
No option is provided here.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.jackett.dataDir -
Directory where jackett stores data.
Type: string
Default:
"/var/lib/jackett"Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.jackett.domain -
Domain under which jackett will be served.
Type: string
Example:
"example.com"Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.jackett.ldapUserGroup -
LDAP group a user must belong to be able to login.
Note that all users are admins too.
Type: string
Default:
"arr_user"Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.jackett.settings -
Specific options for jackett.
Type: open submodule of (JSON value)
Default:
{ }Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.jackett.settings.ApiKey -
Path to api key secret file.
Type: submodule
Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.jackett.settings.ApiKey.source -
File containing the value.
Type: absolute path
Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.jackett.settings.ApiKey.transform -
An optional function to transform the secret.
Type: raw value
Default:
nullExample:
v: "prefix-$${v}-suffix"Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.jackett.settings.FlareSolverrUrl -
FlareSolverr endpoint.
Type: null or string
Default:
nullDeclared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.jackett.settings.OmdbApiKey -
File containing the Open Movie Database API key.
Type: null or (submodule)
Default:
nullDeclared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.jackett.settings.OmdbApiKey.source -
File containing the value.
Type: absolute path
Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.jackett.settings.OmdbApiKey.transform -
An optional function to transform the secret.
Type: raw value
Default:
nullExample:
v: "prefix-$${v}-suffix"Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.jackett.settings.Port -
Port on which jackett listens to incoming requests.
Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive) (read only)
Default:
9117Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.jackett.settings.ProxyPort -
Port of the proxy. Ignored if ProxyType is set to -1
Type: null or 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Default:
nullDeclared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.jackett.settings.ProxyType -
-1 = disabled 0 = HTTP 1 = SOCKS4 2 = SOCKS5
Type: one of “-1”, “0”, “1”, “2”
Default:
"-1"Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.jackett.settings.ProxyUrl -
URL of the proxy. Ignored if ProxyType is set to -1
Type: null or string
Default:
nullDeclared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.jackett.ssl -
Path to SSL files
Type: null or (open submodule of anything)
Default:
nullDeclared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.jackett.ssl.paths -
Paths where the files for the certificate will be located.
This option is the contract output of the
shb.certs.certsSSL block.Type: open submodule of anything
Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.jackett.ssl.paths.cert -
Path to the cert file.
Type: absolute path
Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.jackett.ssl.paths.key -
Path to the key file.
Type: absolute path
Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.jackett.ssl.systemdService -
Systemd oneshot service used to generate the certificate. Ends with the
.servicesuffix.Use this if downstream services must wait for the certificates to be generated before starting.
Type: string
Example:
"cert-generator.service"Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.jackett.subdomain -
Subdomain under which jackett will be served.
Type: string
Example:
"jackett"Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.lidarr -
Configuration for lidarr
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.lidarr.enable -
Whether to enable lidarr.
Type: boolean
Default:
falseExample:
trueDeclared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.lidarr.authEndpoint -
Endpoint to the SSO provider. Leave null to not have SSO configured.
Type: null or string
Default:
nullExample:
"https://authelia.example.com"Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.lidarr.backup -
Backup configuration.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.lidarr.backup.request -
Request part of the backup contract.
Options set by the requester module enforcing how to backup files.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.lidarr.backup.request.excludePatterns -
File patterns to exclude.
Type: list of string
Default:
[ ".db-shm" ".db-wal" ".mono" ]Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.lidarr.backup.request.hooks -
Hooks to run around the backup.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.lidarr.backup.request.hooks.afterBackup -
Hooks to run after backup.
Type: list of string
Default:
[ ]Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.lidarr.backup.request.hooks.beforeBackup -
Hooks to run before backup.
Type: list of string
Default:
[ ]Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.lidarr.backup.request.sourceDirectories -
Directories to backup.
Type: non-empty (list of string)
Default:
[ "/var/lib/lidarr" ]Example:
"/var/lib/vaultwarden"Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.lidarr.backup.request.user -
Unix user doing the backups.
Type: string
Default:
"lidarr"Example:
"vaultwarden"Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.lidarr.backup.result -
Result part of the backup contract.
Options set by the provider module that indicates the name of the backup and restore scripts.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.lidarr.backup.result.backupService -
Name of service backing up the database.
This script can be ran manually to backup the database:
$ systemctl start backup.serviceType: string
Default:
"backup.service"Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.lidarr.backup.result.restoreScript -
Name of script that can restore the database. One can then list snapshots with:
$ restore snapshots <snapshot 1> <metadata> <snapshot 2> <metadata>And restore the database with:
$ restore restore <snapshot 1>Type: string
Default:
"restore"Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.lidarr.dashboard -
Dashboard contract consumer
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.lidarr.dashboard.request -
Request part of the dashboard contract.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.lidarr.dashboard.request.externalUrl -
URL at which the service can be accessed.
This URL should go through the reverse proxy.
Type: string
Default:
"https://\${config.shb.arr.lidarr.subdomain}.\${config.shb.arr.lidarr.domain}"Example:
"https://jellyfin.example.com"Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.lidarr.dashboard.request.internalUrl -
URL at which the service can be accessed directly.
This URL should bypass the reverse proxy. It can be used for example to ping the service and making sure it is up and running correctly.
Type: null or string
Default:
"http://127.0.0.1:8686"Example:
"http://127.0.0.1:8081"Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.lidarr.dashboard.result -
Result part of the dashboard contract.
No option is provided here.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.lidarr.dataDir -
Directory where lidarr stores data.
Type: string
Default:
"/var/lib/lidarr"Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.lidarr.domain -
Domain under which lidarr will be served.
Type: string
Example:
"example.com"Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.lidarr.ldapUserGroup -
LDAP group a user must belong to be able to login.
Note that all users are admins too.
Type: string
Default:
"arr_user"Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.lidarr.settings -
Specific options for lidarr.
Type: open submodule of (XML value)
Default:
{ }Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.lidarr.settings.ApiKey -
Path to api key secret file.
Type: submodule
Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.lidarr.settings.ApiKey.source -
File containing the value.
Type: absolute path
Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.lidarr.settings.ApiKey.transform -
An optional function to transform the secret.
Type: raw value
Default:
nullExample:
v: "prefix-$${v}-suffix"Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.lidarr.settings.LogLevel -
Log level.
Type: one of “debug”, “info”
Default:
"info"Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.lidarr.settings.Port -
Port on which lidarr listens to incoming requests.
Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Default:
8686Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.lidarr.ssl -
Path to SSL files
Type: null or (open submodule of anything)
Default:
nullDeclared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.lidarr.ssl.paths -
Paths where the files for the certificate will be located.
This option is the contract output of the
shb.certs.certsSSL block.Type: open submodule of anything
Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.lidarr.ssl.paths.cert -
Path to the cert file.
Type: absolute path
Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.lidarr.ssl.paths.key -
Path to the key file.
Type: absolute path
Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.lidarr.ssl.systemdService -
Systemd oneshot service used to generate the certificate. Ends with the
.servicesuffix.Use this if downstream services must wait for the certificates to be generated before starting.
Type: string
Example:
"cert-generator.service"Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.lidarr.subdomain -
Subdomain under which lidarr will be served.
Type: string
Example:
"lidarr"Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.radarr -
Configuration for radarr
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.radarr.enable -
Whether to enable radarr.
Type: boolean
Default:
falseExample:
trueDeclared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.radarr.authEndpoint -
Endpoint to the SSO provider. Leave null to not have SSO configured.
Type: null or string
Default:
nullExample:
"https://authelia.example.com"Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.radarr.backup -
Backup configuration.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.radarr.backup.request -
Request part of the backup contract.
Options set by the requester module enforcing how to backup files.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.radarr.backup.request.excludePatterns -
File patterns to exclude.
Type: list of string
Default:
[ ".db-shm" ".db-wal" ".mono" ]Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.radarr.backup.request.hooks -
Hooks to run around the backup.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.radarr.backup.request.hooks.afterBackup -
Hooks to run after backup.
Type: list of string
Default:
[ ]Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.radarr.backup.request.hooks.beforeBackup -
Hooks to run before backup.
Type: list of string
Default:
[ ]Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.radarr.backup.request.sourceDirectories -
Directories to backup.
Type: non-empty (list of string)
Default:
[ "/var/lib/radarr" ]Example:
"/var/lib/vaultwarden"Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.radarr.backup.request.user -
Unix user doing the backups.
Type: string
Default:
"radarr"Example:
"vaultwarden"Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.radarr.backup.result -
Result part of the backup contract.
Options set by the provider module that indicates the name of the backup and restore scripts.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.radarr.backup.result.backupService -
Name of service backing up the database.
This script can be ran manually to backup the database:
$ systemctl start backup.serviceType: string
Default:
"backup.service"Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.radarr.backup.result.restoreScript -
Name of script that can restore the database. One can then list snapshots with:
$ restore snapshots <snapshot 1> <metadata> <snapshot 2> <metadata>And restore the database with:
$ restore restore <snapshot 1>Type: string
Default:
"restore"Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.radarr.dashboard -
Dashboard contract consumer
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.radarr.dashboard.request -
Request part of the dashboard contract.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.radarr.dashboard.request.externalUrl -
URL at which the service can be accessed.
This URL should go through the reverse proxy.
Type: string
Default:
"https://\${config.shb.arr.radarr.subdomain}.\${config.shb.arr.radarr.domain}"Example:
"https://jellyfin.example.com"Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.radarr.dashboard.request.internalUrl -
URL at which the service can be accessed directly.
This URL should bypass the reverse proxy. It can be used for example to ping the service and making sure it is up and running correctly.
Type: null or string
Default:
"http://127.0.0.1:7878"Example:
"http://127.0.0.1:8081"Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.radarr.dashboard.result -
Result part of the dashboard contract.
No option is provided here.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.radarr.dataDir -
Directory where radarr stores data.
Type: string
Default:
"/var/lib/radarr"Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.radarr.domain -
Domain under which radarr will be served.
Type: string
Example:
"example.com"Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.radarr.ldapUserGroup -
LDAP group a user must belong to be able to login.
Note that all users are admins too.
Type: string
Default:
"arr_user"Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.radarr.settings -
Specific options for radarr.
Type: open submodule of (XML value)
Default:
{ }Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.radarr.settings.AnalyticsEnabled -
Wether to send anonymous data or not.
Type: boolean
Default:
falseDeclared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.radarr.settings.ApiKey -
Path to api key secret file.
Type: submodule
Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.radarr.settings.ApiKey.source -
File containing the value.
Type: absolute path
Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.radarr.settings.ApiKey.transform -
An optional function to transform the secret.
Type: raw value
Default:
nullExample:
v: "prefix-$${v}-suffix"Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.radarr.settings.LogLevel -
Log level.
Type: one of “debug”, “info”
Default:
"info"Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.radarr.settings.Port -
Port on which radarr listens to incoming requests.
Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Default:
7878Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.radarr.ssl -
Path to SSL files
Type: null or (open submodule of anything)
Default:
nullDeclared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.radarr.ssl.paths -
Paths where the files for the certificate will be located.
This option is the contract output of the
shb.certs.certsSSL block.Type: open submodule of anything
Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.radarr.ssl.paths.cert -
Path to the cert file.
Type: absolute path
Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.radarr.ssl.paths.key -
Path to the key file.
Type: absolute path
Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.radarr.ssl.systemdService -
Systemd oneshot service used to generate the certificate. Ends with the
.servicesuffix.Use this if downstream services must wait for the certificates to be generated before starting.
Type: string
Example:
"cert-generator.service"Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.radarr.subdomain -
Subdomain under which radarr will be served.
Type: string
Example:
"radarr"Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.readarr -
Configuration for readarr
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.readarr.enable -
Whether to enable readarr.
Type: boolean
Default:
falseExample:
trueDeclared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.readarr.authEndpoint -
Endpoint to the SSO provider. Leave null to not have SSO configured.
Type: null or string
Default:
nullExample:
"https://authelia.example.com"Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.readarr.backup -
Backup configuration.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.readarr.backup.request -
Request part of the backup contract.
Options set by the requester module enforcing how to backup files.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.readarr.backup.request.excludePatterns -
File patterns to exclude.
Type: list of string
Default:
[ ".db-shm" ".db-wal" ".mono" ]Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.readarr.backup.request.hooks -
Hooks to run around the backup.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.readarr.backup.request.hooks.afterBackup -
Hooks to run after backup.
Type: list of string
Default:
[ ]Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.readarr.backup.request.hooks.beforeBackup -
Hooks to run before backup.
Type: list of string
Default:
[ ]Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.readarr.backup.request.sourceDirectories -
Directories to backup.
Type: non-empty (list of string)
Default:
[ "/var/lib/readarr" ]Example:
"/var/lib/vaultwarden"Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.readarr.backup.request.user -
Unix user doing the backups.
Type: string
Default:
"readarr"Example:
"vaultwarden"Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.readarr.backup.result -
Result part of the backup contract.
Options set by the provider module that indicates the name of the backup and restore scripts.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.readarr.backup.result.backupService -
Name of service backing up the database.
This script can be ran manually to backup the database:
$ systemctl start backup.serviceType: string
Default:
"backup.service"Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.readarr.backup.result.restoreScript -
Name of script that can restore the database. One can then list snapshots with:
$ restore snapshots <snapshot 1> <metadata> <snapshot 2> <metadata>And restore the database with:
$ restore restore <snapshot 1>Type: string
Default:
"restore"Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.readarr.dashboard -
Dashboard contract consumer
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.readarr.dashboard.request -
Request part of the dashboard contract.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.readarr.dashboard.request.externalUrl -
URL at which the service can be accessed.
This URL should go through the reverse proxy.
Type: string
Default:
"https://\${config.shb.arr.readarr.subdomain}.\${config.shb.arr.readarr.domain}"Example:
"https://jellyfin.example.com"Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.readarr.dashboard.request.internalUrl -
URL at which the service can be accessed directly.
This URL should bypass the reverse proxy. It can be used for example to ping the service and making sure it is up and running correctly.
Type: null or string
Default:
"http://127.0.0.1:8787"Example:
"http://127.0.0.1:8081"Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.readarr.dashboard.result -
Result part of the dashboard contract.
No option is provided here.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.readarr.dataDir -
Directory where readarr stores data.
Type: string
Default:
"/var/lib/readarr"Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.readarr.domain -
Domain under which readarr will be served.
Type: string
Example:
"example.com"Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.readarr.ldapUserGroup -
LDAP group a user must belong to be able to login.
Note that all users are admins too.
Type: string
Default:
"arr_user"Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.readarr.settings -
Specific options for readarr.
Type: open submodule of (XML value)
Default:
{ }Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.readarr.settings.ApiKey -
Path to api key secret file.
Type: submodule
Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.readarr.settings.ApiKey.source -
File containing the value.
Type: absolute path
Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.readarr.settings.ApiKey.transform -
An optional function to transform the secret.
Type: raw value
Default:
nullExample:
v: "prefix-$${v}-suffix"Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.readarr.settings.LogLevel -
Log level.
Type: one of “debug”, “info”
Default:
"info"Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.readarr.settings.Port -
Port on which readarr listens to incoming requests.
Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Default:
8787Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.readarr.ssl -
Path to SSL files
Type: null or (open submodule of anything)
Default:
nullDeclared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.readarr.ssl.paths -
Paths where the files for the certificate will be located.
This option is the contract output of the
shb.certs.certsSSL block.Type: open submodule of anything
Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.readarr.ssl.paths.cert -
Path to the cert file.
Type: absolute path
Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.readarr.ssl.paths.key -
Path to the key file.
Type: absolute path
Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.readarr.ssl.systemdService -
Systemd oneshot service used to generate the certificate. Ends with the
.servicesuffix.Use this if downstream services must wait for the certificates to be generated before starting.
Type: string
Example:
"cert-generator.service"Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.readarr.subdomain -
Subdomain under which readarr will be served.
Type: string
Example:
"readarr"Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.sonarr -
Configuration for sonarr
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.sonarr.enable -
Whether to enable sonarr.
Type: boolean
Default:
falseExample:
trueDeclared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.sonarr.authEndpoint -
Endpoint to the SSO provider. Leave null to not have SSO configured.
Type: null or string
Default:
nullExample:
"https://authelia.example.com"Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.sonarr.backup -
Backup configuration.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.sonarr.backup.request -
Request part of the backup contract.
Options set by the requester module enforcing how to backup files.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.sonarr.backup.request.excludePatterns -
File patterns to exclude.
Type: list of string
Default:
[ ".db-shm" ".db-wal" ".mono" ]Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.sonarr.backup.request.hooks -
Hooks to run around the backup.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.sonarr.backup.request.hooks.afterBackup -
Hooks to run after backup.
Type: list of string
Default:
[ ]Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.sonarr.backup.request.hooks.beforeBackup -
Hooks to run before backup.
Type: list of string
Default:
[ ]Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.sonarr.backup.request.sourceDirectories -
Directories to backup.
Type: non-empty (list of string)
Default:
[ "/var/lib/sonarr" ]Example:
"/var/lib/vaultwarden"Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.sonarr.backup.request.user -
Unix user doing the backups.
Type: string
Default:
"sonarr"Example:
"vaultwarden"Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.sonarr.backup.result -
Result part of the backup contract.
Options set by the provider module that indicates the name of the backup and restore scripts.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.sonarr.backup.result.backupService -
Name of service backing up the database.
This script can be ran manually to backup the database:
$ systemctl start backup.serviceType: string
Default:
"backup.service"Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.sonarr.backup.result.restoreScript -
Name of script that can restore the database. One can then list snapshots with:
$ restore snapshots <snapshot 1> <metadata> <snapshot 2> <metadata>And restore the database with:
$ restore restore <snapshot 1>Type: string
Default:
"restore"Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.sonarr.dashboard -
Dashboard contract consumer
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.sonarr.dashboard.request -
Request part of the dashboard contract.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.sonarr.dashboard.request.externalUrl -
URL at which the service can be accessed.
This URL should go through the reverse proxy.
Type: string
Default:
"https://\${config.shb.arr.sonarr.subdomain}.\${config.shb.arr.sonarr.domain}"Example:
"https://jellyfin.example.com"Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.sonarr.dashboard.request.internalUrl -
URL at which the service can be accessed directly.
This URL should bypass the reverse proxy. It can be used for example to ping the service and making sure it is up and running correctly.
Type: null or string
Default:
"http://127.0.0.1:8989"Example:
"http://127.0.0.1:8081"Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.sonarr.dashboard.result -
Result part of the dashboard contract.
No option is provided here.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.sonarr.dataDir -
Directory where sonarr stores data.
Type: string
Default:
"/var/lib/sonarr"Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.sonarr.domain -
Domain under which sonarr will be served.
Type: string
Example:
"example.com"Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.sonarr.ldapUserGroup -
LDAP group a user must belong to be able to login.
Note that all users are admins too.
Type: string
Default:
"arr_user"Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.sonarr.settings -
Specific options for sonarr.
Type: open submodule of (XML value)
Default:
{ }Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.sonarr.settings.ApiKey -
Path to api key secret file.
Type: submodule
Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.sonarr.settings.ApiKey.source -
File containing the value.
Type: absolute path
Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.sonarr.settings.ApiKey.transform -
An optional function to transform the secret.
Type: raw value
Default:
nullExample:
v: "prefix-$${v}-suffix"Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.sonarr.settings.LogLevel -
Log level.
Type: one of “debug”, “info”
Default:
"info"Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.sonarr.settings.Port -
Port on which sonarr listens to incoming requests.
Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Default:
8989Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.sonarr.ssl -
Path to SSL files
Type: null or (open submodule of anything)
Default:
nullDeclared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.sonarr.ssl.paths -
Paths where the files for the certificate will be located.
This option is the contract output of the
shb.certs.certsSSL block.Type: open submodule of anything
Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.sonarr.ssl.paths.cert -
Path to the cert file.
Type: absolute path
Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.sonarr.ssl.paths.key -
Path to the key file.
Type: absolute path
Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.sonarr.ssl.systemdService -
Systemd oneshot service used to generate the certificate. Ends with the
.servicesuffix.Use this if downstream services must wait for the certificates to be generated before starting.
Type: string
Example:
"cert-generator.service"Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.arr.sonarr.subdomain -
Subdomain under which sonarr will be served.
Type: string
Example:
"sonarr"Declared by:
<selfhostblocks/modules/services/arr.nix> -
shb.audiobookshelf.enable -
Whether to enable selfhostblocks.audiobookshelf.
Type: boolean
Default:
falseExample:
trueDeclared by:
<selfhostblocks/modules/services/audiobookshelf.nix> -
shb.audiobookshelf.backup -
Backup configuration.
Type: submodule
Declared by:
<selfhostblocks/modules/services/audiobookshelf.nix> -
shb.audiobookshelf.backup.request -
Request part of the backup contract.
Options set by the requester module enforcing how to backup files.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/services/audiobookshelf.nix> -
shb.audiobookshelf.backup.request.excludePatterns -
File patterns to exclude.
Type: list of string
Default:
[ ]Declared by:
<selfhostblocks/modules/services/audiobookshelf.nix> -
shb.audiobookshelf.backup.request.hooks -
Hooks to run around the backup.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/audiobookshelf.nix> -
shb.audiobookshelf.backup.request.hooks.afterBackup -
Hooks to run after backup.
Type: list of string
Default:
[ ]Declared by:
<selfhostblocks/modules/services/audiobookshelf.nix> -
shb.audiobookshelf.backup.request.hooks.beforeBackup -
Hooks to run before backup.
Type: list of string
Default:
[ ]Declared by:
<selfhostblocks/modules/services/audiobookshelf.nix> -
shb.audiobookshelf.backup.request.sourceDirectories -
Directories to backup.
Type: non-empty (list of string)
Default:
[ "/var/lib/audiobookshelf" ]Example:
"/var/lib/vaultwarden"Declared by:
<selfhostblocks/modules/services/audiobookshelf.nix> -
shb.audiobookshelf.backup.request.user -
Unix user doing the backups.
Type: string
Default:
"audiobookshelf"Example:
"vaultwarden"Declared by:
<selfhostblocks/modules/services/audiobookshelf.nix> -
shb.audiobookshelf.backup.result -
Result part of the backup contract.
Options set by the provider module that indicates the name of the backup and restore scripts.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/services/audiobookshelf.nix> -
shb.audiobookshelf.backup.result.backupService -
Name of service backing up the database.
This script can be ran manually to backup the database:
$ systemctl start backup.serviceType: string
Default:
"backup.service"Declared by:
<selfhostblocks/modules/services/audiobookshelf.nix> -
shb.audiobookshelf.backup.result.restoreScript -
Name of script that can restore the database. One can then list snapshots with:
$ restore snapshots <snapshot 1> <metadata> <snapshot 2> <metadata>And restore the database with:
$ restore restore <snapshot 1>Type: string
Default:
"restore"Declared by:
<selfhostblocks/modules/services/audiobookshelf.nix> -
shb.audiobookshelf.dashboard -
Dashboard contract consumer
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/audiobookshelf.nix> -
shb.audiobookshelf.dashboard.request -
Request part of the dashboard contract.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/audiobookshelf.nix> -
shb.audiobookshelf.dashboard.request.externalUrl -
URL at which the service can be accessed.
This URL should go through the reverse proxy.
Type: string
Default:
"https://\${config.shb.audiobookshelf.subdomain}.\${config.shb.audiobookshelf.domain}"Example:
"https://jellyfin.example.com"Declared by:
<selfhostblocks/modules/services/audiobookshelf.nix> -
shb.audiobookshelf.dashboard.request.internalUrl -
URL at which the service can be accessed directly.
This URL should bypass the reverse proxy. It can be used for example to ping the service and making sure it is up and running correctly.
Type: null or string
Default:
"http://127.0.0.1:8113"Example:
"http://127.0.0.1:8081"Declared by:
<selfhostblocks/modules/services/audiobookshelf.nix> -
shb.audiobookshelf.dashboard.result -
Result part of the dashboard contract.
No option is provided here.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/audiobookshelf.nix> -
shb.audiobookshelf.domain -
domain under which audiobookshelf will be served.
Type: string
Example:
"mydomain.com"Declared by:
<selfhostblocks/modules/services/audiobookshelf.nix> -
shb.audiobookshelf.extraServiceConfig -
Extra configuration given to the systemd service file.
Type: attribute set of string
Default:
{ }Example:
{ MemoryHigh = "512M"; MemoryMax = "900M"; }Declared by:
<selfhostblocks/modules/services/audiobookshelf.nix> -
shb.audiobookshelf.logLevel -
Enable logging.
Type: null or one of “critical”, “error”, “warning”, “info”, “debug”
Default:
falseExample:
trueDeclared by:
<selfhostblocks/modules/services/audiobookshelf.nix> -
shb.audiobookshelf.ssl -
Path to SSL files
Type: null or (open submodule of anything)
Default:
nullDeclared by:
<selfhostblocks/modules/services/audiobookshelf.nix> -
shb.audiobookshelf.ssl.paths -
Paths where the files for the certificate will be located.
This option is the contract output of the
shb.certs.certsSSL block.Type: open submodule of anything
Declared by:
<selfhostblocks/modules/services/audiobookshelf.nix> -
shb.audiobookshelf.ssl.paths.cert -
Path to the cert file.
Type: absolute path
Declared by:
<selfhostblocks/modules/services/audiobookshelf.nix> -
shb.audiobookshelf.ssl.paths.key -
Path to the key file.
Type: absolute path
Declared by:
<selfhostblocks/modules/services/audiobookshelf.nix> -
shb.audiobookshelf.ssl.systemdService -
Systemd oneshot service used to generate the certificate. Ends with the
.servicesuffix.Use this if downstream services must wait for the certificates to be generated before starting.
Type: string
Example:
"cert-generator.service"Declared by:
<selfhostblocks/modules/services/audiobookshelf.nix> -
shb.audiobookshelf.sso -
SSO configuration.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/audiobookshelf.nix> -
shb.audiobookshelf.sso.enable -
Whether to enable SSO.
Type: boolean
Default:
falseExample:
trueDeclared by:
<selfhostblocks/modules/services/audiobookshelf.nix> -
shb.audiobookshelf.sso.adminUserGroup -
OIDC admin group
Type: string
Default:
"audiobookshelf_admin"Declared by:
<selfhostblocks/modules/services/audiobookshelf.nix> -
shb.audiobookshelf.sso.authorization_policy -
Require one factor (password) or two factor (device) authentication.
Type: one of “one_factor”, “two_factor”
Default:
"one_factor"Declared by:
<selfhostblocks/modules/services/audiobookshelf.nix> -
shb.audiobookshelf.sso.clientID -
Client ID for the OIDC endpoint
Type: string
Default:
"audiobookshelf"Declared by:
<selfhostblocks/modules/services/audiobookshelf.nix> -
shb.audiobookshelf.sso.endpoint -
OIDC endpoint for SSO
Type: string
Example:
"https://authelia.example.com"Declared by:
<selfhostblocks/modules/services/audiobookshelf.nix> -
shb.audiobookshelf.sso.provider -
OIDC provider name
Type: string
Default:
"Authelia"Declared by:
<selfhostblocks/modules/services/audiobookshelf.nix> -
shb.audiobookshelf.sso.sharedSecret -
OIDC shared secret for Audiobookshelf.
Type: submodule
Declared by:
<selfhostblocks/modules/services/audiobookshelf.nix> -
shb.audiobookshelf.sso.sharedSecret.request -
Request part of the secret contract.
Options set by the requester module enforcing some properties the secret should have.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/services/audiobookshelf.nix> -
shb.audiobookshelf.sso.sharedSecret.request.group -
Linux group owning the secret file.
Type: string
Default:
"audiobookshelf"Declared by:
<selfhostblocks/modules/services/audiobookshelf.nix> -
shb.audiobookshelf.sso.sharedSecret.request.mode -
Mode of the secret file.
Type: string
Default:
"0440"Declared by:
<selfhostblocks/modules/services/audiobookshelf.nix> -
shb.audiobookshelf.sso.sharedSecret.request.owner -
Linux user owning the secret file.
Type: string
Default:
"audiobookshelf"Declared by:
<selfhostblocks/modules/services/audiobookshelf.nix> -
shb.audiobookshelf.sso.sharedSecret.request.restartUnits -
Systemd units to restart after the secret is updated.
Type: list of string
Default:
[ "audiobookshelfd.service" ]Declared by:
<selfhostblocks/modules/services/audiobookshelf.nix> -
shb.audiobookshelf.sso.sharedSecret.result -
Result part of the secret contract.
Options set by the provider module that indicates where the secret can be found.
Type: submodule
Default:
{ path = "/run/secrets/secret"; }Declared by:
<selfhostblocks/modules/services/audiobookshelf.nix> -
shb.audiobookshelf.sso.sharedSecret.result.path -
Path to the file containing the secret generated out of band.
This path will exist after deploying to a target host, it is not available through the nix store.
Type: absolute path
Default:
"/run/secrets/secret"Declared by:
<selfhostblocks/modules/services/audiobookshelf.nix> -
shb.audiobookshelf.sso.sharedSecretForAuthelia -
OIDC shared secret for Authelia.
Type: submodule
Declared by:
<selfhostblocks/modules/services/audiobookshelf.nix> -
shb.audiobookshelf.sso.sharedSecretForAuthelia.request -
Request part of the secret contract.
Options set by the requester module enforcing some properties the secret should have.
Type: submodule
Default: { mode = 0400; owner = config.shb.authelia.autheliaUser; group = root; restartUnits = [ ]; }
Declared by:
<selfhostblocks/modules/services/audiobookshelf.nix> -
shb.audiobookshelf.sso.sharedSecretForAuthelia.request.group -
Linux group owning the secret file.
Type: string
Default:
"root"Declared by:
<selfhostblocks/modules/services/audiobookshelf.nix> -
shb.audiobookshelf.sso.sharedSecretForAuthelia.request.mode -
Mode of the secret file.
Type: string
Default:
"0400"Declared by:
<selfhostblocks/modules/services/audiobookshelf.nix> -
shb.audiobookshelf.sso.sharedSecretForAuthelia.request.owner -
Linux user owning the secret file.
Type: string
Default: config.shb.authelia.autheliaUser
Declared by:
<selfhostblocks/modules/services/audiobookshelf.nix> -
shb.audiobookshelf.sso.sharedSecretForAuthelia.request.restartUnits -
Systemd units to restart after the secret is updated.
Type: list of string
Default:
[ ]Declared by:
<selfhostblocks/modules/services/audiobookshelf.nix> -
shb.audiobookshelf.sso.sharedSecretForAuthelia.result -
Result part of the secret contract.
Options set by the provider module that indicates where the secret can be found.
Type: submodule
Default:
{ path = "/run/secrets/secret"; }Declared by:
<selfhostblocks/modules/services/audiobookshelf.nix> -
shb.audiobookshelf.sso.sharedSecretForAuthelia.result.path -
Path to the file containing the secret generated out of band.
This path will exist after deploying to a target host, it is not available through the nix store.
Type: absolute path
Default:
"/run/secrets/secret"Declared by:
<selfhostblocks/modules/services/audiobookshelf.nix> -
shb.audiobookshelf.sso.userGroup -
OIDC user group
Type: string
Default:
"audiobookshelf_user"Declared by:
<selfhostblocks/modules/services/audiobookshelf.nix> -
shb.audiobookshelf.subdomain -
Subdomain under which audiobookshelf will be served.
Type: string
Example:
"abs"Declared by:
<selfhostblocks/modules/services/audiobookshelf.nix> -
shb.audiobookshelf.webPort -
Audiobookshelf web port
Type: signed integer
Default:
8113Declared by:
<selfhostblocks/modules/services/audiobookshelf.nix> -
shb.authelia.enable -
Whether to enable selfhostblocks.authelia.
Type: boolean
Default:
falseExample:
trueDeclared by:
<selfhostblocks/modules/blocks/authelia.nix> -
shb.authelia.autheliaUser -
System user for this Authelia instance.
Type: string
Default:
"authelia"Declared by:
<selfhostblocks/modules/blocks/authelia.nix> -
shb.authelia.dashboard -
Dashboard contract consumer
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/blocks/authelia.nix> -
shb.authelia.dashboard.request -
Request part of the dashboard contract.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/blocks/authelia.nix> -
shb.authelia.dashboard.request.externalUrl -
URL at which the service can be accessed.
This URL should go through the reverse proxy.
Type: string
Default:
"https://\${config.shb.authelia.subdomain}.\${config.shb.authelia.domain}"Example:
"https://jellyfin.example.com"Declared by:
<selfhostblocks/modules/blocks/authelia.nix> -
shb.authelia.dashboard.request.internalUrl -
URL at which the service can be accessed directly.
This URL should bypass the reverse proxy. It can be used for example to ping the service and making sure it is up and running correctly.
Type: null or string
Default:
"http://127.0.0.1:9091"Example:
"http://127.0.0.1:8081"Declared by:
<selfhostblocks/modules/blocks/authelia.nix> -
shb.authelia.dashboard.result -
Result part of the dashboard contract.
No option is provided here.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/blocks/authelia.nix> -
shb.authelia.dcdomain -
dc domain for ldap.
Type: string
Example:
"dc=mydomain,dc=com"Declared by:
<selfhostblocks/modules/blocks/authelia.nix> -
shb.authelia.debug -
Set logging level to debug and add a mitmdump instance to see exactly what Authelia receives and sends back.
Type: boolean
Default:
falseDeclared by:
<selfhostblocks/modules/blocks/authelia.nix> -
shb.authelia.domain -
domain under which Authelia will be served.
Type: string
Example:
"mydomain.com"Declared by:
<selfhostblocks/modules/blocks/authelia.nix> -
shb.authelia.extraDefinitions -
Extra definitions.
Type: attribute set of (attribute set)
Default:
{ }Declared by:
<selfhostblocks/modules/blocks/authelia.nix> -
shb.authelia.extraOidcAuthorizationPolicies -
Extra OIDC authorization policies.
Type: attribute set of (attribute set)
Default:
{ }Declared by:
<selfhostblocks/modules/blocks/authelia.nix> -
shb.authelia.extraOidcClaimsPolicies -
Extra OIDC claims policies.
Type: attribute set of (attribute set)
Default:
{ }Declared by:
<selfhostblocks/modules/blocks/authelia.nix> -
shb.authelia.extraOidcScopes -
Extra OIDC scopes.
Type: attribute set of (attribute set)
Default:
{ }Declared by:
<selfhostblocks/modules/blocks/authelia.nix> -
shb.authelia.ldapHostname -
Hostname of the LDAP authentication backend.
Type: string
Example:
"ldap.example.com"Declared by:
<selfhostblocks/modules/blocks/authelia.nix> -
shb.authelia.ldapPort -
Port of the LDAP authentication backend.
Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Example:
"389"Declared by:
<selfhostblocks/modules/blocks/authelia.nix> -
shb.authelia.mount -
Mount configuration. This is an output option.
Use it to initialize a block implementing the “mount” contract. For example, with a zfs dataset:
shb.zfs.datasets."authelia" = { poolName = "root"; } // config.shb.authelia.mount;Type: open submodule of anything (read only)
Default:
{ path = "/var/lib/authelia-authelia.example.com"; }Declared by:
<selfhostblocks/modules/blocks/authelia.nix> -
shb.authelia.mount.path -
Path to be mounted.
Type: string
Declared by:
<selfhostblocks/modules/blocks/authelia.nix> -
shb.authelia.mountRedis -
Mount configuration for Redis. This is an output option.
Use it to initialize a block implementing the “mount” contract. For example, with a zfs dataset:
shb.zfs.datasets."redis-authelia" = { poolName = "root"; } // config.shb.authelia.mountRedis;Type: open submodule of anything (read only)
Default:
{ path = "/var/lib/redis-authelia"; }Declared by:
<selfhostblocks/modules/blocks/authelia.nix> -
shb.authelia.mountRedis.path -
Path to be mounted.
Type: string
Declared by:
<selfhostblocks/modules/blocks/authelia.nix> -
shb.authelia.oidcClients -
OIDC clients
Type: list of (open submodule of attribute set of anything)
Default:
[ { authorization_policy = "one_factor"; client_id = "dummy_client"; client_name = "Dummy Client so Authelia can start"; client_secret = { source = <derivation dummy.secret>; }; public = false; redirect_uris = [ ]; } ]Declared by:
<selfhostblocks/modules/blocks/authelia.nix> -
shb.authelia.oidcClients.*.authorization_policy -
Require one factor (password) or two factor (device) authentication.
Type: one of “one_factor”, “two_factor”
Default:
"one_factor"Declared by:
<selfhostblocks/modules/blocks/authelia.nix> -
shb.authelia.oidcClients.*.claims_policy -
Claim policy.
Defaults to ‘default’ to provide a backwards compatible experience. Read this document for more information.
Type: null or string
Default:
"default"Declared by:
<selfhostblocks/modules/blocks/authelia.nix> -
shb.authelia.oidcClients.*.client_id -
Unique identifier of the OIDC client.
Type: string
Declared by:
<selfhostblocks/modules/blocks/authelia.nix> -
shb.authelia.oidcClients.*.client_name -
Human readable description of the OIDC client.
Type: null or string
Default:
nullDeclared by:
<selfhostblocks/modules/blocks/authelia.nix> -
shb.authelia.oidcClients.*.client_secret -
File containing the shared secret with the OIDC client.
Generate with:
nix run nixpkgs#authelia -- \ crypto hash generate pbkdf2 \ --variant sha512 \ --random \ --random.length 72 \ --random.charset rfc3986Type: submodule
Declared by:
<selfhostblocks/modules/blocks/authelia.nix> -
shb.authelia.oidcClients.*.client_secret.source -
File containing the value.
Type: absolute path
Declared by:
<selfhostblocks/modules/blocks/authelia.nix> -
shb.authelia.oidcClients.*.client_secret.transform -
An optional function to transform the secret.
Type: raw value
Default:
nullExample:
v: "prefix-$${v}-suffix"Declared by:
<selfhostblocks/modules/blocks/authelia.nix> -
shb.authelia.oidcClients.*.public -
If the OIDC client is public or not.
Type: boolean
Default:
falseDeclared by:
<selfhostblocks/modules/blocks/authelia.nix> -
shb.authelia.oidcClients.*.redirect_uris -
List of uris that are allowed to be redirected to.
Type: list of string
Default:
[ ]Declared by:
<selfhostblocks/modules/blocks/authelia.nix> -
shb.authelia.oidcClients.*.scopes -
Scopes to ask for. See https://www.authelia.com/integration/openid-connect/openid-connect-1.0-claims
Type: list of string
Default:
[ ]Example:
[ "openid" "profile" "email" "groups" ]Declared by:
<selfhostblocks/modules/blocks/authelia.nix> -
shb.authelia.port -
If given, adds a port to the
<subdomain>.<domain>endpoint.Type: null or 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Default:
nullDeclared by:
<selfhostblocks/modules/blocks/authelia.nix> -
shb.authelia.rules -
Rule based clients
Type: list of anything
Default:
[ ]Declared by:
<selfhostblocks/modules/blocks/authelia.nix> -
shb.authelia.secrets -
Secrets needed by Authelia
Type: submodule
Declared by:
<selfhostblocks/modules/blocks/authelia.nix> -
shb.authelia.secrets.identityProvidersOIDCHMACSecret -
Identity provider OIDC HMAC secret. Must be >= 40 characters.
Type: submodule
Declared by:
<selfhostblocks/modules/blocks/authelia.nix> -
shb.authelia.secrets.identityProvidersOIDCHMACSecret.request -
Request part of the secret contract.
Options set by the requester module enforcing some properties the secret should have.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/blocks/authelia.nix> -
shb.authelia.secrets.identityProvidersOIDCHMACSecret.request.group -
Linux group owning the secret file.
Type: string
Default:
"root"Declared by:
<selfhostblocks/modules/blocks/authelia.nix> -
shb.authelia.secrets.identityProvidersOIDCHMACSecret.request.mode -
Mode of the secret file.
Type: string
Default:
"0400"Declared by:
<selfhostblocks/modules/blocks/authelia.nix> -
shb.authelia.secrets.identityProvidersOIDCHMACSecret.request.owner -
Linux user owning the secret file.
Type: string
Default:
"authelia"Declared by:
<selfhostblocks/modules/blocks/authelia.nix> -
shb.authelia.secrets.identityProvidersOIDCHMACSecret.request.restartUnits -
Systemd units to restart after the secret is updated.
Type: list of string
Default:
[ "authelia-shb.authelia.subdomain.shb.authelia.domain.service" ]Declared by:
<selfhostblocks/modules/blocks/authelia.nix> -
shb.authelia.secrets.identityProvidersOIDCHMACSecret.result -
Result part of the secret contract.
Options set by the provider module that indicates where the secret can be found.
Type: submodule
Default:
{ path = "/run/secrets/secret"; }Declared by:
<selfhostblocks/modules/blocks/authelia.nix> -
shb.authelia.secrets.identityProvidersOIDCHMACSecret.result.path -
Path to the file containing the secret generated out of band.
This path will exist after deploying to a target host, it is not available through the nix store.
Type: absolute path
Default:
"/run/secrets/secret"Declared by:
<selfhostblocks/modules/blocks/authelia.nix> -
shb.authelia.secrets.identityProvidersOIDCIssuerPrivateKey -
Identity provider OIDC issuer private key.
Generate one with
nix run nixpkgs#openssl -- genrsa -out keypair.pem 2048Type: submodule
Declared by:
<selfhostblocks/modules/blocks/authelia.nix> -
shb.authelia.secrets.identityProvidersOIDCIssuerPrivateKey.request -
Request part of the secret contract.
Options set by the requester module enforcing some properties the secret should have.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/blocks/authelia.nix> -
shb.authelia.secrets.identityProvidersOIDCIssuerPrivateKey.request.group -
Linux group owning the secret file.
Type: string
Default:
"root"Declared by:
<selfhostblocks/modules/blocks/authelia.nix> -
shb.authelia.secrets.identityProvidersOIDCIssuerPrivateKey.request.mode -
Mode of the secret file.
Type: string
Default:
"0400"Declared by:
<selfhostblocks/modules/blocks/authelia.nix> -
shb.authelia.secrets.identityProvidersOIDCIssuerPrivateKey.request.owner -
Linux user owning the secret file.
Type: string
Default:
"authelia"Declared by:
<selfhostblocks/modules/blocks/authelia.nix> -
shb.authelia.secrets.identityProvidersOIDCIssuerPrivateKey.request.restartUnits -
Systemd units to restart after the secret is updated.
Type: list of string
Default:
[ "authelia-shb.authelia.subdomain.shb.authelia.domain.service" ]Declared by:
<selfhostblocks/modules/blocks/authelia.nix> -
shb.authelia.secrets.identityProvidersOIDCIssuerPrivateKey.result -
Result part of the secret contract.
Options set by the provider module that indicates where the secret can be found.
Type: submodule
Default:
{ path = "/run/secrets/secret"; }Declared by:
<selfhostblocks/modules/blocks/authelia.nix> -
shb.authelia.secrets.identityProvidersOIDCIssuerPrivateKey.result.path -
Path to the file containing the secret generated out of band.
This path will exist after deploying to a target host, it is not available through the nix store.
Type: absolute path
Default:
"/run/secrets/secret"Declared by:
<selfhostblocks/modules/blocks/authelia.nix> -
shb.authelia.secrets.jwtSecret -
JWT secret.
Type: submodule
Declared by:
<selfhostblocks/modules/blocks/authelia.nix> -
shb.authelia.secrets.jwtSecret.request -
Request part of the secret contract.
Options set by the requester module enforcing some properties the secret should have.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/blocks/authelia.nix> -
shb.authelia.secrets.jwtSecret.request.group -
Linux group owning the secret file.
Type: string
Default:
"root"Declared by:
<selfhostblocks/modules/blocks/authelia.nix> -
shb.authelia.secrets.jwtSecret.request.mode -
Mode of the secret file.
Type: string
Default:
"0400"Declared by:
<selfhostblocks/modules/blocks/authelia.nix> -
shb.authelia.secrets.jwtSecret.request.owner -
Linux user owning the secret file.
Type: string
Default:
"authelia"Declared by:
<selfhostblocks/modules/blocks/authelia.nix> -
shb.authelia.secrets.jwtSecret.request.restartUnits -
Systemd units to restart after the secret is updated.
Type: list of string
Default:
[ "authelia-shb.authelia.subdomain.shb.authelia.domain.service" ]Declared by:
<selfhostblocks/modules/blocks/authelia.nix> -
shb.authelia.secrets.jwtSecret.result -
Result part of the secret contract.
Options set by the provider module that indicates where the secret can be found.
Type: submodule
Default:
{ path = "/run/secrets/secret"; }Declared by:
<selfhostblocks/modules/blocks/authelia.nix> -
shb.authelia.secrets.jwtSecret.result.path -
Path to the file containing the secret generated out of band.
This path will exist after deploying to a target host, it is not available through the nix store.
Type: absolute path
Default:
"/run/secrets/secret"Declared by:
<selfhostblocks/modules/blocks/authelia.nix> -
shb.authelia.secrets.ldapAdminPassword -
LDAP admin user password.
Type: submodule
Declared by:
<selfhostblocks/modules/blocks/authelia.nix> -
shb.authelia.secrets.ldapAdminPassword.request -
Request part of the secret contract.
Options set by the requester module enforcing some properties the secret should have.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/blocks/authelia.nix> -
shb.authelia.secrets.ldapAdminPassword.request.group -
Linux group owning the secret file.
Type: string
Default:
"root"Declared by:
<selfhostblocks/modules/blocks/authelia.nix> -
shb.authelia.secrets.ldapAdminPassword.request.mode -
Mode of the secret file.
Type: string
Default:
"0400"Declared by:
<selfhostblocks/modules/blocks/authelia.nix> -
shb.authelia.secrets.ldapAdminPassword.request.owner -
Linux user owning the secret file.
Type: string
Default:
"authelia"Declared by:
<selfhostblocks/modules/blocks/authelia.nix> -
shb.authelia.secrets.ldapAdminPassword.request.restartUnits -
Systemd units to restart after the secret is updated.
Type: list of string
Default:
[ "authelia-shb.authelia.subdomain.shb.authelia.domain.service" ]Declared by:
<selfhostblocks/modules/blocks/authelia.nix> -
shb.authelia.secrets.ldapAdminPassword.result -
Result part of the secret contract.
Options set by the provider module that indicates where the secret can be found.
Type: submodule
Default:
{ path = "/run/secrets/secret"; }Declared by:
<selfhostblocks/modules/blocks/authelia.nix> -
shb.authelia.secrets.ldapAdminPassword.result.path -
Path to the file containing the secret generated out of band.
This path will exist after deploying to a target host, it is not available through the nix store.
Type: absolute path
Default:
"/run/secrets/secret"Declared by:
<selfhostblocks/modules/blocks/authelia.nix> -
shb.authelia.secrets.sessionSecret -
Session secret.
Type: submodule
Declared by:
<selfhostblocks/modules/blocks/authelia.nix> -
shb.authelia.secrets.sessionSecret.request -
Request part of the secret contract.
Options set by the requester module enforcing some properties the secret should have.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/blocks/authelia.nix> -
shb.authelia.secrets.sessionSecret.request.group -
Linux group owning the secret file.
Type: string
Default:
"root"Declared by:
<selfhostblocks/modules/blocks/authelia.nix> -
shb.authelia.secrets.sessionSecret.request.mode -
Mode of the secret file.
Type: string
Default:
"0400"Declared by:
<selfhostblocks/modules/blocks/authelia.nix> -
shb.authelia.secrets.sessionSecret.request.owner -
Linux user owning the secret file.
Type: string
Default:
"authelia"Declared by:
<selfhostblocks/modules/blocks/authelia.nix> -
shb.authelia.secrets.sessionSecret.request.restartUnits -
Systemd units to restart after the secret is updated.
Type: list of string
Default:
[ "authelia-shb.authelia.subdomain.shb.authelia.domain.service" ]Declared by:
<selfhostblocks/modules/blocks/authelia.nix> -
shb.authelia.secrets.sessionSecret.result -
Result part of the secret contract.
Options set by the provider module that indicates where the secret can be found.
Type: submodule
Default:
{ path = "/run/secrets/secret"; }Declared by:
<selfhostblocks/modules/blocks/authelia.nix> -
shb.authelia.secrets.sessionSecret.result.path -
Path to the file containing the secret generated out of band.
This path will exist after deploying to a target host, it is not available through the nix store.
Type: absolute path
Default:
"/run/secrets/secret"Declared by:
<selfhostblocks/modules/blocks/authelia.nix> -
shb.authelia.secrets.storageEncryptionKey -
Storage encryption key. Must be >= 20 characters.
Type: submodule
Declared by:
<selfhostblocks/modules/blocks/authelia.nix> -
shb.authelia.secrets.storageEncryptionKey.request -
Request part of the secret contract.
Options set by the requester module enforcing some properties the secret should have.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/blocks/authelia.nix> -
shb.authelia.secrets.storageEncryptionKey.request.group -
Linux group owning the secret file.
Type: string
Default:
"root"Declared by:
<selfhostblocks/modules/blocks/authelia.nix> -
shb.authelia.secrets.storageEncryptionKey.request.mode -
Mode of the secret file.
Type: string
Default:
"0400"Declared by:
<selfhostblocks/modules/blocks/authelia.nix> -
shb.authelia.secrets.storageEncryptionKey.request.owner -
Linux user owning the secret file.
Type: string
Default:
"authelia"Declared by:
<selfhostblocks/modules/blocks/authelia.nix> -
shb.authelia.secrets.storageEncryptionKey.request.restartUnits -
Systemd units to restart after the secret is updated.
Type: list of string
Default:
[ "authelia-shb.authelia.subdomain.shb.authelia.domain.service" ]Declared by:
<selfhostblocks/modules/blocks/authelia.nix> -
shb.authelia.secrets.storageEncryptionKey.result -
Result part of the secret contract.
Options set by the provider module that indicates where the secret can be found.
Type: submodule
Default:
{ path = "/run/secrets/secret"; }Declared by:
<selfhostblocks/modules/blocks/authelia.nix> -
shb.authelia.secrets.storageEncryptionKey.result.path -
Path to the file containing the secret generated out of band.
This path will exist after deploying to a target host, it is not available through the nix store.
Type: absolute path
Default:
"/run/secrets/secret"Declared by:
<selfhostblocks/modules/blocks/authelia.nix> -
shb.authelia.smtp -
If a string is given, writes notifications to the given path.Otherwise, send notifications by smtp.
https://www.authelia.com/configuration/notifications/introduction/
Type: string or null or (submodule)
Default:
"/tmp/authelia-notifications"Declared by:
<selfhostblocks/modules/blocks/authelia.nix> -
shb.authelia.ssl -
Path to SSL files
Type: null or (open submodule of anything)
Default:
nullDeclared by:
<selfhostblocks/modules/blocks/authelia.nix> -
shb.authelia.ssl.paths -
Paths where the files for the certificate will be located.
This option is the contract output of the
shb.certs.certsSSL block.Type: open submodule of anything
Declared by:
<selfhostblocks/modules/blocks/authelia.nix> -
shb.authelia.ssl.paths.cert -
Path to the cert file.
Type: absolute path
Declared by:
<selfhostblocks/modules/blocks/authelia.nix> -
shb.authelia.ssl.paths.key -
Path to the key file.
Type: absolute path
Declared by:
<selfhostblocks/modules/blocks/authelia.nix> -
shb.authelia.ssl.systemdService -
Systemd oneshot service used to generate the certificate. Ends with the
.servicesuffix.Use this if downstream services must wait for the certificates to be generated before starting.
Type: string
Example:
"cert-generator.service"Declared by:
<selfhostblocks/modules/blocks/authelia.nix> -
shb.authelia.subdomain -
Subdomain under which Authelia will be served.
Type: string
Example:
"auth"Declared by:
<selfhostblocks/modules/blocks/authelia.nix> -
shb.borgbackup.enableDashboard -
Whether to enable the Backups SHB dashboard.
Type: boolean
Default:
trueExample:
trueDeclared by:
<selfhostblocks/modules/blocks/borgbackup.nix> -
shb.borgbackup.borgServer -
Add borgbackup package to
environment.systemPackagesso external backups can use this server as a remote.Type: boolean
Default:
falseExample:
trueDeclared by:
<selfhostblocks/modules/blocks/borgbackup.nix> -
shb.borgbackup.databases -
Databases to backup following the database backup contract.
Type: attribute set of (submodule)
Default:
{ }Declared by:
<selfhostblocks/modules/blocks/borgbackup.nix> -
shb.borgbackup.databases.<name>.request -
Request part of the database backup contract.
Options set by the requester module enforcing how to backup files.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/blocks/borgbackup.nix> -
shb.borgbackup.databases.<name>.request.backupCmd -
Command that produces the database dump on stdout.
Type: string
Default:
""Example:
${pkgs.postgresql}/bin/pg_dumpall | ${pkgs.gzip}/bin/gzip --rsyncableDeclared by:
<selfhostblocks/modules/blocks/borgbackup.nix> -
shb.borgbackup.databases.<name>.request.backupName -
Name of the backup in the repository.
Type: string
Default:
"dump"Example:
"postgresql.sql"Declared by:
<selfhostblocks/modules/blocks/borgbackup.nix> -
shb.borgbackup.databases.<name>.request.restoreCmd -
Command that reads the database dump on stdin and restores the database.
Type: string
Default:
""Example:
${pkgs.gzip}/bin/gunzip | ${pkgs.postgresql}/bin/psql postgresDeclared by:
<selfhostblocks/modules/blocks/borgbackup.nix> -
shb.borgbackup.databases.<name>.request.user -
Unix user doing the backups.
This should be an admin user having access to all databases.
Type: string
Default:
"root"Example:
"postgres"Declared by:
<selfhostblocks/modules/blocks/borgbackup.nix> -
shb.borgbackup.databases.<name>.result -
Result part of the database backup contract.
Options set by the provider module that indicates the name of the backup and restore scripts.
Type: submodule
Default: { restoreScript = borgbackup-job-<name>_path_to_repository; backupService = borgbackup-job-<name>_path_to_repository.service; }
Declared by:
<selfhostblocks/modules/blocks/borgbackup.nix> -
shb.borgbackup.databases.<name>.result.backupService -
Name of service backing up the database.
This script can be ran manually to backup the database:
$ systemctl start borgbackup-job-<name>_path_to_repository.serviceType: string
Default: borgbackup-job-<name>_path_to_repository.service
Declared by:
<selfhostblocks/modules/blocks/borgbackup.nix> -
shb.borgbackup.databases.<name>.result.restoreScript -
Name of script that can restore the database. One can then list snapshots with:
$ borgbackup-job-<name>_path_to_repository snapshotsAnd restore the database with:
$ borgbackup-job-<name>_path_to_repository restore latestType: string
Default: borgbackup-job-<name>_path_to_repository
Declared by:
<selfhostblocks/modules/blocks/borgbackup.nix> -
shb.borgbackup.databases.<name>.settings -
Settings specific to the BorgBackup provider.
Type: submodule
Declared by:
<selfhostblocks/modules/blocks/borgbackup.nix> -
shb.borgbackup.databases.<name>.settings.enable -
Whether to enable SelfHostBlocks’ BorgBackup block;
A disabled instance will not backup data anymore but still provides the helper tool to restore snapshots .
Type: boolean
Default:
falseExample:
trueDeclared by:
<selfhostblocks/modules/blocks/borgbackup.nix> -
shb.borgbackup.databases.<name>.settings.consistency -
Consistency frequency options.
Type: attribute set of non-empty string
Default:
{ }Example:
{ archives = "1 month"; repository = "2 weeks"; }Declared by:
<selfhostblocks/modules/blocks/borgbackup.nix> -
shb.borgbackup.databases.<name>.settings.limitUploadKiBs -
Limit upload bandwidth to the given KiB/s amount.
Type: null or signed integer
Default:
nullExample:
8000Declared by:
<selfhostblocks/modules/blocks/borgbackup.nix> -
shb.borgbackup.databases.<name>.settings.passphrase -
Encryption key for the backup repository.
Type: submodule
Declared by:
<selfhostblocks/modules/blocks/borgbackup.nix> -
shb.borgbackup.databases.<name>.settings.passphrase.request -
Request part of the secret contract.
Options set by the requester module enforcing some properties the secret should have.
Type: submodule
Default: { mode = 0400; owner = shb.borgbackup.databases.<name>.request.user; group = root; restartUnits = [ shb.borgbackup.databases.<name>.settings.repository ]; }
Declared by:
<selfhostblocks/modules/blocks/borgbackup.nix> -
shb.borgbackup.databases.<name>.settings.passphrase.request.group -
Linux group owning the secret file.
Type: string
Default:
"root"Declared by:
<selfhostblocks/modules/blocks/borgbackup.nix> -
shb.borgbackup.databases.<name>.settings.passphrase.request.mode -
Mode of the secret file.
Type: string
Default:
"0400"Declared by:
<selfhostblocks/modules/blocks/borgbackup.nix> -
shb.borgbackup.databases.<name>.settings.passphrase.request.owner -
Linux user owning the secret file.
Type: string
Default: shb.borgbackup.databases.<name>.request.user
Declared by:
<selfhostblocks/modules/blocks/borgbackup.nix> -
shb.borgbackup.databases.<name>.settings.passphrase.request.restartUnits -
Systemd units to restart after the secret is updated.
Type: list of string
Default: [ shb.borgbackup.databases.<name>.settings.repository ]
Declared by:
<selfhostblocks/modules/blocks/borgbackup.nix> -
shb.borgbackup.databases.<name>.settings.passphrase.result -
Result part of the secret contract.
Options set by the provider module that indicates where the secret can be found.
Type: submodule
Default:
{ path = "/run/secrets/secret"; }Declared by:
<selfhostblocks/modules/blocks/borgbackup.nix> -
shb.borgbackup.databases.<name>.settings.passphrase.result.path -
Path to the file containing the secret generated out of band.
This path will exist after deploying to a target host, it is not available through the nix store.
Type: absolute path
Default:
"/run/secrets/secret"Declared by:
<selfhostblocks/modules/blocks/borgbackup.nix> -
shb.borgbackup.databases.<name>.settings.repository -
Repository to send the backups to.
Type: submodule
Declared by:
<selfhostblocks/modules/blocks/borgbackup.nix> -
shb.borgbackup.databases.<name>.settings.repository.path -
Repository location
Type: string
Declared by:
<selfhostblocks/modules/blocks/borgbackup.nix> -
shb.borgbackup.databases.<name>.settings.repository.secrets -
Secrets needed to access the repository where the backups will be stored.
See s3 config for an example and list for the list of all secrets.
Type: attribute set of (submodule)
Default:
{ }Example:
{ AWS_ACCESS_KEY_ID.source = <path/to/secret>; AWS_SECRET_ACCESS_KEY.source = <path/to/secret>; }Declared by:
<selfhostblocks/modules/blocks/borgbackup.nix> -
shb.borgbackup.databases.<name>.settings.repository.secrets.<name>.source -
File containing the value.
Type: absolute path
Declared by:
<selfhostblocks/modules/blocks/borgbackup.nix> -
shb.borgbackup.databases.<name>.settings.repository.secrets.<name>.transform -
An optional function to transform the secret.
Type: raw value
Default:
nullExample:
v: "prefix-$${v}-suffix"Declared by:
<selfhostblocks/modules/blocks/borgbackup.nix> -
shb.borgbackup.databases.<name>.settings.repository.timerConfig -
When to run the backup. See systemd.timer(5) for details.
Type: attribute set of (systemd option)
Default:
{ OnCalendar = "daily"; Persistent = true; }Example:
{ OnCalendar = "00:05"; Persistent = true; RandomizedDelaySec = "5h"; }Declared by:
<selfhostblocks/modules/blocks/borgbackup.nix> -
shb.borgbackup.databases.<name>.settings.retention -
Retention options. See borg help prune for the available options.
Type: attribute set of (signed integer or non-empty string)
Default:
{ daily = 7; hourly = 24; monthly = 6; weekly = 4; within = "1d"; }Declared by:
<selfhostblocks/modules/blocks/borgbackup.nix> -
shb.borgbackup.databases.<name>.settings.stateDir -
Override the directory in which borg stores its configuration and cache. By default it uses the user’s home directory but is some cases this can cause conflicts.
Type: null or string
Default:
nullDeclared by:
<selfhostblocks/modules/blocks/borgbackup.nix> -
shb.borgbackup.instances -
Files to backup following the backup contract.
Type: attribute set of (submodule)
Default:
{ }Declared by:
<selfhostblocks/modules/blocks/borgbackup.nix> -
shb.borgbackup.instances.<name>.request -
Request part of the backup contract.
Options set by the requester module enforcing how to backup files.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/blocks/borgbackup.nix> -
shb.borgbackup.instances.<name>.request.excludePatterns -
File patterns to exclude.
Type: list of string
Default:
[ ]Declared by:
<selfhostblocks/modules/blocks/borgbackup.nix> -
shb.borgbackup.instances.<name>.request.hooks -
Hooks to run around the backup.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/blocks/borgbackup.nix> -
shb.borgbackup.instances.<name>.request.hooks.afterBackup -
Hooks to run after backup.
Type: list of string
Default:
[ ]Declared by:
<selfhostblocks/modules/blocks/borgbackup.nix> -
shb.borgbackup.instances.<name>.request.hooks.beforeBackup -
Hooks to run before backup.
Type: list of string
Default:
[ ]Declared by:
<selfhostblocks/modules/blocks/borgbackup.nix> -
shb.borgbackup.instances.<name>.request.sourceDirectories -
Directories to backup.
Type: non-empty (list of string)
Default:
[ "/var/lib/example" ]Example:
"/var/lib/vaultwarden"Declared by:
<selfhostblocks/modules/blocks/borgbackup.nix> -
shb.borgbackup.instances.<name>.request.user -
Unix user doing the backups.
Type: string
Default:
""Example:
"vaultwarden"Declared by:
<selfhostblocks/modules/blocks/borgbackup.nix> -
shb.borgbackup.instances.<name>.result -
Result part of the backup contract.
Options set by the provider module that indicates the name of the backup and restore scripts.
Type: submodule
Default: { restoreScript = borgbackup-job-<name>_path_to_repository; backupService = borgbackup-job-<name>_path_to_repository.service; }
Declared by:
<selfhostblocks/modules/blocks/borgbackup.nix> -
shb.borgbackup.instances.<name>.result.backupService -
Name of service backing up the database.
This script can be ran manually to backup the database:
$ systemctl start borgbackup-job-<name>_path_to_repository.serviceType: string
Default: borgbackup-job-<name>_path_to_repository.service
Declared by:
<selfhostblocks/modules/blocks/borgbackup.nix> -
shb.borgbackup.instances.<name>.result.restoreScript -
Name of script that can restore the database. One can then list snapshots with:
$ borgbackup-job-<name>_path_to_repository snapshots <snapshot 1> <metadata> <snapshot 2> <metadata>And restore the database with:
$ borgbackup-job-<name>_path_to_repository restore <snapshot 1>Type: string
Default: borgbackup-job-<name>_path_to_repository
Declared by:
<selfhostblocks/modules/blocks/borgbackup.nix> -
shb.borgbackup.instances.<name>.settings -
Settings specific to the BorgBackup provider.
Type: submodule
Declared by:
<selfhostblocks/modules/blocks/borgbackup.nix> -
shb.borgbackup.instances.<name>.settings.enable -
Whether to enable SelfHostBlocks’ BorgBackup block;
A disabled instance will not backup data anymore but still provides the helper tool to restore snapshots .
Type: boolean
Default:
falseExample:
trueDeclared by:
<selfhostblocks/modules/blocks/borgbackup.nix> -
shb.borgbackup.instances.<name>.settings.consistency -
Consistency frequency options.
Type: attribute set of non-empty string
Default:
{ }Example:
{ archives = "1 month"; repository = "2 weeks"; }Declared by:
<selfhostblocks/modules/blocks/borgbackup.nix> -
shb.borgbackup.instances.<name>.settings.limitUploadKiBs -
Limit upload bandwidth to the given KiB/s amount.
Type: null or signed integer
Default:
nullExample:
8000Declared by:
<selfhostblocks/modules/blocks/borgbackup.nix> -
shb.borgbackup.instances.<name>.settings.passphrase -
Encryption key for the backup repository.
Type: submodule
Declared by:
<selfhostblocks/modules/blocks/borgbackup.nix> -
shb.borgbackup.instances.<name>.settings.passphrase.request -
Request part of the secret contract.
Options set by the requester module enforcing some properties the secret should have.
Type: submodule
Default: { mode = 0400; owner = shb.borgbackup.instances.<name>.request.user; group = root; restartUnits = [ shb.borgbackup.instances.<name>.settings.repository ]; }
Declared by:
<selfhostblocks/modules/blocks/borgbackup.nix> -
shb.borgbackup.instances.<name>.settings.passphrase.request.group -
Linux group owning the secret file.
Type: string
Default:
"root"Declared by:
<selfhostblocks/modules/blocks/borgbackup.nix> -
shb.borgbackup.instances.<name>.settings.passphrase.request.mode -
Mode of the secret file.
Type: string
Default:
"0400"Declared by:
<selfhostblocks/modules/blocks/borgbackup.nix> -
shb.borgbackup.instances.<name>.settings.passphrase.request.owner -
Linux user owning the secret file.
Type: string
Default: shb.borgbackup.instances.<name>.request.user
Declared by:
<selfhostblocks/modules/blocks/borgbackup.nix> -
shb.borgbackup.instances.<name>.settings.passphrase.request.restartUnits -
Systemd units to restart after the secret is updated.
Type: list of string
Default: [ shb.borgbackup.instances.<name>.settings.repository ]
Declared by:
<selfhostblocks/modules/blocks/borgbackup.nix> -
shb.borgbackup.instances.<name>.settings.passphrase.result -
Result part of the secret contract.
Options set by the provider module that indicates where the secret can be found.
Type: submodule
Default:
{ path = "/run/secrets/secret"; }Declared by:
<selfhostblocks/modules/blocks/borgbackup.nix> -
shb.borgbackup.instances.<name>.settings.passphrase.result.path -
Path to the file containing the secret generated out of band.
This path will exist after deploying to a target host, it is not available through the nix store.
Type: absolute path
Default:
"/run/secrets/secret"Declared by:
<selfhostblocks/modules/blocks/borgbackup.nix> -
shb.borgbackup.instances.<name>.settings.repository -
Repository to send the backups to.
Type: submodule
Declared by:
<selfhostblocks/modules/blocks/borgbackup.nix> -
shb.borgbackup.instances.<name>.settings.repository.path -
Repository location
Type: string
Declared by:
<selfhostblocks/modules/blocks/borgbackup.nix> -
shb.borgbackup.instances.<name>.settings.repository.secrets -
Secrets needed to access the repository where the backups will be stored.
See s3 config for an example and list for the list of all secrets.
Type: attribute set of (submodule)
Default:
{ }Example:
{ AWS_ACCESS_KEY_ID.source = <path/to/secret>; AWS_SECRET_ACCESS_KEY.source = <path/to/secret>; }Declared by:
<selfhostblocks/modules/blocks/borgbackup.nix> -
shb.borgbackup.instances.<name>.settings.repository.secrets.<name>.source -
File containing the value.
Type: absolute path
Declared by:
<selfhostblocks/modules/blocks/borgbackup.nix> -
shb.borgbackup.instances.<name>.settings.repository.secrets.<name>.transform -
An optional function to transform the secret.
Type: raw value
Default:
nullExample:
v: "prefix-$${v}-suffix"Declared by:
<selfhostblocks/modules/blocks/borgbackup.nix> -
shb.borgbackup.instances.<name>.settings.repository.timerConfig -
When to run the backup. See systemd.timer(5) for details.
Type: attribute set of (systemd option)
Default:
{ OnCalendar = "daily"; Persistent = true; }Example:
{ OnCalendar = "00:05"; Persistent = true; RandomizedDelaySec = "5h"; }Declared by:
<selfhostblocks/modules/blocks/borgbackup.nix> -
shb.borgbackup.instances.<name>.settings.retention -
Retention options. See borg help prune for the available options.
Type: attribute set of (signed integer or non-empty string)
Default:
{ daily = 7; hourly = 24; monthly = 6; weekly = 4; within = "1d"; }Declared by:
<selfhostblocks/modules/blocks/borgbackup.nix> -
shb.borgbackup.instances.<name>.settings.stateDir -
Override the directory in which borg stores its configuration and cache. By default it uses the user’s home directory but is some cases this can cause conflicts.
Type: null or string
Default:
nullDeclared by:
<selfhostblocks/modules/blocks/borgbackup.nix> -
shb.borgbackup.performance -
Reduce performance impact of backup jobs.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/blocks/borgbackup.nix> -
shb.borgbackup.performance.ioPriority -
ionice priority, defaults to 7 for lowest priority IO.
Type: null or integer between 0 and 7 (both inclusive)
Default:
7Declared by:
<selfhostblocks/modules/blocks/borgbackup.nix> -
shb.borgbackup.performance.ioSchedulingClass -
ionice scheduling class, defaults to best-effort IO.
Type: one of “idle”, “best-effort”, “realtime”
Default:
"best-effort"Declared by:
<selfhostblocks/modules/blocks/borgbackup.nix> -
shb.borgbackup.performance.niceness -
nice priority adjustment, defaults to 15 for ~20% CPU time of normal-priority process
Type: integer between -20 and 19 (both inclusive)
Default:
15Declared by:
<selfhostblocks/modules/blocks/borgbackup.nix> -
shb.certs.enableDashboard -
Whether to enable the SSL SHB dashboard.
Type: boolean
Default:
trueExample:
trueDeclared by:
<selfhostblocks/modules/blocks/ssl.nix> -
shb.certs.cas.selfsigned -
Generate a self-signed Certificate Authority.
Type: attribute set of (submodule)
Default:
{ }Declared by:
<selfhostblocks/modules/blocks/ssl.nix> -
shb.certs.cas.selfsigned.<name>.name -
Certificate Authority Name. You can put what you want here, it will be displayed by the browser.
Type: string
Default:
"Self Host Blocks Certificate"Declared by:
<selfhostblocks/modules/blocks/ssl.nix> -
shb.certs.cas.selfsigned.<name>.paths -
Paths where CA certs will be located.
This option implements the SSL Generator contract.
Type: open submodule of anything
Default:
{ cert = "/var/lib/certs/cas/‹name›.cert"; key = "/var/lib/certs/cas/‹name›.key"; }Declared by:
<selfhostblocks/modules/blocks/ssl.nix> -
shb.certs.cas.selfsigned.<name>.paths.cert -
Path to the cert file.
Type: absolute path
Declared by:
<selfhostblocks/modules/blocks/ssl.nix> -
shb.certs.cas.selfsigned.<name>.paths.key -
Path to the key file.
Type: absolute path
Declared by:
<selfhostblocks/modules/blocks/ssl.nix> -
shb.certs.cas.selfsigned.<name>.systemdService -
Systemd oneshot service used to generate the certs.
This option implements the SSL Generator contract.
Type: string
Default:
"shb-certs-ca-‹name›.service"Declared by:
<selfhostblocks/modules/blocks/ssl.nix> -
shb.certs.certs.letsencrypt -
Generate certificates signed by Let’s Encrypt.
Type: attribute set of (submodule)
Default:
{ }Declared by:
<selfhostblocks/modules/blocks/ssl.nix> -
shb.certs.certs.letsencrypt.<name>.additionalEnvironment -
Additional environment variables used to configure the DNS provider.
For secrets, use shb.ssl.credentialsFile instead.
See the chosen provider’s documentation for available options.
Type: attribute set of string
Default:
{ }Example:
{ DNSPROVIDER_TIMEOUT = "10"; DNSPROVIDER_PROPAGATION_TIMEOUT = "240"; }Declared by:
<selfhostblocks/modules/blocks/ssl.nix> -
shb.certs.certs.letsencrypt.<name>.adminEmail -
Admin email in case certificate retrieval goes wrong.
Type: string
Declared by:
<selfhostblocks/modules/blocks/ssl.nix> -
shb.certs.certs.letsencrypt.<name>.afterAndWants -
Systemd service(s) that must start successfully before attempting to reach acme.
Type: list of string
Default:
[ ]Example:
[ "dnsmasq.service" ]Declared by:
<selfhostblocks/modules/blocks/ssl.nix> -
shb.certs.certs.letsencrypt.<name>.credentialsFile -
Credentials file location for the chosen DNS provider.
The content of this file must expose environment variables as written in the documentation of each DNS provider.
For example, if the documentation says the credential must be located in the environment variable DNSPROVIDER_TOKEN, then the file content must be:
DNSPROVIDER_TOKEN=xyz
You can put non-secret environment variables here too or use shb.ssl.additionalcfg instead.
Type: null or absolute path
Default:
nullExample:
"/run/secrets/ssl"Declared by:
<selfhostblocks/modules/blocks/ssl.nix> -
shb.certs.certs.letsencrypt.<name>.debug -
Enable debug logging
Type: boolean
Default:
falseDeclared by:
<selfhostblocks/modules/blocks/ssl.nix> -
shb.certs.certs.letsencrypt.<name>.dnsProvider -
DNS provider to use.
See https://go-acme.github.io/lego/dns/ for the list of supported providers.
If null is given, use instead the reverse proxy to validate the domain.
Type: null or string
Default:
nullExample:
"linode"Declared by:
<selfhostblocks/modules/blocks/ssl.nix> -
shb.certs.certs.letsencrypt.<name>.dnsResolver -
IP of a DNS server used to resolve hostnames.
Type: string
Default:
"8.8.8.8"Declared by:
<selfhostblocks/modules/blocks/ssl.nix> -
shb.certs.certs.letsencrypt.<name>.domain -
Domain to generate a certificate for. This can be a wildcard domain like
*.example.com.Type: string
Example:
"example.com"Declared by:
<selfhostblocks/modules/blocks/ssl.nix> -
shb.certs.certs.letsencrypt.<name>.extraDomains -
Other domains to generate a certificate for.
Type: list of string
Default:
[ ]Example:
[ "sub1.example.com" "sub2.example.com" ]Declared by:
<selfhostblocks/modules/blocks/ssl.nix> -
shb.certs.certs.letsencrypt.<name>.group -
Unix group owning this certificate.
Type: null or string
Default:
"acme"Example:
"nginx"Declared by:
<selfhostblocks/modules/blocks/ssl.nix> -
shb.certs.certs.letsencrypt.<name>.makeAvailableToUser -
Make all certificates available to given user.
Type: null or string
Default:
nullDeclared by:
<selfhostblocks/modules/blocks/ssl.nix> -
shb.certs.certs.letsencrypt.<name>.paths -
Paths where certs will be located.
This option implements the SSL Generator contract.
Type: open submodule of anything
Default:
{ cert = "/var/lib/acme/‹name›/cert.pem"; key = "/var/lib/acme/‹name›/key.pem"; }Declared by:
<selfhostblocks/modules/blocks/ssl.nix> -
shb.certs.certs.letsencrypt.<name>.paths.cert -
Path to the cert file.
Type: absolute path
Declared by:
<selfhostblocks/modules/blocks/ssl.nix> -
shb.certs.certs.letsencrypt.<name>.paths.key -
Path to the key file.
Type: absolute path
Declared by:
<selfhostblocks/modules/blocks/ssl.nix> -
shb.certs.certs.letsencrypt.<name>.reloadServices -
The list of systemd services to call
systemctl try-reload-or-restarton.Type: list of string
Default:
[ ]Example:
[ "nginx.service" ]Declared by:
<selfhostblocks/modules/blocks/ssl.nix> -
shb.certs.certs.letsencrypt.<name>.stagingServer -
User Let’s Encrypt’s staging server.
Type: boolean
Default:
falseDeclared by:
<selfhostblocks/modules/blocks/ssl.nix> -
shb.certs.certs.letsencrypt.<name>.systemdService -
Systemd oneshot service used to generate the certs.
This option implements the SSL Generator contract.
Type: string
Default:
"shb-certs-cert-letsencrypt-‹name›.service"Declared by:
<selfhostblocks/modules/blocks/ssl.nix> -
shb.certs.certs.selfsigned -
Generate self-signed certificates signed by a Certificate Authority.
Type: attribute set of (submodule)
Default:
{ }Declared by:
<selfhostblocks/modules/blocks/ssl.nix> -
shb.certs.certs.selfsigned.<name>.ca -
CA used to generate this certificate. Only used for self-signed.
This contract input takes the contract output of the
shb.certs.casSSL block.Type: null or (open submodule of anything)
Default:
nullDeclared by:
<selfhostblocks/modules/blocks/ssl.nix> -
shb.certs.certs.selfsigned.<name>.ca.paths -
Paths where the files for the CA will be located.
This option is the contract output of the
shb.certs.casSSL block.Type: open submodule of anything
Declared by:
<selfhostblocks/modules/blocks/ssl.nix> -
shb.certs.certs.selfsigned.<name>.ca.paths.cert -
Path to the cert file.
Type: absolute path
Declared by:
<selfhostblocks/modules/blocks/ssl.nix> -
shb.certs.certs.selfsigned.<name>.ca.paths.key -
Path to the key file.
Type: absolute path
Declared by:
<selfhostblocks/modules/blocks/ssl.nix> -
shb.certs.certs.selfsigned.<name>.ca.systemdService -
Systemd oneshot service used to generate the CA. Ends with the
.servicesuffix.Use this if downstream services must wait for the certificates to be generated before starting.
Type: string
Example:
"ca-generator.service"Declared by:
<selfhostblocks/modules/blocks/ssl.nix> -
shb.certs.certs.selfsigned.<name>.domain -
Domain to generate a certificate for. This can be a wildcard domain like
*.example.com.Type: string
Example:
"example.com"Declared by:
<selfhostblocks/modules/blocks/ssl.nix> -
shb.certs.certs.selfsigned.<name>.extraDomains -
Other domains to generate a certificate for.
Type: list of string
Default:
[ ]Example:
[ "sub1.example.com" "sub2.example.com" ]Declared by:
<selfhostblocks/modules/blocks/ssl.nix> -
shb.certs.certs.selfsigned.<name>.group -
Unix group owning this certificate.
Type: string
Default:
"root"Example:
"nginx"Declared by:
<selfhostblocks/modules/blocks/ssl.nix> -
shb.certs.certs.selfsigned.<name>.paths -
Paths where certs will be located.
This option implements the SSL Generator contract.
Type: open submodule of anything
Default:
{ cert = "/var/lib/certs/selfsigned/‹name›.cert"; key = "/var/lib/certs/selfsigned/‹name›.key"; }Declared by:
<selfhostblocks/modules/blocks/ssl.nix> -
shb.certs.certs.selfsigned.<name>.paths.cert -
Path to the cert file.
Type: absolute path
Declared by:
<selfhostblocks/modules/blocks/ssl.nix> -
shb.certs.certs.selfsigned.<name>.paths.key -
Path to the key file.
Type: absolute path
Declared by:
<selfhostblocks/modules/blocks/ssl.nix> -
shb.certs.certs.selfsigned.<name>.reloadServices -
The list of systemd services to call
systemctl try-reload-or-restarton.Type: list of string
Default:
[ ]Example:
[ "nginx.service" ]Declared by:
<selfhostblocks/modules/blocks/ssl.nix> -
shb.certs.certs.selfsigned.<name>.systemdService -
Systemd oneshot service used to generate the certs.
This option implements the SSL Generator contract.
Type: string
Default:
"shb-certs-cert-selfsigned-‹name›.service"Declared by:
<selfhostblocks/modules/blocks/ssl.nix> -
shb.certs.systemdService -
Systemd oneshot service used to generate the Certificate Authority bundle.
Type: string
Default:
"shb-ca-bundle.service"Declared by:
<selfhostblocks/modules/blocks/ssl.nix> -
shb.contracts.backup -
Contract for backing up files between a requester module and a provider module.
The requester communicates to the provider what files to backup through the
requestoptions.The provider reads from the
requestoptions and backs up the requested files. It communicates to the requester what script is used to backup and restore the files through theresultoptions.Type: submodule
Declared by:
<selfhostblocks/modules/contracts/backup/dummyModule.nix> -
shb.contracts.backup.request -
Request part of the backup contract.
Options set by the requester module enforcing how to backup files.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/contracts/backup/dummyModule.nix> -
shb.contracts.backup.request.excludePatterns -
File patterns to exclude.
Type: list of string
Default:
[ ]Declared by:
<selfhostblocks/modules/contracts/backup/dummyModule.nix> -
shb.contracts.backup.request.hooks -
Hooks to run around the backup.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/contracts/backup/dummyModule.nix> -
shb.contracts.backup.request.hooks.afterBackup -
Hooks to run after backup.
Type: list of string
Default:
[ ]Declared by:
<selfhostblocks/modules/contracts/backup/dummyModule.nix> -
shb.contracts.backup.request.hooks.beforeBackup -
Hooks to run before backup.
Type: list of string
Default:
[ ]Declared by:
<selfhostblocks/modules/contracts/backup/dummyModule.nix> -
shb.contracts.backup.request.sourceDirectories -
Directories to backup.
Type: non-empty (list of string)
Default:
[ "/var/lib/example" ]Example:
"/var/lib/vaultwarden"Declared by:
<selfhostblocks/modules/contracts/backup/dummyModule.nix> -
shb.contracts.backup.request.user -
Unix user doing the backups.
Type: string
Default:
""Example:
"vaultwarden"Declared by:
<selfhostblocks/modules/contracts/backup/dummyModule.nix> -
shb.contracts.backup.result -
Result part of the backup contract.
Options set by the provider module that indicates the name of the backup and restore scripts.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/contracts/backup/dummyModule.nix> -
shb.contracts.backup.result.backupService -
Name of service backing up the database.
This script can be ran manually to backup the database:
$ systemctl start backup.serviceType: string
Default:
"backup.service"Declared by:
<selfhostblocks/modules/contracts/backup/dummyModule.nix> -
shb.contracts.backup.result.restoreScript -
Name of script that can restore the database. One can then list snapshots with:
$ restore snapshots <snapshot 1> <metadata> <snapshot 2> <metadata>And restore the database with:
$ restore restore <snapshot 1>Type: string
Default:
"restore"Declared by:
<selfhostblocks/modules/contracts/backup/dummyModule.nix> -
shb.contracts.backup.settings -
Optional attribute set with options specific to the provider.
Type: anything
Declared by:
<selfhostblocks/modules/contracts/backup/dummyModule.nix> -
shb.contracts.dashboard -
Contract for user-facing services that want to be displayed on a dashboard.
The requester communicates to the provider how to access the service through the
requestoptions.The provider reads from the
requestoptions and configures what is necessary on its side to show the service and check its availability. It does not communicate back to the requester.Type: submodule
Declared by:
<selfhostblocks/modules/contracts/dashboard/dummyModule.nix> -
shb.contracts.dashboard.request -
Request part of the dashboard contract.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/contracts/dashboard/dummyModule.nix> -
shb.contracts.dashboard.request.externalUrl -
URL at which the service can be accessed.
This URL should go through the reverse proxy.
Type: string
Default:
""Example:
"https://jellyfin.example.com"Declared by:
<selfhostblocks/modules/contracts/dashboard/dummyModule.nix> -
shb.contracts.dashboard.request.internalUrl -
URL at which the service can be accessed directly.
This URL should bypass the reverse proxy. It can be used for example to ping the service and making sure it is up and running correctly.
Type: null or string
Default:
nullExample:
"http://127.0.0.1:8081"Declared by:
<selfhostblocks/modules/contracts/dashboard/dummyModule.nix> -
shb.contracts.dashboard.result -
Result part of the dashboard contract.
No option is provided here.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/contracts/dashboard/dummyModule.nix> -
shb.contracts.dashboard.settings -
Optional attribute set with options specific to the provider.
Type: anything
Declared by:
<selfhostblocks/modules/contracts/dashboard/dummyModule.nix> -
shb.contracts.databasebackup -
Contract for database backup between a requester module and a provider module.
The requester communicates to the provider how to backup the database through the
requestoptions.The provider reads from the
requestoptions and backs up the database as requested. It communicates to the requester what script is used to backup and restore the database through theresultoptions.Type: submodule
Declared by:
<selfhostblocks/modules/contracts/databasebackup/dummyModule.nix> -
shb.contracts.databasebackup.request -
Request part of the database backup contract.
Options set by the requester module enforcing how to backup files.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/contracts/databasebackup/dummyModule.nix> -
shb.contracts.databasebackup.request.backupCmd -
Command that produces the database dump on stdout.
Type: string
Default:
""Example:
${pkgs.postgresql}/bin/pg_dumpall | ${pkgs.gzip}/bin/gzip --rsyncableDeclared by:
<selfhostblocks/modules/contracts/databasebackup/dummyModule.nix> -
shb.contracts.databasebackup.request.backupName -
Name of the backup in the repository.
Type: string
Default:
"dump"Example:
"postgresql.sql"Declared by:
<selfhostblocks/modules/contracts/databasebackup/dummyModule.nix> -
shb.contracts.databasebackup.request.restoreCmd -
Command that reads the database dump on stdin and restores the database.
Type: string
Default:
""Example:
${pkgs.gzip}/bin/gunzip | ${pkgs.postgresql}/bin/psql postgresDeclared by:
<selfhostblocks/modules/contracts/databasebackup/dummyModule.nix> -
shb.contracts.databasebackup.request.user -
Unix user doing the backups.
This should be an admin user having access to all databases.
Type: string
Default:
"root"Example:
"postgres"Declared by:
<selfhostblocks/modules/contracts/databasebackup/dummyModule.nix> -
shb.contracts.databasebackup.result -
Result part of the database backup contract.
Options set by the provider module that indicates the name of the backup and restore scripts.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/contracts/databasebackup/dummyModule.nix> -
shb.contracts.databasebackup.result.backupService -
Name of service backing up the database.
This script can be ran manually to backup the database:
$ systemctl start backup.serviceType: string
Default:
"backup.service"Declared by:
<selfhostblocks/modules/contracts/databasebackup/dummyModule.nix> -
shb.contracts.databasebackup.result.restoreScript -
Name of script that can restore the database. One can then list snapshots with:
$ restore snapshotsAnd restore the database with:
$ restore restore latestType: string
Default:
"restore"Declared by:
<selfhostblocks/modules/contracts/databasebackup/dummyModule.nix> -
shb.contracts.databasebackup.settings -
Optional attribute set with options specific to the provider.
Type: anything
Declared by:
<selfhostblocks/modules/contracts/databasebackup/dummyModule.nix> -
shb.contracts.datasetbackup -
Contract for backing up ZFS datasets.
The requester communicates to the provider the dataset to backup through the
requestoptions.The provider reads from the
requestoptions and backs up the requested dataset. It communicates to the requester what script is used to backup and restore the files through theresultoptions.Type: submodule
Declared by:
<selfhostblocks/modules/contracts/datasetbackup/dummyModule.nix> -
shb.contracts.datasetbackup.request -
Request part of the backup contract.
Options set by the requester module enforcing how to backup files.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/contracts/datasetbackup/dummyModule.nix> -
shb.contracts.datasetbackup.request.dataset -
Dataset to backup, including the pool name.
Type: string
Default:
""Example:
"root/home"Declared by:
<selfhostblocks/modules/contracts/datasetbackup/dummyModule.nix> -
shb.contracts.datasetbackup.result -
Result part of the backup contract.
Options set by the provider module that indicates the name of the backup and restore scripts.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/contracts/datasetbackup/dummyModule.nix> -
shb.contracts.datasetbackup.result.backupService -
Name of service backing up the database.
This script can be ran manually to backup the database:
$ systemctl start backup.serviceType: string
Default:
"backup.service"Declared by:
<selfhostblocks/modules/contracts/datasetbackup/dummyModule.nix> -
shb.contracts.datasetbackup.result.restoreScript -
Name of script that can restore the database. One can then list snapshots with:
$ restore snapshots <snapshot 1> <metadata> <snapshot 2> <metadata>And restore the database with:
$ restore restore <snapshot 1>It is not garanteed to be able to restore back to a snapshot in the future. With the above example, it may not be possible to restore
<snapshot 2>after having restored<snapshot 1>.Type: string
Default:
"restore"Declared by:
<selfhostblocks/modules/contracts/datasetbackup/dummyModule.nix> -
shb.contracts.datasetbackup.settings -
Optional attribute set with options specific to the provider.
Type: anything
Declared by:
<selfhostblocks/modules/contracts/datasetbackup/dummyModule.nix> -
shb.contracts.secret -
Contract for secrets between a requester module and a provider module.
The requester communicates to the provider some properties the secret should have through the
request.*options.The provider reads from the
request.*options and creates the secret as requested. It then communicates to the requester where the secret can be found through theresult.*options.Type: submodule
Declared by:
<selfhostblocks/modules/contracts/secret/dummyModule.nix> -
shb.contracts.secret.request -
Request part of the secret contract.
Options set by the requester module enforcing some properties the secret should have.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/contracts/secret/dummyModule.nix> -
shb.contracts.secret.request.group -
Linux group owning the secret file.
Type: string
Default:
"root"Declared by:
<selfhostblocks/modules/contracts/secret/dummyModule.nix> -
shb.contracts.secret.request.mode -
Mode of the secret file.
Type: string
Default:
"0400"Declared by:
<selfhostblocks/modules/contracts/secret/dummyModule.nix> -
shb.contracts.secret.request.owner -
Linux user owning the secret file.
Type: string
Default:
"root"Declared by:
<selfhostblocks/modules/contracts/secret/dummyModule.nix> -
shb.contracts.secret.request.restartUnits -
Systemd units to restart after the secret is updated.
Type: list of string
Default:
[ ]Declared by:
<selfhostblocks/modules/contracts/secret/dummyModule.nix> -
shb.contracts.secret.result -
Result part of the secret contract.
Options set by the provider module that indicates where the secret can be found.
Type: submodule
Default:
{ path = "/run/secrets/secret"; }Declared by:
<selfhostblocks/modules/contracts/secret/dummyModule.nix> -
shb.contracts.secret.result.path -
Path to the file containing the secret generated out of band.
This path will exist after deploying to a target host, it is not available through the nix store.
Type: absolute path
Default:
"/run/secrets/secret"Declared by:
<selfhostblocks/modules/contracts/secret/dummyModule.nix> -
shb.contracts.secret.settings -
Optional attribute set with options specific to the provider.
Type: anything
Declared by:
<selfhostblocks/modules/contracts/secret/dummyModule.nix> -
shb.contracts.ssl -
Contract for SSL Certificate generator.
Type: open submodule of anything
Declared by:
<selfhostblocks/modules/contracts/ssl/dummyModule.nix> -
shb.contracts.ssl.paths -
Paths where the files for the certificate will be located.
This option is the contract output of the
shb.certs.certsSSL block.Type: open submodule of anything
Declared by:
<selfhostblocks/modules/contracts/ssl/dummyModule.nix> -
shb.contracts.ssl.paths.cert -
Path to the cert file.
Type: absolute path
Declared by:
<selfhostblocks/modules/contracts/ssl/dummyModule.nix> -
shb.contracts.ssl.paths.key -
Path to the key file.
Type: absolute path
Declared by:
<selfhostblocks/modules/contracts/ssl/dummyModule.nix> -
shb.contracts.ssl.systemdService -
Systemd oneshot service used to generate the certificate. Ends with the
.servicesuffix.Use this if downstream services must wait for the certificates to be generated before starting.
Type: string
Example:
"cert-generator.service"Declared by:
<selfhostblocks/modules/contracts/ssl/dummyModule.nix> -
shb.davfs.mounts -
List of mounts.
Type: list of (submodule)
Default:
[ ]Declared by:
<selfhostblocks/modules/blocks/davfs.nix> -
shb.davfs.mounts.*.automount -
Create a systemd automount unit
Type: boolean
Default:
trueDeclared by:
<selfhostblocks/modules/blocks/davfs.nix> -
shb.davfs.mounts.*.directoryMode -
Directory creation mode
Type: null or string
Default:
nullExample:
"2775"Declared by:
<selfhostblocks/modules/blocks/davfs.nix> -
shb.davfs.mounts.*.fileMode -
File creation mode
Type: null or string
Default:
nullExample:
"0664"Declared by:
<selfhostblocks/modules/blocks/davfs.nix> -
shb.davfs.mounts.*.gid -
Group owner of the mount point.
Type: null or signed integer
Default:
nullExample:
1000Declared by:
<selfhostblocks/modules/blocks/davfs.nix> -
shb.davfs.mounts.*.mountPoint -
Mount point to mount the webdav endpoint on.
Type: string
Example:
"/mnt"Declared by:
<selfhostblocks/modules/blocks/davfs.nix> -
shb.davfs.mounts.*.passwordFile -
Password to connect to the webdav endpoint.
Type: string
Declared by:
<selfhostblocks/modules/blocks/davfs.nix> -
shb.davfs.mounts.*.remoteUrl -
Webdav endpoint to connect to.
Type: string
Example:
"https://my.domain.com/dav"Declared by:
<selfhostblocks/modules/blocks/davfs.nix> -
shb.davfs.mounts.*.uid -
User owner of the mount point.
Type: null or signed integer
Default:
nullExample:
1000Declared by:
<selfhostblocks/modules/blocks/davfs.nix> -
shb.davfs.mounts.*.username -
Username to connect to the webdav endpoint.
Type: string
Declared by:
<selfhostblocks/modules/blocks/davfs.nix> -
shb.deluge.enable -
Whether to enable the SHB Deluge service.
Type: boolean
Default:
falseExample:
trueDeclared by:
<selfhostblocks/modules/services/deluge.nix> -
shb.deluge.enableDashboard -
Whether to enable the Torrents SHB monitoring dashboard.
Type: boolean
Default:
trueExample:
trueDeclared by:
<selfhostblocks/modules/services/deluge.nix> -
shb.deluge.enabledPlugins -
Plugins to enable, can include those from additionalPlugins.
Label is automatically enabled if any of the
shb.arr.*service is enabled.Type: list of string
Default:
[ ]Example:
[ "Label" ]Declared by:
<selfhostblocks/modules/services/deluge.nix> -
shb.deluge.additionalPlugins -
Location of additional plugins. Each item in the list must be the path to the directory containing the plugin .egg file.
Type: list of absolute path
Default:
[ ]Example:
additionalPlugins = [ (pkgs.callPackage ({ python3, fetchFromGitHub }: python3.pkgs.buildPythonPackage { name = "deluge-autotracker"; version = "1.0.0"; src = fetchFromGitHub { owner = "ibizaman"; repo = "deluge-autotracker"; rev = "cc40d816a497bbf1c2ebeb3d8b1176210548a3e6"; sha256 = "sha256-0LpVdv1fak2a5eX4unjhUcN7nMAl9fgpr3X+7XnQE6c="; } + "/autotracker"; doCheck = false; format = "other"; nativeBuildInputs = [ python3.pkgs.setuptools ]; buildPhase = '' mkdir "$out" python3 setup.py install --install-lib "$out" ''; doInstallPhase = false; }) {}) ];Declared by:
<selfhostblocks/modules/services/deluge.nix> -
shb.deluge.authEndpoint -
OIDC endpoint for SSO
Type: null or string
Default:
nullExample:
"https://authelia.example.com"Declared by:
<selfhostblocks/modules/services/deluge.nix> -
shb.deluge.backup -
Backup configuration.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/deluge.nix> -
shb.deluge.backup.request -
Request part of the backup contract.
Options set by the requester module enforcing how to backup files.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/services/deluge.nix> -
shb.deluge.backup.request.excludePatterns -
File patterns to exclude.
Type: list of string
Default:
[ ]Declared by:
<selfhostblocks/modules/services/deluge.nix> -
shb.deluge.backup.request.hooks -
Hooks to run around the backup.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/deluge.nix> -
shb.deluge.backup.request.hooks.afterBackup -
Hooks to run after backup.
Type: list of string
Default:
[ ]Declared by:
<selfhostblocks/modules/services/deluge.nix> -
shb.deluge.backup.request.hooks.beforeBackup -
Hooks to run before backup.
Type: list of string
Default:
[ ]Declared by:
<selfhostblocks/modules/services/deluge.nix> -
shb.deluge.backup.request.sourceDirectories -
Directories to backup.
Type: non-empty (list of string)
Default:
[ "/var/lib/deluge" ]Example:
"/var/lib/vaultwarden"Declared by:
<selfhostblocks/modules/services/deluge.nix> -
shb.deluge.backup.request.user -
Unix user doing the backups.
Type: string
Default:
"deluge"Example:
"vaultwarden"Declared by:
<selfhostblocks/modules/services/deluge.nix> -
shb.deluge.backup.result -
Result part of the backup contract.
Options set by the provider module that indicates the name of the backup and restore scripts.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/services/deluge.nix> -
shb.deluge.backup.result.backupService -
Name of service backing up the database.
This script can be ran manually to backup the database:
$ systemctl start backup.serviceType: string
Default:
"backup.service"Declared by:
<selfhostblocks/modules/services/deluge.nix> -
shb.deluge.backup.result.restoreScript -
Name of script that can restore the database. One can then list snapshots with:
$ restore snapshots <snapshot 1> <metadata> <snapshot 2> <metadata>And restore the database with:
$ restore restore <snapshot 1>Type: string
Default:
"restore"Declared by:
<selfhostblocks/modules/services/deluge.nix> -
shb.deluge.daemonListenPorts -
Deluge daemon listen ports
Type: list of signed integer
Default:
[ 6881 6889 ]Declared by:
<selfhostblocks/modules/services/deluge.nix> -
shb.deluge.daemonPort -
Deluge daemon port
Type: signed integer
Default:
58846Declared by:
<selfhostblocks/modules/services/deluge.nix> -
shb.deluge.dashboard -
Dashboard contract consumer
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/deluge.nix> -
shb.deluge.dashboard.request -
Request part of the dashboard contract.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/deluge.nix> -
shb.deluge.dashboard.request.externalUrl -
URL at which the service can be accessed.
This URL should go through the reverse proxy.
Type: string
Default:
"https://\${config.shb.deluge.subdomain}.\${config.shb.deluge.domain}"Example:
"https://jellyfin.example.com"Declared by:
<selfhostblocks/modules/services/deluge.nix> -
shb.deluge.dashboard.request.internalUrl -
URL at which the service can be accessed directly.
This URL should bypass the reverse proxy. It can be used for example to ping the service and making sure it is up and running correctly.
Type: null or string
Default:
"http://127.0.0.1:8112"Example:
"http://127.0.0.1:8081"Declared by:
<selfhostblocks/modules/services/deluge.nix> -
shb.deluge.dashboard.result -
Result part of the dashboard contract.
No option is provided here.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/deluge.nix> -
shb.deluge.dataDir -
Path where all configuration and state is stored.
Type: string
Default:
"/var/lib/deluge"Declared by:
<selfhostblocks/modules/services/deluge.nix> -
shb.deluge.domain -
domain under which deluge will be served.
Type: string
Example:
"mydomain.com"Declared by:
<selfhostblocks/modules/services/deluge.nix> -
shb.deluge.extraServiceConfig -
Extra configuration given to the systemd service file.
Type: attribute set of string
Default:
{ }Example:
{ MemoryHigh = "512M"; MemoryMax = "900M"; }Declared by:
<selfhostblocks/modules/services/deluge.nix> -
shb.deluge.extraUsers -
Users having access to this deluge instance. Attrset of username to user options.
Type: attribute set of (submodule)
Declared by:
<selfhostblocks/modules/services/deluge.nix> -
shb.deluge.extraUsers.<name>.password -
File containing the user password.
Type: submodule
Declared by:
<selfhostblocks/modules/services/deluge.nix> -
shb.deluge.extraUsers.<name>.password.source -
File containing the value.
Type: absolute path
Declared by:
<selfhostblocks/modules/services/deluge.nix> -
shb.deluge.extraUsers.<name>.password.transform -
An optional function to transform the secret.
Type: raw value
Default:
nullExample:
v: "prefix-$${v}-suffix"Declared by:
<selfhostblocks/modules/services/deluge.nix> -
shb.deluge.localclientPassword -
Password for mandatory localclient user.
Type: submodule
Declared by:
<selfhostblocks/modules/services/deluge.nix> -
shb.deluge.localclientPassword.request -
Request part of the secret contract.
Options set by the requester module enforcing some properties the secret should have.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/services/deluge.nix> -
shb.deluge.localclientPassword.request.group -
Linux group owning the secret file.
Type: string
Default:
"root"Declared by:
<selfhostblocks/modules/services/deluge.nix> -
shb.deluge.localclientPassword.request.mode -
Mode of the secret file.
Type: string
Default:
"0400"Declared by:
<selfhostblocks/modules/services/deluge.nix> -
shb.deluge.localclientPassword.request.owner -
Linux user owning the secret file.
Type: string
Default:
"deluge"Declared by:
<selfhostblocks/modules/services/deluge.nix> -
shb.deluge.localclientPassword.request.restartUnits -
Systemd units to restart after the secret is updated.
Type: list of string
Default:
[ "deluged.service" ]Declared by:
<selfhostblocks/modules/services/deluge.nix> -
shb.deluge.localclientPassword.result -
Result part of the secret contract.
Options set by the provider module that indicates where the secret can be found.
Type: submodule
Default:
{ path = "/run/secrets/secret"; }Declared by:
<selfhostblocks/modules/services/deluge.nix> -
shb.deluge.localclientPassword.result.path -
Path to the file containing the secret generated out of band.
This path will exist after deploying to a target host, it is not available through the nix store.
Type: absolute path
Default:
"/run/secrets/secret"Declared by:
<selfhostblocks/modules/services/deluge.nix> -
shb.deluge.logLevel -
Enable logging.
Type: null or one of “critical”, “error”, “warning”, “info”, “debug”
Default:
nullExample:
"info"Declared by:
<selfhostblocks/modules/services/deluge.nix> -
shb.deluge.outgoingInterface -
If not null, sets up a deluge to bind all outgoing traffic to the given interface.
Type: null or string
Default:
nullDeclared by:
<selfhostblocks/modules/services/deluge.nix> -
shb.deluge.prometheusScraperPassword -
Password for prometheus scraper. Setting this option will activate the prometheus deluge exporter.
Type: null or (submodule)
Default:
nullDeclared by:
<selfhostblocks/modules/services/deluge.nix> -
shb.deluge.prometheusScraperPassword.request -
Request part of the secret contract.
Options set by the requester module enforcing some properties the secret should have.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/services/deluge.nix> -
shb.deluge.prometheusScraperPassword.request.group -
Linux group owning the secret file.
Type: string
Default:
"root"Declared by:
<selfhostblocks/modules/services/deluge.nix> -
shb.deluge.prometheusScraperPassword.request.mode -
Mode of the secret file.
Type: string
Default:
"0400"Declared by:
<selfhostblocks/modules/services/deluge.nix> -
shb.deluge.prometheusScraperPassword.request.owner -
Linux user owning the secret file.
Type: string
Default:
"deluge"Declared by:
<selfhostblocks/modules/services/deluge.nix> -
shb.deluge.prometheusScraperPassword.request.restartUnits -
Systemd units to restart after the secret is updated.
Type: list of string
Default:
[ "deluged.service" "prometheus.service" ]Declared by:
<selfhostblocks/modules/services/deluge.nix> -
shb.deluge.prometheusScraperPassword.result -
Result part of the secret contract.
Options set by the provider module that indicates where the secret can be found.
Type: submodule
Default:
{ path = "/run/secrets/secret"; }Declared by:
<selfhostblocks/modules/services/deluge.nix> -
shb.deluge.prometheusScraperPassword.result.path -
Path to the file containing the secret generated out of band.
This path will exist after deploying to a target host, it is not available through the nix store.
Type: absolute path
Default:
"/run/secrets/secret"Declared by:
<selfhostblocks/modules/services/deluge.nix> -
shb.deluge.proxyPort -
If not null, sets up a deluge to forward all traffic to the Proxy listening at that port.
Type: null or signed integer
Default:
nullDeclared by:
<selfhostblocks/modules/services/deluge.nix> -
shb.deluge.settings -
Deluge operational settings.
Type: submodule
Declared by:
<selfhostblocks/modules/services/deluge.nix> -
shb.deluge.settings.dont_count_slow_torrents -
Do not count slow torrents towards any limits.
Type: boolean
Default:
trueDeclared by:
<selfhostblocks/modules/services/deluge.nix> -
shb.deluge.settings.downloadLocation -
Folder where torrents gets downloaded
Type: string
Example:
"/srv/torrents"Declared by:
<selfhostblocks/modules/services/deluge.nix> -
shb.deluge.settings.max_active_downloading -
Maximum Active Downloading
Type: signed integer
Default:
30Declared by:
<selfhostblocks/modules/services/deluge.nix> -
shb.deluge.settings.max_active_limit -
Maximum Active Limit
Type: signed integer
Default:
200Declared by:
<selfhostblocks/modules/services/deluge.nix> -
shb.deluge.settings.max_active_seeding -
Maximum Active Seeding
Type: signed integer
Default:
100Declared by:
<selfhostblocks/modules/services/deluge.nix> -
shb.deluge.settings.max_connections_global -
Maximum Connections Global
Type: signed integer
Default:
200Declared by:
<selfhostblocks/modules/services/deluge.nix> -
shb.deluge.settings.max_connections_per_torrent -
Maximum Connections Per Torrent
Type: signed integer
Default:
50Declared by:
<selfhostblocks/modules/services/deluge.nix> -
shb.deluge.settings.max_download_speed -
Maximum Download Speed
Type: signed integer
Default:
1000Declared by:
<selfhostblocks/modules/services/deluge.nix> -
shb.deluge.settings.max_download_speed_per_torrent -
Maximum Download Speed Per Torrent
Type: signed integer
Default:
-1Declared by:
<selfhostblocks/modules/services/deluge.nix> -
shb.deluge.settings.max_upload_slots_global -
Maximum Upload Slots Global
Type: signed integer
Default:
100Declared by:
<selfhostblocks/modules/services/deluge.nix> -
shb.deluge.settings.max_upload_slots_per_torrent -
Maximum Upload Slots Per Torrent
Type: signed integer
Default:
4Declared by:
<selfhostblocks/modules/services/deluge.nix> -
shb.deluge.settings.max_upload_speed -
Maximum Upload Speed
Type: signed integer
Default:
200Declared by:
<selfhostblocks/modules/services/deluge.nix> -
shb.deluge.settings.max_upload_speed_per_torrent -
Maximum Upload Speed Per Torrent
Type: signed integer
Default:
50Declared by:
<selfhostblocks/modules/services/deluge.nix> -
shb.deluge.ssl -
Path to SSL files
Type: null or (open submodule of anything)
Default:
nullDeclared by:
<selfhostblocks/modules/services/deluge.nix> -
shb.deluge.ssl.paths -
Paths where the files for the certificate will be located.
This option is the contract output of the
shb.certs.certsSSL block.Type: open submodule of anything
Declared by:
<selfhostblocks/modules/services/deluge.nix> -
shb.deluge.ssl.paths.cert -
Path to the cert file.
Type: absolute path
Declared by:
<selfhostblocks/modules/services/deluge.nix> -
shb.deluge.ssl.paths.key -
Path to the key file.
Type: absolute path
Declared by:
<selfhostblocks/modules/services/deluge.nix> -
shb.deluge.ssl.systemdService -
Systemd oneshot service used to generate the certificate. Ends with the
.servicesuffix.Use this if downstream services must wait for the certificates to be generated before starting.
Type: string
Example:
"cert-generator.service"Declared by:
<selfhostblocks/modules/services/deluge.nix> -
shb.deluge.subdomain -
Subdomain under which deluge will be served.
Type: string
Example:
"ha"Declared by:
<selfhostblocks/modules/services/deluge.nix> -
shb.deluge.webPort -
Deluge web port
Type: signed integer
Default:
8112Declared by:
<selfhostblocks/modules/services/deluge.nix> -
shb.firefly-iii.enable -
Whether to enable SHB’s firefly-iii module.
Type: boolean
Default:
falseExample:
trueDeclared by:
<selfhostblocks/modules/services/firefly-iii.nix> -
shb.firefly-iii.appKey -
Encryption key used for sessions. Must be 32 characters long exactly.
Type: submodule
Declared by:
<selfhostblocks/modules/services/firefly-iii.nix> -
shb.firefly-iii.appKey.request -
Request part of the secret contract.
Options set by the requester module enforcing some properties the secret should have.
Type: submodule
Default: { mode = 0400; owner = services.firefly-iii.user; group = root; restartUnits = [ firefly-iii-setup.service ]; }
Declared by:
<selfhostblocks/modules/services/firefly-iii.nix> -
shb.firefly-iii.appKey.request.group -
Linux group owning the secret file.
Type: string
Default:
"root"Declared by:
<selfhostblocks/modules/services/firefly-iii.nix> -
shb.firefly-iii.appKey.request.mode -
Mode of the secret file.
Type: string
Default:
"0400"Declared by:
<selfhostblocks/modules/services/firefly-iii.nix> -
shb.firefly-iii.appKey.request.owner -
Linux user owning the secret file.
Type: string
Default: services.firefly-iii.user
Declared by:
<selfhostblocks/modules/services/firefly-iii.nix> -
shb.firefly-iii.appKey.request.restartUnits -
Systemd units to restart after the secret is updated.
Type: list of string
Default:
[ "firefly-iii-setup.service" ]Declared by:
<selfhostblocks/modules/services/firefly-iii.nix> -
shb.firefly-iii.appKey.result -
Result part of the secret contract.
Options set by the provider module that indicates where the secret can be found.
Type: submodule
Default:
{ path = "/run/secrets/secret"; }Declared by:
<selfhostblocks/modules/services/firefly-iii.nix> -
shb.firefly-iii.appKey.result.path -
Path to the file containing the secret generated out of band.
This path will exist after deploying to a target host, it is not available through the nix store.
Type: absolute path
Default:
"/run/secrets/secret"Declared by:
<selfhostblocks/modules/services/firefly-iii.nix> -
shb.firefly-iii.backup -
Backup configuration.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/firefly-iii.nix> -
shb.firefly-iii.backup.request -
Request part of the backup contract.
Options set by the requester module enforcing how to backup files.
Type: submodule
Default: { user = services.firefly-iii.user; sourceDirectories = [ config.services.firefly-iii.dataDir ] ; excludePatterns = [ ]; hooks.beforeBackup = [ ]; hooks.afterBackup = [ ]; };
Declared by:
<selfhostblocks/modules/services/firefly-iii.nix> -
shb.firefly-iii.backup.request.excludePatterns -
File patterns to exclude.
Type: list of string
Default:
[ ]Declared by:
<selfhostblocks/modules/services/firefly-iii.nix> -
shb.firefly-iii.backup.request.hooks -
Hooks to run around the backup.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/firefly-iii.nix> -
shb.firefly-iii.backup.request.hooks.afterBackup -
Hooks to run after backup.
Type: list of string
Default:
[ ]Declared by:
<selfhostblocks/modules/services/firefly-iii.nix> -
shb.firefly-iii.backup.request.hooks.beforeBackup -
Hooks to run before backup.
Type: list of string
Default:
[ ]Declared by:
<selfhostblocks/modules/services/firefly-iii.nix> -
shb.firefly-iii.backup.request.sourceDirectories -
Directories to backup.
Type: non-empty (list of string)
Default: [ config.services.firefly-iii.dataDir ]
Example:
"/var/lib/vaultwarden"Declared by:
<selfhostblocks/modules/services/firefly-iii.nix> -
shb.firefly-iii.backup.request.user -
Unix user doing the backups.
Type: string
Default: services.firefly-iii.user
Example:
"vaultwarden"Declared by:
<selfhostblocks/modules/services/firefly-iii.nix> -
shb.firefly-iii.backup.result -
Result part of the backup contract.
Options set by the provider module that indicates the name of the backup and restore scripts.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/services/firefly-iii.nix> -
shb.firefly-iii.backup.result.backupService -
Name of service backing up the database.
This script can be ran manually to backup the database:
$ systemctl start backup.serviceType: string
Default:
"backup.service"Declared by:
<selfhostblocks/modules/services/firefly-iii.nix> -
shb.firefly-iii.backup.result.restoreScript -
Name of script that can restore the database. One can then list snapshots with:
$ restore snapshots <snapshot 1> <metadata> <snapshot 2> <metadata>And restore the database with:
$ restore restore <snapshot 1>Type: string
Default:
"restore"Declared by:
<selfhostblocks/modules/services/firefly-iii.nix> -
shb.firefly-iii.dashboard -
Dashboard contract consumer
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/firefly-iii.nix> -
shb.firefly-iii.dashboard.request -
Request part of the dashboard contract.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/firefly-iii.nix> -
shb.firefly-iii.dashboard.request.externalUrl -
URL at which the service can be accessed.
This URL should go through the reverse proxy.
Type: string
Default:
"https://\${config.shb.firefly-iii.subdomain}.\${config.shb.firefly-iii.domain}"Example:
"https://jellyfin.example.com"Declared by:
<selfhostblocks/modules/services/firefly-iii.nix> -
shb.firefly-iii.dashboard.request.internalUrl -
URL at which the service can be accessed directly.
This URL should bypass the reverse proxy. It can be used for example to ping the service and making sure it is up and running correctly.
Type: null or string
Default:
"https://\${config.shb.firefly-iii.subdomain}.\${config.shb.firefly-iii.domain}"Example:
"http://127.0.0.1:8081"Declared by:
<selfhostblocks/modules/services/firefly-iii.nix> -
shb.firefly-iii.dashboard.result -
Result part of the dashboard contract.
No option is provided here.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/firefly-iii.nix> -
shb.firefly-iii.dbPassword -
DB password.
Type: submodule
Declared by:
<selfhostblocks/modules/services/firefly-iii.nix> -
shb.firefly-iii.dbPassword.request -
Request part of the secret contract.
Options set by the requester module enforcing some properties the secret should have.
Type: submodule
Default: { mode = 0440; owner = services.firefly-iii.user; group = postgres; restartUnits = [ postgresql.service firefly-iii-setup.service ]; }
Declared by:
<selfhostblocks/modules/services/firefly-iii.nix> -
shb.firefly-iii.dbPassword.request.group -
Linux group owning the secret file.
Type: string
Default:
"postgres"Declared by:
<selfhostblocks/modules/services/firefly-iii.nix> -
shb.firefly-iii.dbPassword.request.mode -
Mode of the secret file.
Type: string
Default:
"0440"Declared by:
<selfhostblocks/modules/services/firefly-iii.nix> -
shb.firefly-iii.dbPassword.request.owner -
Linux user owning the secret file.
Type: string
Default: services.firefly-iii.user
Declared by:
<selfhostblocks/modules/services/firefly-iii.nix> -
shb.firefly-iii.dbPassword.request.restartUnits -
Systemd units to restart after the secret is updated.
Type: list of string
Default:
[ "postgresql.service" "firefly-iii-setup.service" ]Declared by:
<selfhostblocks/modules/services/firefly-iii.nix> -
shb.firefly-iii.dbPassword.result -
Result part of the secret contract.
Options set by the provider module that indicates where the secret can be found.
Type: submodule
Default:
{ path = "/run/secrets/secret"; }Declared by:
<selfhostblocks/modules/services/firefly-iii.nix> -
shb.firefly-iii.dbPassword.result.path -
Path to the file containing the secret generated out of band.
This path will exist after deploying to a target host, it is not available through the nix store.
Type: absolute path
Default:
"/run/secrets/secret"Declared by:
<selfhostblocks/modules/services/firefly-iii.nix> -
shb.firefly-iii.debug -
Enable more verbose logging.
Type: boolean
Default:
falseExample:
trueDeclared by:
<selfhostblocks/modules/services/firefly-iii.nix> -
shb.firefly-iii.domain -
Domain under which firefly-iii is served.
<subdomain>.<domain>[:<port>]Type: string
Example:
"domain.com"Declared by:
<selfhostblocks/modules/services/firefly-iii.nix> -
shb.firefly-iii.impermanence -
Path to save when using impermanence setup.
Type: string
Default:
"services.firefly-iii.dataDir"Declared by:
<selfhostblocks/modules/services/firefly-iii.nix> -
shb.firefly-iii.importer -
Configuration for Firefly-iii data importer.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/firefly-iii.nix> -
shb.firefly-iii.importer.enable -
Whether to enable Firefly-iii Data Importer…
Type: boolean
Default:
trueExample:
trueDeclared by:
<selfhostblocks/modules/services/firefly-iii.nix> -
shb.firefly-iii.importer.firefly-iii-accessToken -
Create a Personal Access Token then set then token in this option.
Type: null or (submodule)
Default:
nullDeclared by:
<selfhostblocks/modules/services/firefly-iii.nix> -
shb.firefly-iii.importer.firefly-iii-accessToken.request -
Request part of the secret contract.
Options set by the requester module enforcing some properties the secret should have.
Type: submodule
Default: { mode = 0400; owner = services.firefly-iii-data-importer.user; group = root; restartUnits = [ firefly-iii-data-importer-setup.service ]; }
Declared by:
<selfhostblocks/modules/services/firefly-iii.nix> -
shb.firefly-iii.importer.firefly-iii-accessToken.request.group -
Linux group owning the secret file.
Type: string
Default:
"root"Declared by:
<selfhostblocks/modules/services/firefly-iii.nix> -
shb.firefly-iii.importer.firefly-iii-accessToken.request.mode -
Mode of the secret file.
Type: string
Default:
"0400"Declared by:
<selfhostblocks/modules/services/firefly-iii.nix> -
shb.firefly-iii.importer.firefly-iii-accessToken.request.owner -
Linux user owning the secret file.
Type: string
Default: services.firefly-iii-data-importer.user
Declared by:
<selfhostblocks/modules/services/firefly-iii.nix> -
shb.firefly-iii.importer.firefly-iii-accessToken.request.restartUnits -
Systemd units to restart after the secret is updated.
Type: list of string
Default:
[ "firefly-iii-data-importer-setup.service" ]Declared by:
<selfhostblocks/modules/services/firefly-iii.nix> -
shb.firefly-iii.importer.firefly-iii-accessToken.result -
Result part of the secret contract.
Options set by the provider module that indicates where the secret can be found.
Type: submodule
Default:
{ path = "/run/secrets/secret"; }Declared by:
<selfhostblocks/modules/services/firefly-iii.nix> -
shb.firefly-iii.importer.firefly-iii-accessToken.result.path -
Path to the file containing the secret generated out of band.
This path will exist after deploying to a target host, it is not available through the nix store.
Type: absolute path
Default:
"/run/secrets/secret"Declared by:
<selfhostblocks/modules/services/firefly-iii.nix> -
shb.firefly-iii.importer.subdomain -
Subdomain under which the firefly-iii data importer will be served.
Type: string
Default:
${shb.firefly-iii.subdomain}-importerDeclared by:
<selfhostblocks/modules/services/firefly-iii.nix> -
shb.firefly-iii.ldap -
LDAP Integration
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/firefly-iii.nix> -
shb.firefly-iii.ldap.adminGroup -
Group users must belong to to be able to import data user the Firefly-iii data importer.
Type: string
Default:
"firefly-iii_admin"Declared by:
<selfhostblocks/modules/services/firefly-iii.nix> -
shb.firefly-iii.ldap.userGroup -
Group users must belong to to be able to login to Firefly-iii.
Type: string
Default:
"firefly-iii_user"Declared by:
<selfhostblocks/modules/services/firefly-iii.nix> -
shb.firefly-iii.siteOwnerEmail -
Email of the site owner.
Type: string
Example:
"mail@example.com"Declared by:
<selfhostblocks/modules/services/firefly-iii.nix> -
shb.firefly-iii.smtp -
If set, send notifications through smtp.
https://docs.firefly-iii.org/how-to/firefly-iii/advanced/notifications/
Type: null or (submodule)
Default:
nullDeclared by:
<selfhostblocks/modules/services/firefly-iii.nix> -
shb.firefly-iii.smtp.from_address -
SMTP address from which the emails originate.
Type: string
Example:
"authelia@mydomain.com"Declared by:
<selfhostblocks/modules/services/firefly-iii.nix> -
shb.firefly-iii.smtp.host -
SMTP host to send the emails to.
Type: string
Declared by:
<selfhostblocks/modules/services/firefly-iii.nix> -
shb.firefly-iii.smtp.password -
File containing the password to connect to the SMTP host.
Type: submodule
Declared by:
<selfhostblocks/modules/services/firefly-iii.nix> -
shb.firefly-iii.smtp.password.request -
Request part of the secret contract.
Options set by the requester module enforcing some properties the secret should have.
Type: submodule
Default: { mode = 0400; owner = services.firefly-iii.user; group = root; restartUnits = [ firefly-iii-setup.service ]; }
Declared by:
<selfhostblocks/modules/services/firefly-iii.nix> -
shb.firefly-iii.smtp.password.request.group -
Linux group owning the secret file.
Type: string
Default:
"root"Declared by:
<selfhostblocks/modules/services/firefly-iii.nix> -
shb.firefly-iii.smtp.password.request.mode -
Mode of the secret file.
Type: string
Default:
"0400"Declared by:
<selfhostblocks/modules/services/firefly-iii.nix> -
shb.firefly-iii.smtp.password.request.owner -
Linux user owning the secret file.
Type: string
Default: services.firefly-iii.user
Declared by:
<selfhostblocks/modules/services/firefly-iii.nix> -
shb.firefly-iii.smtp.password.request.restartUnits -
Systemd units to restart after the secret is updated.
Type: list of string
Default:
[ "firefly-iii-setup.service" ]Declared by:
<selfhostblocks/modules/services/firefly-iii.nix> -
shb.firefly-iii.smtp.password.result -
Result part of the secret contract.
Options set by the provider module that indicates where the secret can be found.
Type: submodule
Default:
{ path = "/run/secrets/secret"; }Declared by:
<selfhostblocks/modules/services/firefly-iii.nix> -
shb.firefly-iii.smtp.password.result.path -
Path to the file containing the secret generated out of band.
This path will exist after deploying to a target host, it is not available through the nix store.
Type: absolute path
Default:
"/run/secrets/secret"Declared by:
<selfhostblocks/modules/services/firefly-iii.nix> -
shb.firefly-iii.smtp.port -
SMTP port to send the emails to.
Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Default:
25Declared by:
<selfhostblocks/modules/services/firefly-iii.nix> -
shb.firefly-iii.smtp.username -
Username to connect to the SMTP host.
Type: string
Declared by:
<selfhostblocks/modules/services/firefly-iii.nix> -
shb.firefly-iii.ssl -
Path to SSL files
Type: null or (open submodule of anything)
Default:
nullDeclared by:
<selfhostblocks/modules/services/firefly-iii.nix> -
shb.firefly-iii.ssl.paths -
Paths where the files for the certificate will be located.
This option is the contract output of the
shb.certs.certsSSL block.Type: open submodule of anything
Declared by:
<selfhostblocks/modules/services/firefly-iii.nix> -
shb.firefly-iii.ssl.paths.cert -
Path to the cert file.
Type: absolute path
Declared by:
<selfhostblocks/modules/services/firefly-iii.nix> -
shb.firefly-iii.ssl.paths.key -
Path to the key file.
Type: absolute path
Declared by:
<selfhostblocks/modules/services/firefly-iii.nix> -
shb.firefly-iii.ssl.systemdService -
Systemd oneshot service used to generate the certificate. Ends with the
.servicesuffix.Use this if downstream services must wait for the certificates to be generated before starting.
Type: string
Example:
"cert-generator.service"Declared by:
<selfhostblocks/modules/services/firefly-iii.nix> -
shb.firefly-iii.sso -
SSO Integration
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/firefly-iii.nix> -
shb.firefly-iii.sso.enable -
Whether to enable SSO integration…
Type: boolean
Default:
falseExample:
trueDeclared by:
<selfhostblocks/modules/services/firefly-iii.nix> -
shb.firefly-iii.sso.adminGroup -
Group admins must belong to to be able to login to Firefly-iii.
Type: string
Default:
"firefly-iii_admin"Declared by:
<selfhostblocks/modules/services/firefly-iii.nix> -
shb.firefly-iii.sso.authEndpoint -
OIDC endpoint for SSO.
Type: string
Example:
"https://authelia.example.com"Declared by:
<selfhostblocks/modules/services/firefly-iii.nix> -
shb.firefly-iii.sso.authorization_policy -
Require one factor (password) or two factor (device) authentication.
Type: one of “one_factor”, “two_factor”
Default:
"one_factor"Declared by:
<selfhostblocks/modules/services/firefly-iii.nix> -
shb.firefly-iii.sso.clientID -
Client ID for the OIDC endpoint.
Type: string
Default:
"firefly-iii"Declared by:
<selfhostblocks/modules/services/firefly-iii.nix> -
shb.firefly-iii.sso.port -
If given, adds a port to the endpoint.
Type: null or 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Default:
nullDeclared by:
<selfhostblocks/modules/services/firefly-iii.nix> -
shb.firefly-iii.sso.provider -
OIDC provider name, used for display.
Type: value “Authelia” (singular enum)
Default:
"Authelia"Declared by:
<selfhostblocks/modules/services/firefly-iii.nix> -
shb.firefly-iii.sso.secret -
OIDC shared secret.
Type: submodule
Declared by:
<selfhostblocks/modules/services/firefly-iii.nix> -
shb.firefly-iii.sso.secret.request -
Request part of the secret contract.
Options set by the requester module enforcing some properties the secret should have.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/services/firefly-iii.nix> -
shb.firefly-iii.sso.secret.request.group -
Linux group owning the secret file.
Type: string
Default:
"root"Declared by:
<selfhostblocks/modules/services/firefly-iii.nix> -
shb.firefly-iii.sso.secret.request.mode -
Mode of the secret file.
Type: string
Default:
"0400"Declared by:
<selfhostblocks/modules/services/firefly-iii.nix> -
shb.firefly-iii.sso.secret.request.owner -
Linux user owning the secret file.
Type: string
Default:
"firefly-iii"Declared by:
<selfhostblocks/modules/services/firefly-iii.nix> -
shb.firefly-iii.sso.secret.request.restartUnits -
Systemd units to restart after the secret is updated.
Type: list of string
Default:
[ "firefly-iii-setup.service" ]Declared by:
<selfhostblocks/modules/services/firefly-iii.nix> -
shb.firefly-iii.sso.secret.result -
Result part of the secret contract.
Options set by the provider module that indicates where the secret can be found.
Type: submodule
Default:
{ path = "/run/secrets/secret"; }Declared by:
<selfhostblocks/modules/services/firefly-iii.nix> -
shb.firefly-iii.sso.secret.result.path -
Path to the file containing the secret generated out of band.
This path will exist after deploying to a target host, it is not available through the nix store.
Type: absolute path
Default:
"/run/secrets/secret"Declared by:
<selfhostblocks/modules/services/firefly-iii.nix> -
shb.firefly-iii.sso.secretForAuthelia -
OIDC shared secret. Content must be the same as
secretFileoption.Type: submodule
Declared by:
<selfhostblocks/modules/services/firefly-iii.nix> -
shb.firefly-iii.sso.secretForAuthelia.request -
Request part of the secret contract.
Options set by the requester module enforcing some properties the secret should have.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/services/firefly-iii.nix> -
shb.firefly-iii.sso.secretForAuthelia.request.group -
Linux group owning the secret file.
Type: string
Default:
"root"Declared by:
<selfhostblocks/modules/services/firefly-iii.nix> -
shb.firefly-iii.sso.secretForAuthelia.request.mode -
Mode of the secret file.
Type: string
Default:
"0400"Declared by:
<selfhostblocks/modules/services/firefly-iii.nix> -
shb.firefly-iii.sso.secretForAuthelia.request.owner -
Linux user owning the secret file.
Type: string
Default:
"authelia"Declared by:
<selfhostblocks/modules/services/firefly-iii.nix> -
shb.firefly-iii.sso.secretForAuthelia.request.restartUnits -
Systemd units to restart after the secret is updated.
Type: list of string
Default:
[ ]Declared by:
<selfhostblocks/modules/services/firefly-iii.nix> -
shb.firefly-iii.sso.secretForAuthelia.result -
Result part of the secret contract.
Options set by the provider module that indicates where the secret can be found.
Type: submodule
Default:
{ path = "/run/secrets/secret"; }Declared by:
<selfhostblocks/modules/services/firefly-iii.nix> -
shb.firefly-iii.sso.secretForAuthelia.result.path -
Path to the file containing the secret generated out of band.
This path will exist after deploying to a target host, it is not available through the nix store.
Type: absolute path
Default:
"/run/secrets/secret"Declared by:
<selfhostblocks/modules/services/firefly-iii.nix> -
shb.firefly-iii.subdomain -
Subdomain under which firefly-iii will be served.
<subdomain>.<domain>Type: string
Example:
"firefly-iii"Declared by:
<selfhostblocks/modules/services/firefly-iii.nix> -
shb.forgejo.enable -
Whether to enable selfhostblocks.forgejo.
Type: boolean
Default:
falseExample:
trueDeclared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.backup -
Backup configuration.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.backup.request -
Request part of the backup contract.
Options set by the requester module enforcing how to backup files.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.backup.request.excludePatterns -
File patterns to exclude.
Type: list of string
Default:
[ ]Declared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.backup.request.hooks -
Hooks to run around the backup.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.backup.request.hooks.afterBackup -
Hooks to run after backup.
Type: list of string
Default:
[ ]Declared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.backup.request.hooks.beforeBackup -
Hooks to run before backup.
Type: list of string
Default:
[ ]Declared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.backup.request.sourceDirectories -
Directories to backup.
Type: non-empty (list of string)
Default:
[ "/var/lib/forgejo/dump" ]Example:
"/var/lib/vaultwarden"Declared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.backup.request.user -
Unix user doing the backups.
Type: string
Default:
"forgejo"Example:
"vaultwarden"Declared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.backup.result -
Result part of the backup contract.
Options set by the provider module that indicates the name of the backup and restore scripts.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.backup.result.backupService -
Name of service backing up the database.
This script can be ran manually to backup the database:
$ systemctl start backup.serviceType: string
Default:
"backup.service"Declared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.backup.result.restoreScript -
Name of script that can restore the database. One can then list snapshots with:
$ restore snapshots <snapshot 1> <metadata> <snapshot 2> <metadata>And restore the database with:
$ restore restore <snapshot 1>Type: string
Default:
"restore"Declared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.dashboard -
Dashboard contract consumer
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.dashboard.request -
Request part of the dashboard contract.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.dashboard.request.externalUrl -
URL at which the service can be accessed.
This URL should go through the reverse proxy.
Type: string
Default:
"https://\${config.shb.forgejo.subdomain}.\${config.shb.forgejo.domain}"Example:
"https://jellyfin.example.com"Declared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.dashboard.request.internalUrl -
URL at which the service can be accessed directly.
This URL should bypass the reverse proxy. It can be used for example to ping the service and making sure it is up and running correctly.
Type: null or string
Default:
"https://\${config.shb.forgejo.subdomain}.\${config.shb.forgejo.domain}"Example:
"http://127.0.0.1:8081"Declared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.dashboard.result -
Result part of the dashboard contract.
No option is provided here.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.databasePassword -
File containing the Forgejo database password.
Type: submodule
Declared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.databasePassword.request -
Request part of the secret contract.
Options set by the requester module enforcing some properties the secret should have.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.databasePassword.request.group -
Linux group owning the secret file.
Type: string
Default:
"forgejo"Declared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.databasePassword.request.mode -
Mode of the secret file.
Type: string
Default:
"0440"Declared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.databasePassword.request.owner -
Linux user owning the secret file.
Type: string
Default:
"forgejo"Declared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.databasePassword.request.restartUnits -
Systemd units to restart after the secret is updated.
Type: list of string
Default:
[ "forgejo.service" ]Declared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.databasePassword.result -
Result part of the secret contract.
Options set by the provider module that indicates where the secret can be found.
Type: submodule
Default:
{ path = "/run/secrets/secret"; }Declared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.databasePassword.result.path -
Path to the file containing the secret generated out of band.
This path will exist after deploying to a target host, it is not available through the nix store.
Type: absolute path
Default:
"/run/secrets/secret"Declared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.debug -
Enable debug logging.
Type: boolean
Default:
falseDeclared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.domain -
Domain under which Forgejo is served.
<subdomain>.<domain>[:<port>]Type: string
Example:
"domain.com"Declared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.hostPackages -
List of packages, that are available to actions, when the runner is configured with a host execution label.
Type: list of package
Default:
with pkgs; [ bash coreutils curl gawk gitMinimal gnused nodejs wget ]Declared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.ldap -
LDAP Integration.
Type: null or (submodule)
Default:
{ }Declared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.ldap.enable -
Whether to enable LDAP integration…
Type: boolean
Default:
falseExample:
trueDeclared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.ldap.adminGroup -
Group users must belong to be admins.
Type: string
Default:
"forgejo_admin"Declared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.ldap.adminName -
Admin user of the LDAP server. Cannot be reserved word ‘admin’.
Type: string
Default:
"admin"Declared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.ldap.adminPassword -
LDAP admin password.
Type: submodule
Declared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.ldap.adminPassword.request -
Request part of the secret contract.
Options set by the requester module enforcing some properties the secret should have.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.ldap.adminPassword.request.group -
Linux group owning the secret file.
Type: string
Default:
"forgejo"Declared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.ldap.adminPassword.request.mode -
Mode of the secret file.
Type: string
Default:
"0440"Declared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.ldap.adminPassword.request.owner -
Linux user owning the secret file.
Type: string
Default:
"forgejo"Declared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.ldap.adminPassword.request.restartUnits -
Systemd units to restart after the secret is updated.
Type: list of string
Default:
[ "forgejo.service" ]Declared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.ldap.adminPassword.result -
Result part of the secret contract.
Options set by the provider module that indicates where the secret can be found.
Type: submodule
Default:
{ path = "/run/secrets/secret"; }Declared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.ldap.adminPassword.result.path -
Path to the file containing the secret generated out of band.
This path will exist after deploying to a target host, it is not available through the nix store.
Type: absolute path
Default:
"/run/secrets/secret"Declared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.ldap.dcdomain -
dc domain for ldap.
Type: string
Example:
"dc=mydomain,dc=com"Declared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.ldap.host -
Host serving the LDAP server.
Type: string
Default:
"127.0.0.1"Declared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.ldap.port -
Port of the service serving the LDAP server.
Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Default:
389Declared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.ldap.provider -
LDAP provider name, used for display.
Type: value “LLDAP” (singular enum)
Default:
"LLDAP"Declared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.ldap.userGroup -
Group users must belong to be able to login.
Type: string
Default:
"forgejo_user"Declared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.ldap.waitForSystemdServices -
List of systemd services to wait on before starting. This is needed because forgejo will try a lookup on the LDAP instance and will abort setting up LDAP if it can’t reach it.
Type: list of string
Default:
[ ]Declared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.localActionRunner -
Enable local action runner that runs for all labels.
Type: boolean
Default:
trueDeclared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.mount -
Mount configuration. This is an output option.
Use it to initialize a block implementing the “mount” contract. For example, with a zfs dataset:
shb.zfs.datasets."forgejo" = { poolName = "root"; } // config.shb.forgejo.mount;Type: open submodule of anything (read only)
Default:
{ path = "/var/lib/forgejo"; }Declared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.mount.path -
Path to be mounted.
Type: string
Declared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.repositoryRoot -
Path where to store the repositories. If null, uses the default under the Forgejo StateDir.
Type: null or string
Default:
nullExample:
"/srv/forgejo"Declared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.smtp -
Send notifications by smtp.
Type: null or (submodule)
Default:
nullDeclared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.smtp.from_address -
SMTP address from which the emails originate.
Type: string
Example:
"authelia@mydomain.com"Declared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.smtp.host -
SMTP host to send the emails to.
Type: string
Declared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.smtp.password -
File containing the password to connect to the SMTP host.
Type: submodule
Declared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.smtp.password.request -
Request part of the secret contract.
Options set by the requester module enforcing some properties the secret should have.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.smtp.password.request.group -
Linux group owning the secret file.
Type: string
Default:
"forgejo"Declared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.smtp.password.request.mode -
Mode of the secret file.
Type: string
Default:
"0440"Declared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.smtp.password.request.owner -
Linux user owning the secret file.
Type: string
Default:
"forgejo"Declared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.smtp.password.request.restartUnits -
Systemd units to restart after the secret is updated.
Type: list of string
Default:
[ "forgejo.service" ]Declared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.smtp.password.result -
Result part of the secret contract.
Options set by the provider module that indicates where the secret can be found.
Type: submodule
Default:
{ path = "/run/secrets/secret"; }Declared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.smtp.password.result.path -
Path to the file containing the secret generated out of band.
This path will exist after deploying to a target host, it is not available through the nix store.
Type: absolute path
Default:
"/run/secrets/secret"Declared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.smtp.port -
SMTP port to send the emails to.
Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Default:
25Declared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.smtp.username -
Username to connect to the SMTP host.
Type: string
Declared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.ssl -
Path to SSL files
Type: null or (open submodule of anything)
Default:
nullDeclared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.ssl.paths -
Paths where the files for the certificate will be located.
This option is the contract output of the
shb.certs.certsSSL block.Type: open submodule of anything
Declared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.ssl.paths.cert -
Path to the cert file.
Type: absolute path
Declared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.ssl.paths.key -
Path to the key file.
Type: absolute path
Declared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.ssl.systemdService -
Systemd oneshot service used to generate the certificate. Ends with the
.servicesuffix.Use this if downstream services must wait for the certificates to be generated before starting.
Type: string
Example:
"cert-generator.service"Declared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.sso -
Setup SSO integration.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.sso.enable -
Whether to enable SSO integration…
Type: boolean
Default:
falseExample:
trueDeclared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.sso.authorization_policy -
Require one factor (password) or two factor (device) authentication.
Type: one of “one_factor”, “two_factor”
Default:
"one_factor"Declared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.sso.clientID -
Client ID for the OIDC endpoint.
Type: string
Default:
"forgejo"Declared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.sso.endpoint -
OIDC endpoint for SSO.
Type: string
Example:
"https://authelia.example.com"Declared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.sso.provider -
OIDC provider name, used for display.
Type: value “Authelia” (singular enum)
Default:
"Authelia"Declared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.sso.sharedSecret -
OIDC shared secret for Forgejo.
Type: submodule
Declared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.sso.sharedSecret.request -
Request part of the secret contract.
Options set by the requester module enforcing some properties the secret should have.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.sso.sharedSecret.request.group -
Linux group owning the secret file.
Type: string
Default:
"forgejo"Declared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.sso.sharedSecret.request.mode -
Mode of the secret file.
Type: string
Default:
"0440"Declared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.sso.sharedSecret.request.owner -
Linux user owning the secret file.
Type: string
Default:
"forgejo"Declared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.sso.sharedSecret.request.restartUnits -
Systemd units to restart after the secret is updated.
Type: list of string
Default:
[ "forgejo.service" ]Declared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.sso.sharedSecret.result -
Result part of the secret contract.
Options set by the provider module that indicates where the secret can be found.
Type: submodule
Default:
{ path = "/run/secrets/secret"; }Declared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.sso.sharedSecret.result.path -
Path to the file containing the secret generated out of band.
This path will exist after deploying to a target host, it is not available through the nix store.
Type: absolute path
Default:
"/run/secrets/secret"Declared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.sso.sharedSecretForAuthelia -
OIDC shared secret for Authelia.
Type: submodule
Declared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.sso.sharedSecretForAuthelia.request -
Request part of the secret contract.
Options set by the requester module enforcing some properties the secret should have.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.sso.sharedSecretForAuthelia.request.group -
Linux group owning the secret file.
Type: string
Default:
"root"Declared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.sso.sharedSecretForAuthelia.request.mode -
Mode of the secret file.
Type: string
Default:
"0400"Declared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.sso.sharedSecretForAuthelia.request.owner -
Linux user owning the secret file.
Type: string
Default:
"authelia"Declared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.sso.sharedSecretForAuthelia.request.restartUnits -
Systemd units to restart after the secret is updated.
Type: list of string
Default:
[ ]Declared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.sso.sharedSecretForAuthelia.result -
Result part of the secret contract.
Options set by the provider module that indicates where the secret can be found.
Type: submodule
Default:
{ path = "/run/secrets/secret"; }Declared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.sso.sharedSecretForAuthelia.result.path -
Path to the file containing the secret generated out of band.
This path will exist after deploying to a target host, it is not available through the nix store.
Type: absolute path
Default:
"/run/secrets/secret"Declared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.subdomain -
Subdomain under which Forgejo will be served.
<subdomain>.<domain>[:<port>]Type: string
Example:
"forgejo"Declared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.users -
Users managed declaratively.
Type: attribute set of (submodule)
Default:
{ }Declared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.users.<name>.email -
Email of user.
This is only set when the user is created, changing this later on will have no effect.
Type: string
Declared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.users.<name>.isAdmin -
Set user as admin or not.
Type: boolean
Default:
falseDeclared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.users.<name>.password -
Forgejo admin user password.
Type: submodule
Declared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.users.<name>.password.request -
Request part of the secret contract.
Options set by the requester module enforcing some properties the secret should have.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.users.<name>.password.request.group -
Linux group owning the secret file.
Type: string
Default:
"forgejo"Declared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.users.<name>.password.request.mode -
Mode of the secret file.
Type: string
Default:
"0440"Declared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.users.<name>.password.request.owner -
Linux user owning the secret file.
Type: string
Default:
"forgejo"Declared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.users.<name>.password.request.restartUnits -
Systemd units to restart after the secret is updated.
Type: list of string
Default:
[ "forgejo.service" ]Declared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.users.<name>.password.result -
Result part of the secret contract.
Options set by the provider module that indicates where the secret can be found.
Type: submodule
Default:
{ path = "/run/secrets/secret"; }Declared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.forgejo.users.<name>.password.result.path -
Path to the file containing the secret generated out of band.
This path will exist after deploying to a target host, it is not available through the nix store.
Type: absolute path
Default:
"/run/secrets/secret"Declared by:
<selfhostblocks/modules/services/forgejo.nix> -
shb.grocy.enable -
Whether to enable selfhostblocks.grocy.
Type: boolean
Default:
falseExample:
trueDeclared by:
<selfhostblocks/modules/services/grocy.nix> -
shb.grocy.backup -
Backup configuration.
Type: submodule (read only)
Declared by:
<selfhostblocks/modules/services/grocy.nix> -
shb.grocy.backup.request -
Request part of the backup contract.
Options set by the requester module enforcing how to backup files.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/services/grocy.nix> -
shb.grocy.backup.request.excludePatterns -
File patterns to exclude.
Type: list of string
Default:
[ ]Declared by:
<selfhostblocks/modules/services/grocy.nix> -
shb.grocy.backup.request.hooks -
Hooks to run around the backup.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/grocy.nix> -
shb.grocy.backup.request.hooks.afterBackup -
Hooks to run after backup.
Type: list of string
Default:
[ ]Declared by:
<selfhostblocks/modules/services/grocy.nix> -
shb.grocy.backup.request.hooks.beforeBackup -
Hooks to run before backup.
Type: list of string
Default:
[ ]Declared by:
<selfhostblocks/modules/services/grocy.nix> -
shb.grocy.backup.request.sourceDirectories -
Directories to backup.
Type: non-empty (list of string)
Default:
[ "/var/lib/grocy" ]Example:
"/var/lib/vaultwarden"Declared by:
<selfhostblocks/modules/services/grocy.nix> -
shb.grocy.backup.request.user -
Unix user doing the backups.
Type: string
Default:
"grocy"Example:
"vaultwarden"Declared by:
<selfhostblocks/modules/services/grocy.nix> -
shb.grocy.backup.result -
Result part of the backup contract.
Options set by the provider module that indicates the name of the backup and restore scripts.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/services/grocy.nix> -
shb.grocy.backup.result.backupService -
Name of service backing up the database.
This script can be ran manually to backup the database:
$ systemctl start backup.serviceType: string
Default:
"backup.service"Declared by:
<selfhostblocks/modules/services/grocy.nix> -
shb.grocy.backup.result.restoreScript -
Name of script that can restore the database. One can then list snapshots with:
$ restore snapshots <snapshot 1> <metadata> <snapshot 2> <metadata>And restore the database with:
$ restore restore <snapshot 1>Type: string
Default:
"restore"Declared by:
<selfhostblocks/modules/services/grocy.nix> -
shb.grocy.culture -
Display language of the frontend.
Type: one of “de”, “en”, “da”, “en_GB”, “es”, “fr”, “hu”, “it”, “nl”, “no”, “pl”, “pt_BR”, “ru”, “sk_SK”, “sv_SE”, “tr”
Default:
"en"Declared by:
<selfhostblocks/modules/services/grocy.nix> -
shb.grocy.currency -
ISO 4217 code for the currency to display.
Type: string
Default:
"USD"Example:
"NOK"Declared by:
<selfhostblocks/modules/services/grocy.nix> -
shb.grocy.dashboard -
Dashboard contract consumer
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/grocy.nix> -
shb.grocy.dashboard.request -
Request part of the dashboard contract.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/grocy.nix> -
shb.grocy.dashboard.request.externalUrl -
URL at which the service can be accessed.
This URL should go through the reverse proxy.
Type: string
Default:
"https://\${config.shb.grocy.subdomain}.\${config.shb.grocy.domain}"Example:
"https://jellyfin.example.com"Declared by:
<selfhostblocks/modules/services/grocy.nix> -
shb.grocy.dashboard.request.internalUrl -
URL at which the service can be accessed directly.
This URL should bypass the reverse proxy. It can be used for example to ping the service and making sure it is up and running correctly.
Type: null or string
Default:
"https://\${config.shb.grocy.subdomain}.\${config.shb.grocy.domain}"Example:
"http://127.0.0.1:8081"Declared by:
<selfhostblocks/modules/services/grocy.nix> -
shb.grocy.dashboard.result -
Result part of the dashboard contract.
No option is provided here.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/grocy.nix> -
shb.grocy.dataDir -
Folder where Grocy will store all its data.
Type: string
Default:
"/var/lib/grocy"Declared by:
<selfhostblocks/modules/services/grocy.nix> -
shb.grocy.domain -
domain under which grocy will be served.
Type: string
Example:
"mydomain.com"Declared by:
<selfhostblocks/modules/services/grocy.nix> -
shb.grocy.extraServiceConfig -
Extra configuration given to the systemd service file.
Type: attribute set of string
Default:
{ }Example:
{ MemoryHigh = "512M"; MemoryMax = "900M"; }Declared by:
<selfhostblocks/modules/services/grocy.nix> -
shb.grocy.logLevel -
Enable logging.
Type: null or one of “critical”, “error”, “warning”, “info”, “debug”
Default:
falseExample:
trueDeclared by:
<selfhostblocks/modules/services/grocy.nix> -
shb.grocy.ssl -
Path to SSL files
Type: null or (open submodule of anything)
Default:
nullDeclared by:
<selfhostblocks/modules/services/grocy.nix> -
shb.grocy.ssl.paths -
Paths where the files for the certificate will be located.
This option is the contract output of the
shb.certs.certsSSL block.Type: open submodule of anything
Declared by:
<selfhostblocks/modules/services/grocy.nix> -
shb.grocy.ssl.paths.cert -
Path to the cert file.
Type: absolute path
Declared by:
<selfhostblocks/modules/services/grocy.nix> -
shb.grocy.ssl.paths.key -
Path to the key file.
Type: absolute path
Declared by:
<selfhostblocks/modules/services/grocy.nix> -
shb.grocy.ssl.systemdService -
Systemd oneshot service used to generate the certificate. Ends with the
.servicesuffix.Use this if downstream services must wait for the certificates to be generated before starting.
Type: string
Example:
"cert-generator.service"Declared by:
<selfhostblocks/modules/services/grocy.nix> -
shb.grocy.subdomain -
Subdomain under which grocy will be served.
Type: string
Example:
"grocy"Declared by:
<selfhostblocks/modules/services/grocy.nix> -
shb.hardcodedsecret -
Hardcoded secrets. These should only be used in tests.
Type: attribute set of (submodule)
Default:
{ }Example:
{ mySecret = { request = { user = "me"; mode = "0400"; restartUnits = [ "myservice.service" ]; }; settings.content = "My Secret"; }; }Declared by:
<selfhostblocks/modules/blocks/hardcodedsecret.nix> -
shb.hardcodedsecret.<name>.request -
Request part of the secret contract.
Options set by the requester module enforcing some properties the secret should have.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/blocks/hardcodedsecret.nix> -
shb.hardcodedsecret.<name>.request.group -
Linux group owning the secret file.
Type: string
Default:
"root"Declared by:
<selfhostblocks/modules/blocks/hardcodedsecret.nix> -
shb.hardcodedsecret.<name>.request.mode -
Mode of the secret file.
Type: string
Default:
"0400"Declared by:
<selfhostblocks/modules/blocks/hardcodedsecret.nix> -
shb.hardcodedsecret.<name>.request.owner -
Linux user owning the secret file.
Type: string
Default:
"root"Declared by:
<selfhostblocks/modules/blocks/hardcodedsecret.nix> -
shb.hardcodedsecret.<name>.request.restartUnits -
Systemd units to restart after the secret is updated.
Type: list of string
Default:
[ ]Declared by:
<selfhostblocks/modules/blocks/hardcodedsecret.nix> -
shb.hardcodedsecret.<name>.result -
Result part of the secret contract.
Options set by the provider module that indicates where the secret can be found.
Type: submodule
Default:
{ path = "/run/hardcodedsecrets/hardcodedsecret_‹name›"; }Declared by:
<selfhostblocks/modules/blocks/hardcodedsecret.nix> -
shb.hardcodedsecret.<name>.result.path -
Path to the file containing the secret generated out of band.
This path will exist after deploying to a target host, it is not available through the nix store.
Type: absolute path
Default:
"/run/hardcodedsecrets/hardcodedsecret_‹name›"Declared by:
<selfhostblocks/modules/blocks/hardcodedsecret.nix> -
shb.hardcodedsecret.<name>.settings -
Settings specific to the hardcoded secret module.
Give either
contentorsource.Type: submodule
Declared by:
<selfhostblocks/modules/blocks/hardcodedsecret.nix> -
shb.hardcodedsecret.<name>.settings.content -
Content of the secret as a string.
This will be stored in the nix store and should only be used for testing or maybe in dev.
Type: null or string
Default:
nullDeclared by:
<selfhostblocks/modules/blocks/hardcodedsecret.nix> -
shb.hardcodedsecret.<name>.settings.source -
Source of the content of the secret as a path in the nix store.
Type: null or string
Default:
nullDeclared by:
<selfhostblocks/modules/blocks/hardcodedsecret.nix> -
shb.hledger.enable -
Whether to enable selfhostblocks.hledger.
Type: boolean
Default:
falseExample:
trueDeclared by:
<selfhostblocks/modules/services/hledger.nix> -
shb.hledger.authEndpoint -
OIDC endpoint for SSO
Type: null or string
Default:
nullExample:
"https://authelia.example.com"Declared by:
<selfhostblocks/modules/services/hledger.nix> -
shb.hledger.backup -
Backup configuration.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/hledger.nix> -
shb.hledger.backup.request -
Request part of the backup contract.
Options set by the requester module enforcing how to backup files.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/services/hledger.nix> -
shb.hledger.backup.request.excludePatterns -
File patterns to exclude.
Type: list of string
Default:
[ ]Declared by:
<selfhostblocks/modules/services/hledger.nix> -
shb.hledger.backup.request.hooks -
Hooks to run around the backup.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/hledger.nix> -
shb.hledger.backup.request.hooks.afterBackup -
Hooks to run after backup.
Type: list of string
Default:
[ ]Declared by:
<selfhostblocks/modules/services/hledger.nix> -
shb.hledger.backup.request.hooks.beforeBackup -
Hooks to run before backup.
Type: list of string
Default:
[ ]Declared by:
<selfhostblocks/modules/services/hledger.nix> -
shb.hledger.backup.request.sourceDirectories -
Directories to backup.
Type: non-empty (list of string)
Default:
[ "/var/lib/hledger" ]Example:
"/var/lib/vaultwarden"Declared by:
<selfhostblocks/modules/services/hledger.nix> -
shb.hledger.backup.request.user -
Unix user doing the backups.
Type: string
Default:
"hledger"Example:
"vaultwarden"Declared by:
<selfhostblocks/modules/services/hledger.nix> -
shb.hledger.backup.result -
Result part of the backup contract.
Options set by the provider module that indicates the name of the backup and restore scripts.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/services/hledger.nix> -
shb.hledger.backup.result.backupService -
Name of service backing up the database.
This script can be ran manually to backup the database:
$ systemctl start backup.serviceType: string
Default:
"backup.service"Declared by:
<selfhostblocks/modules/services/hledger.nix> -
shb.hledger.backup.result.restoreScript -
Name of script that can restore the database. One can then list snapshots with:
$ restore snapshots <snapshot 1> <metadata> <snapshot 2> <metadata>And restore the database with:
$ restore restore <snapshot 1>Type: string
Default:
"restore"Declared by:
<selfhostblocks/modules/services/hledger.nix> -
shb.hledger.dashboard -
Dashboard contract consumer
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/hledger.nix> -
shb.hledger.dashboard.request -
Request part of the dashboard contract.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/hledger.nix> -
shb.hledger.dashboard.request.externalUrl -
URL at which the service can be accessed.
This URL should go through the reverse proxy.
Type: string
Default:
"https://\${config.shb.hledger.subdomain}.\${config.shb.hledger.domain}"Example:
"https://jellyfin.example.com"Declared by:
<selfhostblocks/modules/services/hledger.nix> -
shb.hledger.dashboard.request.internalUrl -
URL at which the service can be accessed directly.
This URL should bypass the reverse proxy. It can be used for example to ping the service and making sure it is up and running correctly.
Type: null or string
Default:
"http://127.0.0.1:\${config.services.hledger-web.port}"Example:
"http://127.0.0.1:8081"Declared by:
<selfhostblocks/modules/services/hledger.nix> -
shb.hledger.dashboard.result -
Result part of the dashboard contract.
No option is provided here.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/hledger.nix> -
shb.hledger.dataDir -
Folder where Hledger will store all its data.
Type: string
Default:
"/var/lib/hledger"Declared by:
<selfhostblocks/modules/services/hledger.nix> -
shb.hledger.domain -
domain under which Authelia will be served.
Type: string
Example:
"mydomain.com"Declared by:
<selfhostblocks/modules/services/hledger.nix> -
shb.hledger.extraArguments -
Extra arguments append to the hledger command.
Type: list of string
Default:
[ "--forecast" ]Declared by:
<selfhostblocks/modules/services/hledger.nix> -
shb.hledger.localNetworkIPRange -
Local network range, to restrict access to the UI to only those IPs.
Type: string
Default:
nullExample:
"192.168.1.1/24"Declared by:
<selfhostblocks/modules/services/hledger.nix> -
shb.hledger.port -
HLedger port
Type: signed integer
Default:
5000Declared by:
<selfhostblocks/modules/services/hledger.nix> -
shb.hledger.ssl -
Path to SSL files
Type: null or (open submodule of anything)
Default:
nullDeclared by:
<selfhostblocks/modules/services/hledger.nix> -
shb.hledger.ssl.paths -
Paths where the files for the certificate will be located.
This option is the contract output of the
shb.certs.certsSSL block.Type: open submodule of anything
Declared by:
<selfhostblocks/modules/services/hledger.nix> -
shb.hledger.ssl.paths.cert -
Path to the cert file.
Type: absolute path
Declared by:
<selfhostblocks/modules/services/hledger.nix> -
shb.hledger.ssl.paths.key -
Path to the key file.
Type: absolute path
Declared by:
<selfhostblocks/modules/services/hledger.nix> -
shb.hledger.ssl.systemdService -
Systemd oneshot service used to generate the certificate. Ends with the
.servicesuffix.Use this if downstream services must wait for the certificates to be generated before starting.
Type: string
Example:
"cert-generator.service"Declared by:
<selfhostblocks/modules/services/hledger.nix> -
shb.hledger.subdomain -
Subdomain under which Authelia will be served.
Type: string
Example:
"ha"Declared by:
<selfhostblocks/modules/services/hledger.nix> -
shb.home-assistant.enable -
Whether to enable selfhostblocks.home-assistant.
Type: boolean
Default:
falseExample:
trueDeclared by:
<selfhostblocks/modules/services/home-assistant.nix> -
shb.home-assistant.backup -
Backup configuration.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/home-assistant.nix> -
shb.home-assistant.backup.request -
Request part of the backup contract.
Options set by the requester module enforcing how to backup files.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/services/home-assistant.nix> -
shb.home-assistant.backup.request.excludePatterns -
File patterns to exclude.
Type: list of string
Default:
[ ]Declared by:
<selfhostblocks/modules/services/home-assistant.nix> -
shb.home-assistant.backup.request.hooks -
Hooks to run around the backup.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/home-assistant.nix> -
shb.home-assistant.backup.request.hooks.afterBackup -
Hooks to run after backup.
Type: list of string
Default:
[ ]Declared by:
<selfhostblocks/modules/services/home-assistant.nix> -
shb.home-assistant.backup.request.hooks.beforeBackup -
Hooks to run before backup.
Type: list of string
Default:
[ ]Declared by:
<selfhostblocks/modules/services/home-assistant.nix> -
shb.home-assistant.backup.request.sourceDirectories -
Directories to backup.
Type: non-empty (list of string)
Default:
[ "/var/lib/hass/backups" ]Example:
"/var/lib/vaultwarden"Declared by:
<selfhostblocks/modules/services/home-assistant.nix> -
shb.home-assistant.backup.request.user -
Unix user doing the backups.
Type: string
Default:
"hass"Example:
"vaultwarden"Declared by:
<selfhostblocks/modules/services/home-assistant.nix> -
shb.home-assistant.backup.result -
Result part of the backup contract.
Options set by the provider module that indicates the name of the backup and restore scripts.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/services/home-assistant.nix> -
shb.home-assistant.backup.result.backupService -
Name of service backing up the database.
This script can be ran manually to backup the database:
$ systemctl start backup.serviceType: string
Default:
"backup.service"Declared by:
<selfhostblocks/modules/services/home-assistant.nix> -
shb.home-assistant.backup.result.restoreScript -
Name of script that can restore the database. One can then list snapshots with:
$ restore snapshots <snapshot 1> <metadata> <snapshot 2> <metadata>And restore the database with:
$ restore restore <snapshot 1>Type: string
Default:
"restore"Declared by:
<selfhostblocks/modules/services/home-assistant.nix> -
shb.home-assistant.config -
See all available settings at https://www.home-assistant.io/docs/configuration/basic/
Type: open submodule of attribute set of string
Declared by:
<selfhostblocks/modules/services/home-assistant.nix> -
shb.home-assistant.config.country -
Two letter country code where this instance is located.
Type: string or (submodule)
Declared by:
<selfhostblocks/modules/services/home-assistant.nix> -
shb.home-assistant.config.latitude -
Latitude where this instance is located.
Type: string or (submodule)
Declared by:
<selfhostblocks/modules/services/home-assistant.nix> -
shb.home-assistant.config.longitude -
Longitude where this instance is located.
Type: string or (submodule)
Declared by:
<selfhostblocks/modules/services/home-assistant.nix> -
shb.home-assistant.config.name -
Name of the Home Assistant instance.
Type: string or (submodule)
Declared by:
<selfhostblocks/modules/services/home-assistant.nix> -
shb.home-assistant.config.time_zone -
Timezone of this instance.
Type: string or (submodule)
Example:
"America/Los_Angeles"Declared by:
<selfhostblocks/modules/services/home-assistant.nix> -
shb.home-assistant.config.unit_system -
Unit system of this instance.
Type: string or one of “metric”, “us_customary”
Example:
"metric"Declared by:
<selfhostblocks/modules/services/home-assistant.nix> -
shb.home-assistant.dashboard -
Dashboard contract consumer
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/home-assistant.nix> -
shb.home-assistant.dashboard.request -
Request part of the dashboard contract.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/home-assistant.nix> -
shb.home-assistant.dashboard.request.externalUrl -
URL at which the service can be accessed.
This URL should go through the reverse proxy.
Type: string
Default:
"https://\${config.shb.home-assistant.subdomain}.\${config.shb.home-assistant.domain}"Example:
"https://jellyfin.example.com"Declared by:
<selfhostblocks/modules/services/home-assistant.nix> -
shb.home-assistant.dashboard.request.internalUrl -
URL at which the service can be accessed directly.
This URL should bypass the reverse proxy. It can be used for example to ping the service and making sure it is up and running correctly.
Type: null or string
Default:
"http://127.0.0.1:\${config.services.home-assistant.config.http.server_port}"Example:
"http://127.0.0.1:8081"Declared by:
<selfhostblocks/modules/services/home-assistant.nix> -
shb.home-assistant.dashboard.result -
Result part of the dashboard contract.
No option is provided here.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/home-assistant.nix> -
shb.home-assistant.domain -
domain under which home-assistant will be served.
Type: string
Example:
"mydomain.com"Declared by:
<selfhostblocks/modules/services/home-assistant.nix> -
shb.home-assistant.ldap -
LDAP Integration App. Manual
Enabling this app will create a new LDAP configuration or update one that exists with the given host.
Also, enabling LDAP will skip onboarding otherwise Home Assistant gets into a cyclic lock.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/home-assistant.nix> -
shb.home-assistant.ldap.enable -
Whether to enable LDAP app…
Type: boolean
Default:
falseExample:
trueDeclared by:
<selfhostblocks/modules/services/home-assistant.nix> -
shb.home-assistant.ldap.adminGroup -
Group users must belong to to be able to login as an admin.
Type: string
Default:
"homeassistant_admin"Declared by:
<selfhostblocks/modules/services/home-assistant.nix> -
shb.home-assistant.ldap.debug -
Whether to enable verbose output for LDAP app…
Type: boolean
Default:
falseExample:
trueDeclared by:
<selfhostblocks/modules/services/home-assistant.nix> -
shb.home-assistant.ldap.host -
Host serving the LDAP server.
If set, the Home Assistant auth will be disabled. To keep it, set
keepDefaultAuthtotrue.Type: string
Default:
"127.0.0.1"Declared by:
<selfhostblocks/modules/services/home-assistant.nix> -
shb.home-assistant.ldap.keepDefaultAuth -
Keep Home Assistant auth active, even if LDAP is configured. Usually, you want to enable this to transfer existing users to LDAP and then you can disabled it.
Type: boolean
Default:
falseDeclared by:
<selfhostblocks/modules/services/home-assistant.nix> -
shb.home-assistant.ldap.port -
Port of the service serving the LDAP server.
Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Default:
389Declared by:
<selfhostblocks/modules/services/home-assistant.nix> -
shb.home-assistant.ldap.userGroup -
Group users must belong to to be able to login as a user.
Type: string
Default:
"homeassistant_user"Declared by:
<selfhostblocks/modules/services/home-assistant.nix> -
shb.home-assistant.ssl -
Path to SSL files
Type: null or (open submodule of anything)
Default:
nullDeclared by:
<selfhostblocks/modules/services/home-assistant.nix> -
shb.home-assistant.ssl.paths -
Paths where the files for the certificate will be located.
This option is the contract output of the
shb.certs.certsSSL block.Type: open submodule of anything
Declared by:
<selfhostblocks/modules/services/home-assistant.nix> -
shb.home-assistant.ssl.paths.cert -
Path to the cert file.
Type: absolute path
Declared by:
<selfhostblocks/modules/services/home-assistant.nix> -
shb.home-assistant.ssl.paths.key -
Path to the key file.
Type: absolute path
Declared by:
<selfhostblocks/modules/services/home-assistant.nix> -
shb.home-assistant.ssl.systemdService -
Systemd oneshot service used to generate the certificate. Ends with the
.servicesuffix.Use this if downstream services must wait for the certificates to be generated before starting.
Type: string
Example:
"cert-generator.service"Declared by:
<selfhostblocks/modules/services/home-assistant.nix> -
shb.home-assistant.subdomain -
Subdomain under which home-assistant will be served.
Type: string
Example:
"ha"Declared by:
<selfhostblocks/modules/services/home-assistant.nix> -
shb.home-assistant.voice -
Options related to voice service.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/home-assistant.nix> -
shb.home-assistant.voice.speech-to-text -
Wyoming piper servers.
https://search.nixos.org/options?channel=23.11&from=0&size=50&sort=relevance&type=packages&query=services.wyoming.piper.servers
Type: attribute set of anything
Default:
{ }Declared by:
<selfhostblocks/modules/services/home-assistant.nix> -
shb.home-assistant.voice.text-to-speech -
Wyoming faster-whisper servers.
https://search.nixos.org/options?channel=23.11&from=0&size=50&sort=relevance&type=packages&query=services.wyoming.faster-whisper.servers
Type: attribute set of anything
Default:
{ }Declared by:
<selfhostblocks/modules/services/home-assistant.nix> -
shb.home-assistant.voice.wakeword -
Wyoming open wakework servers.
https://search.nixos.org/options?channel=23.11&from=0&size=50&sort=relevance&type=packages&query=services.wyoming.openwakeword
Type: anything
Default:
{ enable = false; }Declared by:
<selfhostblocks/modules/services/home-assistant.nix> -
shb.homepage.enable -
Whether to enable the SHB homepage service.
Type: boolean
Default:
falseExample:
trueDeclared by:
<selfhostblocks/modules/services/homepage.nix> -
shb.homepage.domain -
Domain under which homepage is served.
<subdomain>.<domain>Type: string
Example:
"domain.com"Declared by:
<selfhostblocks/modules/services/homepage.nix> -
shb.homepage.ldap -
Setup LDAP integration.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/homepage.nix> -
shb.homepage.ldap.userGroup -
Group users must belong to be able to login.
Type: string
Default:
"homepage_user"Declared by:
<selfhostblocks/modules/services/homepage.nix> -
shb.homepage.servicesGroups -
Group of services that should be showed on the dashboard.
Type: attribute set of (submodule)
Default:
{ }Declared by:
<selfhostblocks/modules/services/homepage.nix> -
shb.homepage.servicesGroups.<name>.name -
Display name of the group. Defaults to the attr name.
Type: string
Default:
"‹name›"Declared by:
<selfhostblocks/modules/services/homepage.nix> -
shb.homepage.servicesGroups.<name>.services -
Services that should be showed in the group on the dashboard.
Type: attribute set of (submodule)
Default:
{ }Declared by:
<selfhostblocks/modules/services/homepage.nix> -
shb.homepage.servicesGroups.<name>.services.<name>.apiKey -
API key used to access the service.
This can be used to get data from the service.
Type: null or (submodule)
Default:
nullDeclared by:
<selfhostblocks/modules/services/homepage.nix> -
shb.homepage.servicesGroups.<name>.services.<name>.apiKey.request -
Request part of the secret contract.
Options set by the requester module enforcing some properties the secret should have.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/services/homepage.nix> -
shb.homepage.servicesGroups.<name>.services.<name>.apiKey.request.group -
Linux group owning the secret file.
Type: string
Default:
"root"Declared by:
<selfhostblocks/modules/services/homepage.nix> -
shb.homepage.servicesGroups.<name>.services.<name>.apiKey.request.mode -
Mode of the secret file.
Type: string
Default:
"0400"Declared by:
<selfhostblocks/modules/services/homepage.nix> -
shb.homepage.servicesGroups.<name>.services.<name>.apiKey.request.owner -
Linux user owning the secret file.
Type: string
Default:
"root"Declared by:
<selfhostblocks/modules/services/homepage.nix> -
shb.homepage.servicesGroups.<name>.services.<name>.apiKey.request.restartUnits -
Systemd units to restart after the secret is updated.
Type: list of string
Default:
[ "homepage-dashboard.service" ]Declared by:
<selfhostblocks/modules/services/homepage.nix> -
shb.homepage.servicesGroups.<name>.services.<name>.apiKey.result -
Result part of the secret contract.
Options set by the provider module that indicates where the secret can be found.
Type: submodule
Default:
{ path = "/run/secrets/secret"; }Declared by:
<selfhostblocks/modules/services/homepage.nix> -
shb.homepage.servicesGroups.<name>.services.<name>.apiKey.result.path -
Path to the file containing the secret generated out of band.
This path will exist after deploying to a target host, it is not available through the nix store.
Type: absolute path
Default:
"/run/secrets/secret"Declared by:
<selfhostblocks/modules/services/homepage.nix> -
shb.homepage.servicesGroups.<name>.services.<name>.dashboard -
Provider of the dashboard contract.
By default:
The
serviceNameoption comes from the attr name.The
iconoption comes from applyingtoLoweron the attr name.The
siteMonitoroption is set only ifinternalUrlis set.
Type: submodule
Declared by:
<selfhostblocks/modules/services/homepage.nix> -
shb.homepage.servicesGroups.<name>.services.<name>.dashboard.request -
Request part of the dashboard contract.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/homepage.nix> -
shb.homepage.servicesGroups.<name>.services.<name>.dashboard.request.externalUrl -
URL at which the service can be accessed.
This URL should go through the reverse proxy.
Type: string
Default:
""Example:
"https://jellyfin.example.com"Declared by:
<selfhostblocks/modules/services/homepage.nix> -
shb.homepage.servicesGroups.<name>.services.<name>.dashboard.request.internalUrl -
URL at which the service can be accessed directly.
This URL should bypass the reverse proxy. It can be used for example to ping the service and making sure it is up and running correctly.
Type: null or string
Default:
nullExample:
"http://127.0.0.1:8081"Declared by:
<selfhostblocks/modules/services/homepage.nix> -
shb.homepage.servicesGroups.<name>.services.<name>.dashboard.result -
Result part of the dashboard contract.
No option is provided here.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/homepage.nix> -
shb.homepage.servicesGroups.<name>.services.<name>.name -
Display name of the service. Defaults to the attr name.
Type: string
Default:
"‹name›"Declared by:
<selfhostblocks/modules/services/homepage.nix> -
shb.homepage.servicesGroups.<name>.services.<name>.settings -
Extra options to pass to the homepage service.
Check https://gethomepage.dev/configs/services/#icons if the default icon is not correct.
And check https://gethomepage.dev/widgets if the default widget type is not correct.
Type: attribute set of anything
Default:
{ }Example:
{ icon = "si-homeassistant"; widget.type = "firefly"; widget.custom = [ { template = "{{ states('sensor.total_power', with_unit=True, rounded=True) }}"; label = "energy now"; } { state = "sensor.total_power_today"; label = "energy today"; } ]; }Declared by:
<selfhostblocks/modules/services/homepage.nix> -
shb.homepage.servicesGroups.<name>.services.<name>.sortOrder -
Order in which groups will be shown.
The rules are:
Lowest number is shown first.
Two groups having the same number are shown in a consistent (same across multiple deploys) but undefined order.
Default is null which means at the end.
Type: null or signed integer
Default:
nullDeclared by:
<selfhostblocks/modules/services/homepage.nix> -
shb.homepage.servicesGroups.<name>.sortOrder -
Order in which groups will be shown.
The rules are:
Lowest number is shown first.
Two groups having the same number are shown in a consistent (same across multiple deploys) but undefined order.
Default is null which means at the end.
Type: null or signed integer
Default:
nullDeclared by:
<selfhostblocks/modules/services/homepage.nix> -
shb.homepage.ssl -
Path to SSL files
Type: null or (open submodule of anything)
Default:
nullDeclared by:
<selfhostblocks/modules/services/homepage.nix> -
shb.homepage.ssl.paths -
Paths where the files for the certificate will be located.
This option is the contract output of the
shb.certs.certsSSL block.Type: open submodule of anything
Declared by:
<selfhostblocks/modules/services/homepage.nix> -
shb.homepage.ssl.paths.cert -
Path to the cert file.
Type: absolute path
Declared by:
<selfhostblocks/modules/services/homepage.nix> -
shb.homepage.ssl.paths.key -
Path to the key file.
Type: absolute path
Declared by:
<selfhostblocks/modules/services/homepage.nix> -
shb.homepage.ssl.systemdService -
Systemd oneshot service used to generate the certificate. Ends with the
.servicesuffix.Use this if downstream services must wait for the certificates to be generated before starting.
Type: string
Example:
"cert-generator.service"Declared by:
<selfhostblocks/modules/services/homepage.nix> -
shb.homepage.sso -
Setup SSO integration.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/homepage.nix> -
shb.homepage.sso.enable -
Whether to enable SSO integration…
Type: boolean
Default:
falseExample:
trueDeclared by:
<selfhostblocks/modules/services/homepage.nix> -
shb.homepage.sso.authEndpoint -
Endpoint to the SSO provider.
Type: string
Example:
"https://authelia.example.com"Declared by:
<selfhostblocks/modules/services/homepage.nix> -
shb.homepage.sso.authorization_policy -
Require one factor (password) or two factor (device) authentication.
Type: one of “one_factor”, “two_factor”
Default:
"one_factor"Declared by:
<selfhostblocks/modules/services/homepage.nix> -
shb.homepage.subdomain -
Subdomain under which homepage will be served.
<subdomain>.<domain>Type: string
Example:
"homepage"Declared by:
<selfhostblocks/modules/services/homepage.nix> -
shb.immich.enable -
Whether to enable selfhostblocks.immich.
Type: boolean
Default:
falseExample:
trueDeclared by:
<selfhostblocks/modules/services/immich.nix> -
shb.immich.accelerationDevices -
Hardware acceleration devices for Immich. Set to null to allow access to all devices. Set to empty list to disable hardware acceleration.
Type: null or (list of absolute path)
Default:
nullExample:
[ "/dev/dri" ]Declared by:
<selfhostblocks/modules/services/immich.nix> -
shb.immich.backup -
Backup configuration for Immich media files and database.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/immich.nix> -
shb.immich.backup.request -
Request part of the backup contract.
Options set by the requester module enforcing how to backup files.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/services/immich.nix> -
shb.immich.backup.request.excludePatterns -
File patterns to exclude.
Type: list of string
Default:
[ "*.tmp" "cache/*" "encoded-video/*" ]Declared by:
<selfhostblocks/modules/services/immich.nix> -
shb.immich.backup.request.hooks -
Hooks to run around the backup.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/immich.nix> -
shb.immich.backup.request.hooks.afterBackup -
Hooks to run after backup.
Type: list of string
Default:
[ ]Declared by:
<selfhostblocks/modules/services/immich.nix> -
shb.immich.backup.request.hooks.beforeBackup -
Hooks to run before backup.
Type: list of string
Default:
[ ]Declared by:
<selfhostblocks/modules/services/immich.nix> -
shb.immich.backup.request.sourceDirectories -
Directories to backup.
Type: non-empty (list of string)
Default:
[ "/var/lib/immich" ]Example:
"/var/lib/vaultwarden"Declared by:
<selfhostblocks/modules/services/immich.nix> -
shb.immich.backup.request.user -
Unix user doing the backups.
Type: string
Default:
"immich"Example:
"vaultwarden"Declared by:
<selfhostblocks/modules/services/immich.nix> -
shb.immich.backup.result -
Result part of the backup contract.
Options set by the provider module that indicates the name of the backup and restore scripts.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/services/immich.nix> -
shb.immich.backup.result.backupService -
Name of service backing up the database.
This script can be ran manually to backup the database:
$ systemctl start backup.serviceType: string
Default:
"backup.service"Declared by:
<selfhostblocks/modules/services/immich.nix> -
shb.immich.backup.result.restoreScript -
Name of script that can restore the database. One can then list snapshots with:
$ restore snapshots <snapshot 1> <metadata> <snapshot 2> <metadata>And restore the database with:
$ restore restore <snapshot 1>Type: string
Default:
"restore"Declared by:
<selfhostblocks/modules/services/immich.nix> -
shb.immich.dashboard -
Dashboard contract consumer
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/immich.nix> -
shb.immich.dashboard.request -
Request part of the dashboard contract.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/immich.nix> -
shb.immich.dashboard.request.externalUrl -
URL at which the service can be accessed.
This URL should go through the reverse proxy.
Type: string
Default:
"https://\${config.shb.immich.subdomain}.\${config.shb.immich.domain}"Example:
"https://jellyfin.example.com"Declared by:
<selfhostblocks/modules/services/immich.nix> -
shb.immich.dashboard.request.internalUrl -
URL at which the service can be accessed directly.
This URL should bypass the reverse proxy. It can be used for example to ping the service and making sure it is up and running correctly.
Type: null or string
Default:
"http://127.0.0.1:2283"Example:
"http://127.0.0.1:8081"Declared by:
<selfhostblocks/modules/services/immich.nix> -
shb.immich.dashboard.result -
Result part of the dashboard contract.
No option is provided here.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/immich.nix> -
shb.immich.debug -
Set to true to enable debug logging.
Type: boolean
Default:
falseExample:
trueDeclared by:
<selfhostblocks/modules/services/immich.nix> -
shb.immich.domain -
Domain under which Immich is served.
<subdomain>.<domain>Type: string
Example:
"example.com"Declared by:
<selfhostblocks/modules/services/immich.nix> -
shb.immich.jwtSecretFile -
File containing Immich’s JWT secret key for sessions. This is required for secure session management.
Type: null or (submodule)
Default:
nullDeclared by:
<selfhostblocks/modules/services/immich.nix> -
shb.immich.jwtSecretFile.request -
Request part of the secret contract.
Options set by the requester module enforcing some properties the secret should have.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/services/immich.nix> -
shb.immich.jwtSecretFile.request.group -
Linux group owning the secret file.
Type: string
Default:
"root"Declared by:
<selfhostblocks/modules/services/immich.nix> -
shb.immich.jwtSecretFile.request.mode -
Mode of the secret file.
Type: string
Default:
"0400"Declared by:
<selfhostblocks/modules/services/immich.nix> -
shb.immich.jwtSecretFile.request.owner -
Linux user owning the secret file.
Type: string
Default:
"immich"Declared by:
<selfhostblocks/modules/services/immich.nix> -
shb.immich.jwtSecretFile.request.restartUnits -
Systemd units to restart after the secret is updated.
Type: list of string
Default:
[ "immich-server.service" ]Declared by:
<selfhostblocks/modules/services/immich.nix> -
shb.immich.jwtSecretFile.result -
Result part of the secret contract.
Options set by the provider module that indicates where the secret can be found.
Type: submodule
Default:
{ path = "/run/secrets/secret"; }Declared by:
<selfhostblocks/modules/services/immich.nix> -
shb.immich.jwtSecretFile.result.path -
Path to the file containing the secret generated out of band.
This path will exist after deploying to a target host, it is not available through the nix store.
Type: absolute path
Default:
"/run/secrets/secret"Declared by:
<selfhostblocks/modules/services/immich.nix> -
shb.immich.machineLearning -
Machine learning configuration.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/immich.nix> -
shb.immich.machineLearning.enable -
Enable machine learning features.
Type: boolean
Default:
trueDeclared by:
<selfhostblocks/modules/services/immich.nix> -
shb.immich.machineLearning.environment -
Extra environment variables for machine learning service.
Type: attribute set of string
Default:
{ }Example:
{ MACHINE_LEARNING_WORKERS = "2"; MACHINE_LEARNING_WORKER_TIMEOUT = "180"; }Declared by:
<selfhostblocks/modules/services/immich.nix> -
shb.immich.mediaLocation -
Directory where Immich will store media files.
Type: string
Default:
"/var/lib/immich"Declared by:
<selfhostblocks/modules/services/immich.nix> -
shb.immich.mount -
Mount configuration. This is an output option.
Use it to initialize a block implementing the “mount” contract. For example, with a zfs dataset:
shb.zfs.datasets."immich" = { poolName = "root"; } // config.shb.immich.mount;Type: open submodule of anything (read only)
Default:
{ path = "/var/lib/immich"; }Declared by:
<selfhostblocks/modules/services/immich.nix> -
shb.immich.mount.path -
Path to be mounted.
Type: string
Declared by:
<selfhostblocks/modules/services/immich.nix> -
shb.immich.port -
Port under which Immich will listen.
Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Default:
2283Declared by:
<selfhostblocks/modules/services/immich.nix> -
shb.immich.publicProxyEnable -
Enable Immich Public Proxy service for sharing media publically.
Type: boolean
Default:
falseDeclared by:
<selfhostblocks/modules/services/immich.nix> -
shb.immich.publicProxyPort -
Port under which Immich Public Proxy will listen.
Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Default:
2284Declared by:
<selfhostblocks/modules/services/immich.nix> -
shb.immich.settings -
Immich configuration settings. Only specify settings that you want SHB to manage declaratively. Other settings can be configured through Immich’s admin UI.
See https://immich.app/docs/install/config-file/ for available options.
Type: attribute set
Default:
{ }Example:
{ ffmpeg = { crf = 23; }; job = { backgroundTask = { concurrency = 5; }; }; storageTemplate = { enabled = true; template = "{{y}}/{{y}}-{{MM}}-{{dd}}/{{filename}}"; }; }Declared by:
<selfhostblocks/modules/services/immich.nix> -
shb.immich.smtp -
SMTP configuration for sending notifications.
Type: null or (submodule)
Default:
nullDeclared by:
<selfhostblocks/modules/services/immich.nix> -
shb.immich.smtp.from -
SMTP address from which the emails originate.
Type: string
Example:
"noreply@example.com"Declared by:
<selfhostblocks/modules/services/immich.nix> -
shb.immich.smtp.host -
SMTP host to send the emails to.
Type: string
Example:
"smtp.example.com"Declared by:
<selfhostblocks/modules/services/immich.nix> -
shb.immich.smtp.ignoreTLS -
Ignore TLS certificate errors.
Type: boolean
Default:
falseDeclared by:
<selfhostblocks/modules/services/immich.nix> -
shb.immich.smtp.password -
File containing the password to connect to the SMTP host.
Type: submodule
Declared by:
<selfhostblocks/modules/services/immich.nix> -
shb.immich.smtp.password.request -
Request part of the secret contract.
Options set by the requester module enforcing some properties the secret should have.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/services/immich.nix> -
shb.immich.smtp.password.request.group -
Linux group owning the secret file.
Type: string
Default:
"root"Declared by:
<selfhostblocks/modules/services/immich.nix> -
shb.immich.smtp.password.request.mode -
Mode of the secret file.
Type: string
Default:
"0400"Declared by:
<selfhostblocks/modules/services/immich.nix> -
shb.immich.smtp.password.request.owner -
Linux user owning the secret file.
Type: string
Default:
"immich"Declared by:
<selfhostblocks/modules/services/immich.nix> -
shb.immich.smtp.password.request.restartUnits -
Systemd units to restart after the secret is updated.
Type: list of string
Default:
[ "immich-server.service" ]Declared by:
<selfhostblocks/modules/services/immich.nix> -
shb.immich.smtp.password.result -
Result part of the secret contract.
Options set by the provider module that indicates where the secret can be found.
Type: submodule
Default:
{ path = "/run/secrets/secret"; }Declared by:
<selfhostblocks/modules/services/immich.nix> -
shb.immich.smtp.password.result.path -
Path to the file containing the secret generated out of band.
This path will exist after deploying to a target host, it is not available through the nix store.
Type: absolute path
Default:
"/run/secrets/secret"Declared by:
<selfhostblocks/modules/services/immich.nix> -
shb.immich.smtp.port -
SMTP port to send the emails to.
Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Default:
587Declared by:
<selfhostblocks/modules/services/immich.nix> -
shb.immich.smtp.replyTo -
Reply-to address for emails.
Type: string
Example:
"support@example.com"Declared by:
<selfhostblocks/modules/services/immich.nix> -
shb.immich.smtp.secure -
Use secure connection (SSL/TLS).
Type: boolean
Default:
falseDeclared by:
<selfhostblocks/modules/services/immich.nix> -
shb.immich.smtp.username -
Username to connect to the SMTP host.
Type: string
Example:
"smtp-user"Declared by:
<selfhostblocks/modules/services/immich.nix> -
shb.immich.ssl -
Path to SSL files
Type: null or (open submodule of anything)
Default:
nullDeclared by:
<selfhostblocks/modules/services/immich.nix> -
shb.immich.ssl.paths -
Paths where the files for the certificate will be located.
This option is the contract output of the
shb.certs.certsSSL block.Type: open submodule of anything
Declared by:
<selfhostblocks/modules/services/immich.nix> -
shb.immich.ssl.paths.cert -
Path to the cert file.
Type: absolute path
Declared by:
<selfhostblocks/modules/services/immich.nix> -
shb.immich.ssl.paths.key -
Path to the key file.
Type: absolute path
Declared by:
<selfhostblocks/modules/services/immich.nix> -
shb.immich.ssl.systemdService -
Systemd oneshot service used to generate the certificate. Ends with the
.servicesuffix.Use this if downstream services must wait for the certificates to be generated before starting.
Type: string
Example:
"cert-generator.service"Declared by:
<selfhostblocks/modules/services/immich.nix> -
shb.immich.sso -
Setup SSO integration.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/immich.nix> -
shb.immich.sso.enable -
Whether to enable SSO integration…
Type: boolean
Default:
falseExample:
trueDeclared by:
<selfhostblocks/modules/services/immich.nix> -
shb.immich.sso.adminUserGroup -
OIDC admin group
Type: string
Default:
"immich_admin"Declared by:
<selfhostblocks/modules/services/immich.nix> -
shb.immich.sso.authorization_policy -
Require one factor (password) or two factor (device) authentication.
Type: one of “one_factor”, “two_factor”
Default:
"one_factor"Declared by:
<selfhostblocks/modules/services/immich.nix> -
shb.immich.sso.autoLaunch -
Automatically redirect to SSO provider.
Type: boolean
Default:
trueDeclared by:
<selfhostblocks/modules/services/immich.nix> -
shb.immich.sso.autoRegister -
Automatically register new users from SSO provider.
Type: boolean
Default:
trueDeclared by:
<selfhostblocks/modules/services/immich.nix> -
shb.immich.sso.buttonText -
Text to display on the SSO login button.
Type: string
Default:
"Login with SSO"Declared by:
<selfhostblocks/modules/services/immich.nix> -
shb.immich.sso.clientID -
Client ID for the OIDC endpoint.
Type: string
Default:
"immich"Declared by:
<selfhostblocks/modules/services/immich.nix> -
shb.immich.sso.endpoint -
OIDC endpoint for SSO.
Type: string
Example:
"https://authelia.example.com"Declared by:
<selfhostblocks/modules/services/immich.nix> -
shb.immich.sso.passwordLogin -
Enable password login.
Type: boolean
Default:
trueDeclared by:
<selfhostblocks/modules/services/immich.nix> -
shb.immich.sso.port -
If given, adds a port to the endpoint.
Type: null or 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Default:
nullDeclared by:
<selfhostblocks/modules/services/immich.nix> -
shb.immich.sso.provider -
OIDC provider name, used for display.
Type: one of “Authelia”, “Keycloak”, “Generic”
Default:
"Authelia"Declared by:
<selfhostblocks/modules/services/immich.nix> -
shb.immich.sso.sharedSecret -
OIDC shared secret for Immich.
Type: submodule
Declared by:
<selfhostblocks/modules/services/immich.nix> -
shb.immich.sso.sharedSecret.request -
Request part of the secret contract.
Options set by the requester module enforcing some properties the secret should have.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/services/immich.nix> -
shb.immich.sso.sharedSecret.request.group -
Linux group owning the secret file.
Type: string
Default:
"immich"Declared by:
<selfhostblocks/modules/services/immich.nix> -
shb.immich.sso.sharedSecret.request.mode -
Mode of the secret file.
Type: string
Default:
"0400"Declared by:
<selfhostblocks/modules/services/immich.nix> -
shb.immich.sso.sharedSecret.request.owner -
Linux user owning the secret file.
Type: string
Default:
"immich"Declared by:
<selfhostblocks/modules/services/immich.nix> -
shb.immich.sso.sharedSecret.request.restartUnits -
Systemd units to restart after the secret is updated.
Type: list of string
Default:
[ "immich-server.service" ]Declared by:
<selfhostblocks/modules/services/immich.nix> -
shb.immich.sso.sharedSecret.result -
Result part of the secret contract.
Options set by the provider module that indicates where the secret can be found.
Type: submodule
Default:
{ path = "/run/secrets/secret"; }Declared by:
<selfhostblocks/modules/services/immich.nix> -
shb.immich.sso.sharedSecret.result.path -
Path to the file containing the secret generated out of band.
This path will exist after deploying to a target host, it is not available through the nix store.
Type: absolute path
Default:
"/run/secrets/secret"Declared by:
<selfhostblocks/modules/services/immich.nix> -
shb.immich.sso.sharedSecretForAuthelia -
OIDC shared secret for Authelia. Content must be the same as
sharedSecretoption.Type: submodule
Default:
nullDeclared by:
<selfhostblocks/modules/services/immich.nix> -
shb.immich.sso.sharedSecretForAuthelia.request -
Request part of the secret contract.
Options set by the requester module enforcing some properties the secret should have.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/services/immich.nix> -
shb.immich.sso.sharedSecretForAuthelia.request.group -
Linux group owning the secret file.
Type: string
Default:
"root"Declared by:
<selfhostblocks/modules/services/immich.nix> -
shb.immich.sso.sharedSecretForAuthelia.request.mode -
Mode of the secret file.
Type: string
Default:
"0400"Declared by:
<selfhostblocks/modules/services/immich.nix> -
shb.immich.sso.sharedSecretForAuthelia.request.owner -
Linux user owning the secret file.
Type: string
Default:
"authelia"Declared by:
<selfhostblocks/modules/services/immich.nix> -
shb.immich.sso.sharedSecretForAuthelia.request.restartUnits -
Systemd units to restart after the secret is updated.
Type: list of string
Default:
[ ]Declared by:
<selfhostblocks/modules/services/immich.nix> -
shb.immich.sso.sharedSecretForAuthelia.result -
Result part of the secret contract.
Options set by the provider module that indicates where the secret can be found.
Type: submodule
Default:
{ path = "/run/secrets/secret"; }Declared by:
<selfhostblocks/modules/services/immich.nix> -
shb.immich.sso.sharedSecretForAuthelia.result.path -
Path to the file containing the secret generated out of band.
This path will exist after deploying to a target host, it is not available through the nix store.
Type: absolute path
Default:
"/run/secrets/secret"Declared by:
<selfhostblocks/modules/services/immich.nix> -
shb.immich.sso.storageLabelClaim -
Claim to use for user storage label.
Type: string
Default:
"preferred_username"Declared by:
<selfhostblocks/modules/services/immich.nix> -
shb.immich.sso.userGroup -
OIDC user group
Type: string
Default:
"immich_user"Declared by:
<selfhostblocks/modules/services/immich.nix> -
shb.immich.subdomain -
Subdomain under which Immich will be served.
<subdomain>.<domain>Type: string
Example:
"photos"Declared by:
<selfhostblocks/modules/services/immich.nix> -
shb.jellyfin.enable -
Whether to enable shb jellyfin.
Type: boolean
Default:
falseExample:
trueDeclared by:
<selfhostblocks/modules/services/jellyfin.nix> -
shb.jellyfin.admin -
Default admin user info. Only needed if LDAP or SSO is not configured.
Type: null or (submodule)
Default:
nullDeclared by:
<selfhostblocks/modules/services/jellyfin.nix> -
shb.jellyfin.admin.password -
Password of the default admin user.
Type: submodule
Declared by:
<selfhostblocks/modules/services/jellyfin.nix> -
shb.jellyfin.admin.password.request -
Request part of the secret contract.
Options set by the requester module enforcing some properties the secret should have.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/services/jellyfin.nix> -
shb.jellyfin.admin.password.request.group -
Linux group owning the secret file.
Type: string
Default:
"jellyfin"Declared by:
<selfhostblocks/modules/services/jellyfin.nix> -
shb.jellyfin.admin.password.request.mode -
Mode of the secret file.
Type: string
Default:
"0440"Declared by:
<selfhostblocks/modules/services/jellyfin.nix> -
shb.jellyfin.admin.password.request.owner -
Linux user owning the secret file.
Type: string
Default:
"jellyfin"Declared by:
<selfhostblocks/modules/services/jellyfin.nix> -
shb.jellyfin.admin.password.request.restartUnits -
Systemd units to restart after the secret is updated.
Type: list of string
Default:
[ "jellyfin.service" ]Declared by:
<selfhostblocks/modules/services/jellyfin.nix> -
shb.jellyfin.admin.password.result -
Result part of the secret contract.
Options set by the provider module that indicates where the secret can be found.
Type: submodule
Default:
{ path = "/run/secrets/secret"; }Declared by:
<selfhostblocks/modules/services/jellyfin.nix> -
shb.jellyfin.admin.password.result.path -
Path to the file containing the secret generated out of band.
This path will exist after deploying to a target host, it is not available through the nix store.
Type: absolute path
Default:
"/run/secrets/secret"Declared by:
<selfhostblocks/modules/services/jellyfin.nix> -
shb.jellyfin.admin.username -
Username of the default admin user.
Type: string
Default:
"jellyfin"Declared by:
<selfhostblocks/modules/services/jellyfin.nix> -
shb.jellyfin.backup -
Backup configuration.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/jellyfin.nix> -
shb.jellyfin.backup.request -
Request part of the backup contract.
Options set by the requester module enforcing how to backup files.
Type: submodule
Default: { user = jellyfin; sourceDirectories = [ “services.jellyfin.dataDir” ] ; excludePatterns = [ ]; hooks.beforeBackup = [ ]; hooks.afterBackup = [ ]; };
Declared by:
<selfhostblocks/modules/services/jellyfin.nix> -
shb.jellyfin.backup.request.excludePatterns -
File patterns to exclude.
Type: list of string
Default:
[ ]Declared by:
<selfhostblocks/modules/services/jellyfin.nix> -
shb.jellyfin.backup.request.hooks -
Hooks to run around the backup.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/jellyfin.nix> -
shb.jellyfin.backup.request.hooks.afterBackup -
Hooks to run after backup.
Type: list of string
Default:
[ ]Declared by:
<selfhostblocks/modules/services/jellyfin.nix> -
shb.jellyfin.backup.request.hooks.beforeBackup -
Hooks to run before backup.
Type: list of string
Default:
[ ]Declared by:
<selfhostblocks/modules/services/jellyfin.nix> -
shb.jellyfin.backup.request.sourceDirectories -
Directories to backup.
Type: non-empty (list of string)
Default: [ “services.jellyfin.dataDir” ]
Example:
"/var/lib/vaultwarden"Declared by:
<selfhostblocks/modules/services/jellyfin.nix> -
shb.jellyfin.backup.request.user -
Unix user doing the backups.
Type: string
Default:
"jellyfin"Example:
"vaultwarden"Declared by:
<selfhostblocks/modules/services/jellyfin.nix> -
shb.jellyfin.backup.result -
Result part of the backup contract.
Options set by the provider module that indicates the name of the backup and restore scripts.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/services/jellyfin.nix> -
shb.jellyfin.backup.result.backupService -
Name of service backing up the database.
This script can be ran manually to backup the database:
$ systemctl start backup.serviceType: string
Default:
"backup.service"Declared by:
<selfhostblocks/modules/services/jellyfin.nix> -
shb.jellyfin.backup.result.restoreScript -
Name of script that can restore the database. One can then list snapshots with:
$ restore snapshots <snapshot 1> <metadata> <snapshot 2> <metadata>And restore the database with:
$ restore restore <snapshot 1>Type: string
Default:
"restore"Declared by:
<selfhostblocks/modules/services/jellyfin.nix> -
shb.jellyfin.dashboard -
Dashboard contract consumer
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/jellyfin.nix> -
shb.jellyfin.dashboard.request -
Request part of the dashboard contract.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/jellyfin.nix> -
shb.jellyfin.dashboard.request.externalUrl -
URL at which the service can be accessed.
This URL should go through the reverse proxy.
Type: string
Default:
"https://\${config.shb.jellyfin.subdomain}.\${config.shb.jellyfin.domain}"Example:
"https://jellyfin.example.com"Declared by:
<selfhostblocks/modules/services/jellyfin.nix> -
shb.jellyfin.dashboard.request.internalUrl -
URL at which the service can be accessed directly.
This URL should bypass the reverse proxy. It can be used for example to ping the service and making sure it is up and running correctly.
Type: null or string
Default:
"http://127.0.0.1:8096"Example:
"http://127.0.0.1:8081"Declared by:
<selfhostblocks/modules/services/jellyfin.nix> -
shb.jellyfin.dashboard.result -
Result part of the dashboard contract.
No option is provided here.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/jellyfin.nix> -
shb.jellyfin.debug -
Enable debug logging
Type: boolean
Default:
falseDeclared by:
<selfhostblocks/modules/services/jellyfin.nix> -
shb.jellyfin.domain -
Domain to serve sites under.
Type: string
Example:
"domain.com"Declared by:
<selfhostblocks/modules/services/jellyfin.nix> -
shb.jellyfin.ldap -
LDAP configuration.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/jellyfin.nix> -
shb.jellyfin.ldap.enable -
Whether to enable LDAP.
Type: boolean
Default:
falseExample:
trueDeclared by:
<selfhostblocks/modules/services/jellyfin.nix> -
shb.jellyfin.ldap.adminGroup -
LDAP admin group
Type: string
Default:
"jellyfin_admin"Declared by:
<selfhostblocks/modules/services/jellyfin.nix> -
shb.jellyfin.ldap.adminPassword -
LDAP admin password.
Type: submodule
Declared by:
<selfhostblocks/modules/services/jellyfin.nix> -
shb.jellyfin.ldap.adminPassword.request -
Request part of the secret contract.
Options set by the requester module enforcing some properties the secret should have.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/services/jellyfin.nix> -
shb.jellyfin.ldap.adminPassword.request.group -
Linux group owning the secret file.
Type: string
Default:
"jellyfin"Declared by:
<selfhostblocks/modules/services/jellyfin.nix> -
shb.jellyfin.ldap.adminPassword.request.mode -
Mode of the secret file.
Type: string
Default:
"0440"Declared by:
<selfhostblocks/modules/services/jellyfin.nix> -
shb.jellyfin.ldap.adminPassword.request.owner -
Linux user owning the secret file.
Type: string
Default:
"jellyfin"Declared by:
<selfhostblocks/modules/services/jellyfin.nix> -
shb.jellyfin.ldap.adminPassword.request.restartUnits -
Systemd units to restart after the secret is updated.
Type: list of string
Default:
[ "jellyfin.service" ]Declared by:
<selfhostblocks/modules/services/jellyfin.nix> -
shb.jellyfin.ldap.adminPassword.result -
Result part of the secret contract.
Options set by the provider module that indicates where the secret can be found.
Type: submodule
Default:
{ path = "/run/secrets/secret"; }Declared by:
<selfhostblocks/modules/services/jellyfin.nix> -
shb.jellyfin.ldap.adminPassword.result.path -
Path to the file containing the secret generated out of band.
This path will exist after deploying to a target host, it is not available through the nix store.
Type: absolute path
Default:
"/run/secrets/secret"Declared by:
<selfhostblocks/modules/services/jellyfin.nix> -
shb.jellyfin.ldap.dcdomain -
DC domain for LDAP.
Type: string
Example:
"dc=mydomain,dc=com"Declared by:
<selfhostblocks/modules/services/jellyfin.nix> -
shb.jellyfin.ldap.host -
Host serving the LDAP server.
Type: string
Example:
"127.0.0.1"Declared by:
<selfhostblocks/modules/services/jellyfin.nix> -
shb.jellyfin.ldap.plugin -
Pluging used for LDAP authentication.
Type: package
Default:
<derivation jellyfin-plugin-ldapauth-22>Declared by:
<selfhostblocks/modules/services/jellyfin.nix> -
shb.jellyfin.ldap.port -
Port where the LDAP server is listening.
Type: signed integer
Example:
389Declared by:
<selfhostblocks/modules/services/jellyfin.nix> -
shb.jellyfin.ldap.userGroup -
LDAP user group
Type: string
Default:
"jellyfin_user"Declared by:
<selfhostblocks/modules/services/jellyfin.nix> -
shb.jellyfin.plugins -
Install plugins declaratively.
The LDAP and SSO plugins will be added if their respective shb.jellyfin.ldap.enable and shb.jellyfin.sso.enable options are set to true.
The interface for plugin creation is WIP. Feel free to add yours following the examples from the LDAP and SSO plugins but know that they may require some tweaks later on. Notably, configuration is not yet handled by this option so that will be added in the future.
Each plugin’s meta.json must be writeable because Jellyfin appends some information upon installing the plugin, like its active or disabled status. SHB automatically enables the plugin and deletes any plugin with the same prefix but other versions. Note that SHB does not attempt to find which version is latest. If twice the same plugin is added, the last one in the “plugins” list wins.
Type: list of package
Default:
[ ]Declared by:
<selfhostblocks/modules/services/jellyfin.nix> -
shb.jellyfin.port -
Listen on port.
Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Default:
8096Declared by:
<selfhostblocks/modules/services/jellyfin.nix> -
shb.jellyfin.ssl -
Path to SSL files
Type: null or (open submodule of anything)
Default:
nullDeclared by:
<selfhostblocks/modules/services/jellyfin.nix> -
shb.jellyfin.ssl.paths -
Paths where the files for the certificate will be located.
This option is the contract output of the
shb.certs.certsSSL block.Type: open submodule of anything
Declared by:
<selfhostblocks/modules/services/jellyfin.nix> -
shb.jellyfin.ssl.paths.cert -
Path to the cert file.
Type: absolute path
Declared by:
<selfhostblocks/modules/services/jellyfin.nix> -
shb.jellyfin.ssl.paths.key -
Path to the key file.
Type: absolute path
Declared by:
<selfhostblocks/modules/services/jellyfin.nix> -
shb.jellyfin.ssl.systemdService -
Systemd oneshot service used to generate the certificate. Ends with the
.servicesuffix.Use this if downstream services must wait for the certificates to be generated before starting.
Type: string
Example:
"cert-generator.service"Declared by:
<selfhostblocks/modules/services/jellyfin.nix> -
shb.jellyfin.sso -
SSO configuration.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/jellyfin.nix> -
shb.jellyfin.sso.enable -
Whether to enable SSO.
Type: boolean
Default:
falseExample:
trueDeclared by:
<selfhostblocks/modules/services/jellyfin.nix> -
shb.jellyfin.sso.authorization_policy -
Require one factor (password) or two factor (device) authentication.
Type: one of “one_factor”, “two_factor”
Default:
"one_factor"Declared by:
<selfhostblocks/modules/services/jellyfin.nix> -
shb.jellyfin.sso.clientID -
Client ID for the OIDC endpoint
Type: string
Default:
"jellyfin"Declared by:
<selfhostblocks/modules/services/jellyfin.nix> -
shb.jellyfin.sso.endpoint -
OIDC endpoint for SSO
Type: string
Example:
"https://authelia.example.com"Declared by:
<selfhostblocks/modules/services/jellyfin.nix> -
shb.jellyfin.sso.plugin -
Pluging used for SSO authentication.
Type: package
Default:
<derivation jellyfin-plugin-sso-4.0.0.3>Declared by:
<selfhostblocks/modules/services/jellyfin.nix> -
shb.jellyfin.sso.provider -
OIDC provider name
Type: string
Default:
"Authelia"Declared by:
<selfhostblocks/modules/services/jellyfin.nix> -
shb.jellyfin.sso.sharedSecret -
OIDC shared secret for Jellyfin.
Type: submodule
Declared by:
<selfhostblocks/modules/services/jellyfin.nix> -
shb.jellyfin.sso.sharedSecret.request -
Request part of the secret contract.
Options set by the requester module enforcing some properties the secret should have.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/services/jellyfin.nix> -
shb.jellyfin.sso.sharedSecret.request.group -
Linux group owning the secret file.
Type: string
Default:
"jellyfin"Declared by:
<selfhostblocks/modules/services/jellyfin.nix> -
shb.jellyfin.sso.sharedSecret.request.mode -
Mode of the secret file.
Type: string
Default:
"0440"Declared by:
<selfhostblocks/modules/services/jellyfin.nix> -
shb.jellyfin.sso.sharedSecret.request.owner -
Linux user owning the secret file.
Type: string
Default:
"jellyfin"Declared by:
<selfhostblocks/modules/services/jellyfin.nix> -
shb.jellyfin.sso.sharedSecret.request.restartUnits -
Systemd units to restart after the secret is updated.
Type: list of string
Default:
[ "jellyfin.service" ]Declared by:
<selfhostblocks/modules/services/jellyfin.nix> -
shb.jellyfin.sso.sharedSecret.result -
Result part of the secret contract.
Options set by the provider module that indicates where the secret can be found.
Type: submodule
Default:
{ path = "/run/secrets/secret"; }Declared by:
<selfhostblocks/modules/services/jellyfin.nix> -
shb.jellyfin.sso.sharedSecret.result.path -
Path to the file containing the secret generated out of band.
This path will exist after deploying to a target host, it is not available through the nix store.
Type: absolute path
Default:
"/run/secrets/secret"Declared by:
<selfhostblocks/modules/services/jellyfin.nix> -
shb.jellyfin.sso.sharedSecretForAuthelia -
OIDC shared secret for Authelia.
Type: submodule
Declared by:
<selfhostblocks/modules/services/jellyfin.nix> -
shb.jellyfin.sso.sharedSecretForAuthelia.request -
Request part of the secret contract.
Options set by the requester module enforcing some properties the secret should have.
Type: submodule
Default: { mode = 0400; owner = config.shb.authelia.autheliaUser; group = root; restartUnits = [ ]; }
Declared by:
<selfhostblocks/modules/services/jellyfin.nix> -
shb.jellyfin.sso.sharedSecretForAuthelia.request.group -
Linux group owning the secret file.
Type: string
Default:
"root"Declared by:
<selfhostblocks/modules/services/jellyfin.nix> -
shb.jellyfin.sso.sharedSecretForAuthelia.request.mode -
Mode of the secret file.
Type: string
Default:
"0400"Declared by:
<selfhostblocks/modules/services/jellyfin.nix> -
shb.jellyfin.sso.sharedSecretForAuthelia.request.owner -
Linux user owning the secret file.
Type: string
Default: config.shb.authelia.autheliaUser
Declared by:
<selfhostblocks/modules/services/jellyfin.nix> -
shb.jellyfin.sso.sharedSecretForAuthelia.request.restartUnits -
Systemd units to restart after the secret is updated.
Type: list of string
Default:
[ ]Declared by:
<selfhostblocks/modules/services/jellyfin.nix> -
shb.jellyfin.sso.sharedSecretForAuthelia.result -
Result part of the secret contract.
Options set by the provider module that indicates where the secret can be found.
Type: submodule
Default:
{ path = "/run/secrets/secret"; }Declared by:
<selfhostblocks/modules/services/jellyfin.nix> -
shb.jellyfin.sso.sharedSecretForAuthelia.result.path -
Path to the file containing the secret generated out of band.
This path will exist after deploying to a target host, it is not available through the nix store.
Type: absolute path
Default:
"/run/secrets/secret"Declared by:
<selfhostblocks/modules/services/jellyfin.nix> -
shb.jellyfin.subdomain -
Subdomain under which home-assistant will be served.
Type: string
Example:
"jellyfin"Declared by:
<selfhostblocks/modules/services/jellyfin.nix> -
shb.karakeep.enable -
Whether to enable the Karakeep service.
Type: boolean
Default:
falseExample:
trueDeclared by:
<selfhostblocks/modules/services/karakeep.nix> -
shb.karakeep.backup -
Backup state directory.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/karakeep.nix> -
shb.karakeep.backup.request -
Request part of the backup contract.
Options set by the requester module enforcing how to backup files.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/services/karakeep.nix> -
shb.karakeep.backup.request.excludePatterns -
File patterns to exclude.
Type: list of string
Default:
[ ]Declared by:
<selfhostblocks/modules/services/karakeep.nix> -
shb.karakeep.backup.request.hooks -
Hooks to run around the backup.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/karakeep.nix> -
shb.karakeep.backup.request.hooks.afterBackup -
Hooks to run after backup.
Type: list of string
Default:
[ ]Declared by:
<selfhostblocks/modules/services/karakeep.nix> -
shb.karakeep.backup.request.hooks.beforeBackup -
Hooks to run before backup.
Type: list of string
Default:
[ ]Declared by:
<selfhostblocks/modules/services/karakeep.nix> -
shb.karakeep.backup.request.sourceDirectories -
Directories to backup.
Type: non-empty (list of string)
Default:
[ "/var/lib/karakeep" ]Example:
"/var/lib/vaultwarden"Declared by:
<selfhostblocks/modules/services/karakeep.nix> -
shb.karakeep.backup.request.user -
Unix user doing the backups.
Type: string
Default:
"karakeep"Example:
"vaultwarden"Declared by:
<selfhostblocks/modules/services/karakeep.nix> -
shb.karakeep.backup.result -
Result part of the backup contract.
Options set by the provider module that indicates the name of the backup and restore scripts.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/services/karakeep.nix> -
shb.karakeep.backup.result.backupService -
Name of service backing up the database.
This script can be ran manually to backup the database:
$ systemctl start backup.serviceType: string
Default:
"backup.service"Declared by:
<selfhostblocks/modules/services/karakeep.nix> -
shb.karakeep.backup.result.restoreScript -
Name of script that can restore the database. One can then list snapshots with:
$ restore snapshots <snapshot 1> <metadata> <snapshot 2> <metadata>And restore the database with:
$ restore restore <snapshot 1>Type: string
Default:
"restore"Declared by:
<selfhostblocks/modules/services/karakeep.nix> -
shb.karakeep.dashboard -
Dashboard contract consumer
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/karakeep.nix> -
shb.karakeep.dashboard.request -
Request part of the dashboard contract.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/karakeep.nix> -
shb.karakeep.dashboard.request.externalUrl -
URL at which the service can be accessed.
This URL should go through the reverse proxy.
Type: string
Default:
"https://\${config.shb.karakeep.subdomain}.\${config.shb.karakeep.domain}"Example:
"https://jellyfin.example.com"Declared by:
<selfhostblocks/modules/services/karakeep.nix> -
shb.karakeep.dashboard.request.internalUrl -
URL at which the service can be accessed directly.
This URL should bypass the reverse proxy. It can be used for example to ping the service and making sure it is up and running correctly.
Type: null or string
Default:
"http://127.0.0.1:3000"Example:
"http://127.0.0.1:8081"Declared by:
<selfhostblocks/modules/services/karakeep.nix> -
shb.karakeep.dashboard.result -
Result part of the dashboard contract.
No option is provided here.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/karakeep.nix> -
shb.karakeep.domain -
domain under which Karakeep will be served.
Type: string
Example:
"mydomain.com"Declared by:
<selfhostblocks/modules/services/karakeep.nix> -
shb.karakeep.environment -
Extra environment variables. See https://docs.karakeep.app/configuration/
Type: attribute set of string
Default:
{ }Example:
'' { OLLAMA_BASE_URL = "http://127.0.0.1:''${toString config.services.ollama.port}"; INFERENCE_TEXT_MODEL = "deepseek-r1:1.5b"; INFERENCE_IMAGE_MODEL = "llava"; EMBEDDING_TEXT_MODEL = "nomic-embed-text:v1.5"; INFERENCE_ENABLE_AUTO_SUMMARIZATION = "true"; INFERENCE_JOB_TIMEOUT_SEC = "200"; } ''Declared by:
<selfhostblocks/modules/services/karakeep.nix> -
shb.karakeep.ldap -
Setup LDAP integration.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/karakeep.nix> -
shb.karakeep.ldap.userGroup -
Group users must belong to to be able to login.
Type: string
Default:
"karakeep_user"Declared by:
<selfhostblocks/modules/services/karakeep.nix> -
shb.karakeep.meilisearchMasterKey -
Master key used to secure communication with Meilisearch.
Type: submodule
Declared by:
<selfhostblocks/modules/services/karakeep.nix> -
shb.karakeep.meilisearchMasterKey.request -
Request part of the secret contract.
Options set by the requester module enforcing some properties the secret should have.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/services/karakeep.nix> -
shb.karakeep.meilisearchMasterKey.request.group -
Linux group owning the secret file.
Type: string
Default:
"root"Declared by:
<selfhostblocks/modules/services/karakeep.nix> -
shb.karakeep.meilisearchMasterKey.request.mode -
Mode of the secret file.
Type: string
Default:
"0400"Declared by:
<selfhostblocks/modules/services/karakeep.nix> -
shb.karakeep.meilisearchMasterKey.request.owner -
Linux user owning the secret file.
Type: string
Default:
"karakeep"Declared by:
<selfhostblocks/modules/services/karakeep.nix> -
shb.karakeep.meilisearchMasterKey.request.restartUnits -
Systemd units to restart after the secret is updated.
Type: list of string
Default:
[ "karakeep-init.service" "karakeep-workers.service" "karakeep-workers.service" ]Declared by:
<selfhostblocks/modules/services/karakeep.nix> -
shb.karakeep.meilisearchMasterKey.result -
Result part of the secret contract.
Options set by the provider module that indicates where the secret can be found.
Type: submodule
Default:
{ path = "/run/secrets/secret"; }Declared by:
<selfhostblocks/modules/services/karakeep.nix> -
shb.karakeep.meilisearchMasterKey.result.path -
Path to the file containing the secret generated out of band.
This path will exist after deploying to a target host, it is not available through the nix store.
Type: absolute path
Default:
"/run/secrets/secret"Declared by:
<selfhostblocks/modules/services/karakeep.nix> -
shb.karakeep.nextauthSecret -
NextAuth secret.
Type: submodule
Declared by:
<selfhostblocks/modules/services/karakeep.nix> -
shb.karakeep.nextauthSecret.request -
Request part of the secret contract.
Options set by the requester module enforcing some properties the secret should have.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/services/karakeep.nix> -
shb.karakeep.nextauthSecret.request.group -
Linux group owning the secret file.
Type: string
Default:
"root"Declared by:
<selfhostblocks/modules/services/karakeep.nix> -
shb.karakeep.nextauthSecret.request.mode -
Mode of the secret file.
Type: string
Default:
"0400"Declared by:
<selfhostblocks/modules/services/karakeep.nix> -
shb.karakeep.nextauthSecret.request.owner -
Linux user owning the secret file.
Type: string
Default:
"karakeep"Declared by:
<selfhostblocks/modules/services/karakeep.nix> -
shb.karakeep.nextauthSecret.request.restartUnits -
Systemd units to restart after the secret is updated.
Type: list of string
Default:
[ "karakeep-init.service" "karakeep-workers.service" "karakeep-workers.service" ]Declared by:
<selfhostblocks/modules/services/karakeep.nix> -
shb.karakeep.nextauthSecret.result -
Result part of the secret contract.
Options set by the provider module that indicates where the secret can be found.
Type: submodule
Default:
{ path = "/run/secrets/secret"; }Declared by:
<selfhostblocks/modules/services/karakeep.nix> -
shb.karakeep.nextauthSecret.result.path -
Path to the file containing the secret generated out of band.
This path will exist after deploying to a target host, it is not available through the nix store.
Type: absolute path
Default:
"/run/secrets/secret"Declared by:
<selfhostblocks/modules/services/karakeep.nix> -
shb.karakeep.port -
Port Karakeep listens to incoming requests.
Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Default:
3000Declared by:
<selfhostblocks/modules/services/karakeep.nix> -
shb.karakeep.ssl -
Path to SSL files
Type: null or (open submodule of anything)
Default:
nullDeclared by:
<selfhostblocks/modules/services/karakeep.nix> -
shb.karakeep.ssl.paths -
Paths where the files for the certificate will be located.
This option is the contract output of the
shb.certs.certsSSL block.Type: open submodule of anything
Declared by:
<selfhostblocks/modules/services/karakeep.nix> -
shb.karakeep.ssl.paths.cert -
Path to the cert file.
Type: absolute path
Declared by:
<selfhostblocks/modules/services/karakeep.nix> -
shb.karakeep.ssl.paths.key -
Path to the key file.
Type: absolute path
Declared by:
<selfhostblocks/modules/services/karakeep.nix> -
shb.karakeep.ssl.systemdService -
Systemd oneshot service used to generate the certificate. Ends with the
.servicesuffix.Use this if downstream services must wait for the certificates to be generated before starting.
Type: string
Example:
"cert-generator.service"Declared by:
<selfhostblocks/modules/services/karakeep.nix> -
shb.karakeep.sso -
Setup SSO integration.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/karakeep.nix> -
shb.karakeep.sso.enable -
Whether to enable SSO integration…
Type: boolean
Default:
falseExample:
trueDeclared by:
<selfhostblocks/modules/services/karakeep.nix> -
shb.karakeep.sso.authEndpoint -
Endpoint to the SSO provider.
Type: string
Example:
"https://authelia.example.com"Declared by:
<selfhostblocks/modules/services/karakeep.nix> -
shb.karakeep.sso.authorization_policy -
Require one factor (password) or two factor (device) authentication.
Type: one of “one_factor”, “two_factor”
Default:
"one_factor"Declared by:
<selfhostblocks/modules/services/karakeep.nix> -
shb.karakeep.sso.clientID -
Client ID for the OIDC endpoint.
Type: string
Default:
"karakeep"Declared by:
<selfhostblocks/modules/services/karakeep.nix> -
shb.karakeep.sso.sharedSecret -
OIDC shared secret for Karakeep.
Type: submodule
Declared by:
<selfhostblocks/modules/services/karakeep.nix> -
shb.karakeep.sso.sharedSecret.request -
Request part of the secret contract.
Options set by the requester module enforcing some properties the secret should have.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/services/karakeep.nix> -
shb.karakeep.sso.sharedSecret.request.group -
Linux group owning the secret file.
Type: string
Default:
"root"Declared by:
<selfhostblocks/modules/services/karakeep.nix> -
shb.karakeep.sso.sharedSecret.request.mode -
Mode of the secret file.
Type: string
Default:
"0400"Declared by:
<selfhostblocks/modules/services/karakeep.nix> -
shb.karakeep.sso.sharedSecret.request.owner -
Linux user owning the secret file.
Type: string
Default:
"karakeep"Declared by:
<selfhostblocks/modules/services/karakeep.nix> -
shb.karakeep.sso.sharedSecret.request.restartUnits -
Systemd units to restart after the secret is updated.
Type: list of string
Default:
[ "karakeep-init.service" "karakeep-workers.service" "karakeep-workers.service" ]Declared by:
<selfhostblocks/modules/services/karakeep.nix> -
shb.karakeep.sso.sharedSecret.result -
Result part of the secret contract.
Options set by the provider module that indicates where the secret can be found.
Type: submodule
Default:
{ path = "/run/secrets/secret"; }Declared by:
<selfhostblocks/modules/services/karakeep.nix> -
shb.karakeep.sso.sharedSecret.result.path -
Path to the file containing the secret generated out of band.
This path will exist after deploying to a target host, it is not available through the nix store.
Type: absolute path
Default:
"/run/secrets/secret"Declared by:
<selfhostblocks/modules/services/karakeep.nix> -
shb.karakeep.sso.sharedSecretForAuthelia -
OIDC shared secret for Authelia. Must be the same as
sharedSecretType: submodule
Declared by:
<selfhostblocks/modules/services/karakeep.nix> -
shb.karakeep.sso.sharedSecretForAuthelia.request -
Request part of the secret contract.
Options set by the requester module enforcing some properties the secret should have.
Type: submodule
Default: { mode = 0400; owner = config.shb.authelia.autheliaUser; group = root; restartUnits = [ ]; }
Declared by:
<selfhostblocks/modules/services/karakeep.nix> -
shb.karakeep.sso.sharedSecretForAuthelia.request.group -
Linux group owning the secret file.
Type: string
Default:
"root"Declared by:
<selfhostblocks/modules/services/karakeep.nix> -
shb.karakeep.sso.sharedSecretForAuthelia.request.mode -
Mode of the secret file.
Type: string
Default:
"0400"Declared by:
<selfhostblocks/modules/services/karakeep.nix> -
shb.karakeep.sso.sharedSecretForAuthelia.request.owner -
Linux user owning the secret file.
Type: string
Default: config.shb.authelia.autheliaUser
Declared by:
<selfhostblocks/modules/services/karakeep.nix> -
shb.karakeep.sso.sharedSecretForAuthelia.request.restartUnits -
Systemd units to restart after the secret is updated.
Type: list of string
Default:
[ ]Declared by:
<selfhostblocks/modules/services/karakeep.nix> -
shb.karakeep.sso.sharedSecretForAuthelia.result -
Result part of the secret contract.
Options set by the provider module that indicates where the secret can be found.
Type: submodule
Default:
{ path = "/run/secrets/secret"; }Declared by:
<selfhostblocks/modules/services/karakeep.nix> -
shb.karakeep.sso.sharedSecretForAuthelia.result.path -
Path to the file containing the secret generated out of band.
This path will exist after deploying to a target host, it is not available through the nix store.
Type: absolute path
Default:
"/run/secrets/secret"Declared by:
<selfhostblocks/modules/services/karakeep.nix> -
shb.karakeep.subdomain -
Subdomain under which Karakeep will be served.
Type: string
Default:
"karakeep"Declared by:
<selfhostblocks/modules/services/karakeep.nix> -
shb.lldap.enable -
Whether to enable the LDAP service.
Type: boolean
Default:
falseExample:
trueDeclared by:
<selfhostblocks/modules/blocks/lldap.nix> -
shb.lldap.backup -
Backup configuration.
Type: submodule
Declared by:
<selfhostblocks/modules/blocks/lldap.nix> -
shb.lldap.backup.request -
Request part of the backup contract.
Options set by the requester module enforcing how to backup files.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/blocks/lldap.nix> -
shb.lldap.backup.request.excludePatterns -
File patterns to exclude.
Type: list of string
Default:
[ ]Declared by:
<selfhostblocks/modules/blocks/lldap.nix> -
shb.lldap.backup.request.hooks -
Hooks to run around the backup.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/blocks/lldap.nix> -
shb.lldap.backup.request.hooks.afterBackup -
Hooks to run after backup.
Type: list of string
Default:
[ ]Declared by:
<selfhostblocks/modules/blocks/lldap.nix> -
shb.lldap.backup.request.hooks.beforeBackup -
Hooks to run before backup.
Type: list of string
Default:
[ ]Declared by:
<selfhostblocks/modules/blocks/lldap.nix> -
shb.lldap.backup.request.sourceDirectories -
Directories to backup.
Type: non-empty (list of string)
Default:
[ "/var/lib/private/lldap" ]Example:
"/var/lib/vaultwarden"Declared by:
<selfhostblocks/modules/blocks/lldap.nix> -
shb.lldap.backup.request.user -
Unix user doing the backups.
Type: string
Default:
"root"Example:
"vaultwarden"Declared by:
<selfhostblocks/modules/blocks/lldap.nix> -
shb.lldap.backup.result -
Result part of the backup contract.
Options set by the provider module that indicates the name of the backup and restore scripts.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/blocks/lldap.nix> -
shb.lldap.backup.result.backupService -
Name of service backing up the database.
This script can be ran manually to backup the database:
$ systemctl start backup.serviceType: string
Default:
"backup.service"Declared by:
<selfhostblocks/modules/blocks/lldap.nix> -
shb.lldap.backup.result.restoreScript -
Name of script that can restore the database. One can then list snapshots with:
$ restore snapshots <snapshot 1> <metadata> <snapshot 2> <metadata>And restore the database with:
$ restore restore <snapshot 1>Type: string
Default:
"restore"Declared by:
<selfhostblocks/modules/blocks/lldap.nix> -
shb.lldap.dashboard -
Dashboard contract consumer
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/blocks/lldap.nix> -
shb.lldap.dashboard.request -
Request part of the dashboard contract.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/blocks/lldap.nix> -
shb.lldap.dashboard.request.externalUrl -
URL at which the service can be accessed.
This URL should go through the reverse proxy.
Type: string
Default:
"https://\${config.shb.lldap.subdomain}.\${config.shb.lldap.domain}"Example:
"https://jellyfin.example.com"Declared by:
<selfhostblocks/modules/blocks/lldap.nix> -
shb.lldap.dashboard.request.internalUrl -
URL at which the service can be accessed directly.
This URL should bypass the reverse proxy. It can be used for example to ping the service and making sure it is up and running correctly.
Type: null or string
Default:
"http://127.0.0.1:17170"Example:
"http://127.0.0.1:8081"Declared by:
<selfhostblocks/modules/blocks/lldap.nix> -
shb.lldap.dashboard.result -
Result part of the dashboard contract.
No option is provided here.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/blocks/lldap.nix> -
shb.lldap.dcdomain -
dc domain to serve.
Type: string
Example:
"dc=mydomain,dc=com"Declared by:
<selfhostblocks/modules/blocks/lldap.nix> -
shb.lldap.debug -
Enable debug logging.
Type: boolean
Default:
falseDeclared by:
<selfhostblocks/modules/blocks/lldap.nix> -
shb.lldap.domain -
Domain under which the LDAP service will be served.
Type: string
Example:
"mydomain.com"Declared by:
<selfhostblocks/modules/blocks/lldap.nix> -
shb.lldap.enforceGroups -
Remove groups not set declaratively.
Type: boolean
Default:
falseDeclared by:
<selfhostblocks/modules/blocks/lldap.nix> -
shb.lldap.enforceUserMemberships -
Remove users from groups not set declaratively.
Type: boolean
Default:
falseDeclared by:
<selfhostblocks/modules/blocks/lldap.nix> -
shb.lldap.enforceUsers -
Delete users not set declaratively.
Type: boolean
Default:
falseDeclared by:
<selfhostblocks/modules/blocks/lldap.nix> -
shb.lldap.ensureGroupFields -
Extra fields for groups
Type: attribute set of (submodule)
Default:
{ }Declared by:
<selfhostblocks/modules/blocks/lldap.nix> -
shb.lldap.ensureGroupFields.<name>.attributeType -
Attribute type.
Type: one of “STRING”, “INTEGER”, “JPEG”, “DATE_TIME”
Declared by:
<selfhostblocks/modules/blocks/lldap.nix> -
shb.lldap.ensureGroupFields.<name>.isEditable -
Is field editable.
Type: boolean
Default:
trueDeclared by:
<selfhostblocks/modules/blocks/lldap.nix> -
shb.lldap.ensureGroupFields.<name>.isList -
Is field a list.
Type: boolean
Default:
falseDeclared by:
<selfhostblocks/modules/blocks/lldap.nix> -
shb.lldap.ensureGroupFields.<name>.isVisible -
Is field visible in UI.
Type: boolean
Default:
trueDeclared by:
<selfhostblocks/modules/blocks/lldap.nix> -
shb.lldap.ensureGroupFields.<name>.name -
Name of the field.
Type: string
Default:
"‹name›"Declared by:
<selfhostblocks/modules/blocks/lldap.nix> -
shb.lldap.ensureGroups -
Create the groups defined here on service startup.
Non-default options must be added to the
ensureGroupFieldsoption.Type: attribute set of (open submodule of (JSON value))
Default:
{ }Declared by:
<selfhostblocks/modules/blocks/lldap.nix> -
shb.lldap.ensureGroups.<name>.name -
Name of the group.
Type: string
Default:
"‹name›"Declared by:
<selfhostblocks/modules/blocks/lldap.nix> -
shb.lldap.ensureUserFields -
Extra fields for users
Type: attribute set of (submodule)
Default:
{ }Declared by:
<selfhostblocks/modules/blocks/lldap.nix> -
shb.lldap.ensureUserFields.<name>.attributeType -
Attribute type.
Type: one of “STRING”, “INTEGER”, “JPEG”, “DATE_TIME”
Declared by:
<selfhostblocks/modules/blocks/lldap.nix> -
shb.lldap.ensureUserFields.<name>.isEditable -
Is field editable.
Type: boolean
Default:
trueDeclared by:
<selfhostblocks/modules/blocks/lldap.nix> -
shb.lldap.ensureUserFields.<name>.isList -
Is field a list.
Type: boolean
Default:
falseDeclared by:
<selfhostblocks/modules/blocks/lldap.nix> -
shb.lldap.ensureUserFields.<name>.isVisible -
Is field visible in UI.
Type: boolean
Default:
trueDeclared by:
<selfhostblocks/modules/blocks/lldap.nix> -
shb.lldap.ensureUserFields.<name>.name -
Name of the field.
Type: string
Default:
"‹name›"Declared by:
<selfhostblocks/modules/blocks/lldap.nix> -
shb.lldap.ensureUsers -
Create the users defined here on service startup.
If
enforceUsersoption istrue, the groups users belong to must be present in theensureGroupsoption.Non-default options must be added to the
ensureGroupFieldsoption.Type: attribute set of (open submodule of (JSON value))
Default:
{ }Declared by:
<selfhostblocks/modules/blocks/lldap.nix> -
shb.lldap.ensureUsers.<name>.avatar_file -
Avatar file. Must be a valid path to jpeg file (ignored if avatar_url specified)
Type: null or string
Default:
nullDeclared by:
<selfhostblocks/modules/blocks/lldap.nix> -
shb.lldap.ensureUsers.<name>.avatar_url -
Avatar url. must be a valid URL to jpeg file (ignored if gravatar_avatar specified)
Type: null or string
Default:
nullDeclared by:
<selfhostblocks/modules/blocks/lldap.nix> -
shb.lldap.ensureUsers.<name>.displayName -
Display name.
Type: null or string
Default:
nullDeclared by:
<selfhostblocks/modules/blocks/lldap.nix> -
shb.lldap.ensureUsers.<name>.email -
Email.
Type: string
Declared by:
<selfhostblocks/modules/blocks/lldap.nix> -
shb.lldap.ensureUsers.<name>.firstName -
First name.
Type: null or string
Default:
nullDeclared by:
<selfhostblocks/modules/blocks/lldap.nix> -
shb.lldap.ensureUsers.<name>.gravatar_avatar -
Get avatar from Gravatar using the email.
Type: null or string
Default:
nullDeclared by:
<selfhostblocks/modules/blocks/lldap.nix> -
shb.lldap.ensureUsers.<name>.groups -
Groups the user would be a member of (all the groups must be specified in group config files).
Type: list of string
Default:
[ ]Declared by:
<selfhostblocks/modules/blocks/lldap.nix> -
shb.lldap.ensureUsers.<name>.id -
Username.
Type: string
Default:
"‹name›"Declared by:
<selfhostblocks/modules/blocks/lldap.nix> -
shb.lldap.ensureUsers.<name>.lastName -
Last name.
Type: null or string
Default:
nullDeclared by:
<selfhostblocks/modules/blocks/lldap.nix> -
shb.lldap.ensureUsers.<name>.password -
Password.
Type: submodule
Declared by:
<selfhostblocks/modules/blocks/lldap.nix> -
shb.lldap.ensureUsers.<name>.password.request -
Request part of the secret contract.
Options set by the requester module enforcing some properties the secret should have.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/blocks/lldap.nix> -
shb.lldap.ensureUsers.<name>.password.request.group -
Linux group owning the secret file.
Type: string
Default:
"lldap"Declared by:
<selfhostblocks/modules/blocks/lldap.nix> -
shb.lldap.ensureUsers.<name>.password.request.mode -
Mode of the secret file.
Type: string
Default:
"0440"Declared by:
<selfhostblocks/modules/blocks/lldap.nix> -
shb.lldap.ensureUsers.<name>.password.request.owner -
Linux user owning the secret file.
Type: string
Default:
"lldap"Declared by:
<selfhostblocks/modules/blocks/lldap.nix> -
shb.lldap.ensureUsers.<name>.password.request.restartUnits -
Systemd units to restart after the secret is updated.
Type: list of string
Default:
[ "lldap.service" ]Declared by:
<selfhostblocks/modules/blocks/lldap.nix> -
shb.lldap.ensureUsers.<name>.password.result -
Result part of the secret contract.
Options set by the provider module that indicates where the secret can be found.
Type: submodule
Default:
{ path = "/run/secrets/secret"; }Declared by:
<selfhostblocks/modules/blocks/lldap.nix> -
shb.lldap.ensureUsers.<name>.password.result.path -
Path to the file containing the secret generated out of band.
This path will exist after deploying to a target host, it is not available through the nix store.
Type: absolute path
Default:
"/run/secrets/secret"Declared by:
<selfhostblocks/modules/blocks/lldap.nix> -
shb.lldap.ensureUsers.<name>.weser_avatar -
Convert avatar retrieved by gravatar or the URL.
Type: null or string
Default:
nullDeclared by:
<selfhostblocks/modules/blocks/lldap.nix> -
shb.lldap.jwtSecret -
JWT secret.
Type: submodule
Declared by:
<selfhostblocks/modules/blocks/lldap.nix> -
shb.lldap.jwtSecret.request -
Request part of the secret contract.
Options set by the requester module enforcing some properties the secret should have.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/blocks/lldap.nix> -
shb.lldap.jwtSecret.request.group -
Linux group owning the secret file.
Type: string
Default:
"lldap"Declared by:
<selfhostblocks/modules/blocks/lldap.nix> -
shb.lldap.jwtSecret.request.mode -
Mode of the secret file.
Type: string
Default:
"0440"Declared by:
<selfhostblocks/modules/blocks/lldap.nix> -
shb.lldap.jwtSecret.request.owner -
Linux user owning the secret file.
Type: string
Default:
"lldap"Declared by:
<selfhostblocks/modules/blocks/lldap.nix> -
shb.lldap.jwtSecret.request.restartUnits -
Systemd units to restart after the secret is updated.
Type: list of string
Default:
[ "lldap.service" ]Declared by:
<selfhostblocks/modules/blocks/lldap.nix> -
shb.lldap.jwtSecret.result -
Result part of the secret contract.
Options set by the provider module that indicates where the secret can be found.
Type: submodule
Default:
{ path = "/run/secrets/secret"; }Declared by:
<selfhostblocks/modules/blocks/lldap.nix> -
shb.lldap.jwtSecret.result.path -
Path to the file containing the secret generated out of band.
This path will exist after deploying to a target host, it is not available through the nix store.
Type: absolute path
Default:
"/run/secrets/secret"Declared by:
<selfhostblocks/modules/blocks/lldap.nix> -
shb.lldap.ldapPort -
Port on which the server listens for the LDAP protocol.
Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Default:
3890Declared by:
<selfhostblocks/modules/blocks/lldap.nix> -
shb.lldap.ldapUserPassword -
LDAP admin user secret. Must be >= 8 characters.
Type: submodule
Declared by:
<selfhostblocks/modules/blocks/lldap.nix> -
shb.lldap.ldapUserPassword.request -
Request part of the secret contract.
Options set by the requester module enforcing some properties the secret should have.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/blocks/lldap.nix> -
shb.lldap.ldapUserPassword.request.group -
Linux group owning the secret file.
Type: string
Default:
"lldap"Declared by:
<selfhostblocks/modules/blocks/lldap.nix> -
shb.lldap.ldapUserPassword.request.mode -
Mode of the secret file.
Type: string
Default:
"0440"Declared by:
<selfhostblocks/modules/blocks/lldap.nix> -
shb.lldap.ldapUserPassword.request.owner -
Linux user owning the secret file.
Type: string
Default:
"lldap"Declared by:
<selfhostblocks/modules/blocks/lldap.nix> -
shb.lldap.ldapUserPassword.request.restartUnits -
Systemd units to restart after the secret is updated.
Type: list of string
Default:
[ "lldap.service" ]Declared by:
<selfhostblocks/modules/blocks/lldap.nix> -
shb.lldap.ldapUserPassword.result -
Result part of the secret contract.
Options set by the provider module that indicates where the secret can be found.
Type: submodule
Default:
{ path = "/run/secrets/secret"; }Declared by:
<selfhostblocks/modules/blocks/lldap.nix> -
shb.lldap.ldapUserPassword.result.path -
Path to the file containing the secret generated out of band.
This path will exist after deploying to a target host, it is not available through the nix store.
Type: absolute path
Default:
"/run/secrets/secret"Declared by:
<selfhostblocks/modules/blocks/lldap.nix> -
shb.lldap.mount -
Mount configuration. This is an output option.
Use it to initialize a block implementing the “mount” contract. For example, with a zfs dataset:
shb.zfs.datasets."ldap" = { poolName = "root"; } // config.shb.lldap.mount;Type: open submodule of anything (read only)
Default:
{ path = "/var/lib/lldap"; }Declared by:
<selfhostblocks/modules/blocks/lldap.nix> -
shb.lldap.mount.path -
Path to be mounted.
Type: string
Declared by:
<selfhostblocks/modules/blocks/lldap.nix> -
shb.lldap.restrictAccessIPRange -
Set a local network range to restrict access to the UI to only those IPs.
Type: null or string
Default:
nullExample:
"192.168.1.1/24"Declared by:
<selfhostblocks/modules/blocks/lldap.nix> -
shb.lldap.ssl -
Path to SSL files
Type: null or (open submodule of anything)
Default:
nullDeclared by:
<selfhostblocks/modules/blocks/lldap.nix> -
shb.lldap.ssl.paths -
Paths where the files for the certificate will be located.
This option is the contract output of the
shb.certs.certsSSL block.Type: open submodule of anything
Declared by:
<selfhostblocks/modules/blocks/lldap.nix> -
shb.lldap.ssl.paths.cert -
Path to the cert file.
Type: absolute path
Declared by:
<selfhostblocks/modules/blocks/lldap.nix> -
shb.lldap.ssl.paths.key -
Path to the key file.
Type: absolute path
Declared by:
<selfhostblocks/modules/blocks/lldap.nix> -
shb.lldap.ssl.systemdService -
Systemd oneshot service used to generate the certificate. Ends with the
.servicesuffix.Use this if downstream services must wait for the certificates to be generated before starting.
Type: string
Example:
"cert-generator.service"Declared by:
<selfhostblocks/modules/blocks/lldap.nix> -
shb.lldap.subdomain -
Subdomain under which the LDAP service will be served.
Type: string
Example:
"grafana"Declared by:
<selfhostblocks/modules/blocks/lldap.nix> -
shb.lldap.webUIListenPort -
Port on which the web UI is exposed.
Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Default:
17170Declared by:
<selfhostblocks/modules/blocks/lldap.nix> -
shb.mailserver.enable -
Whether to enable SHB’s nixos-mailserver module.
Type: boolean
Default:
falseExample:
trueDeclared by:
<selfhostblocks/modules/services/mailserver.nix> -
shb.mailserver.adminPassword -
Admin user password.
Type: null or (submodule)
Default:
nullDeclared by:
<selfhostblocks/modules/services/mailserver.nix> -
shb.mailserver.adminPassword.request -
Request part of the secret contract.
Options set by the requester module enforcing some properties the secret should have.
Type: submodule
Default: { mode = 0400; owner = services.postfix.user; group = root; restartUnits = [ dovecot.service ]; }
Declared by:
<selfhostblocks/modules/services/mailserver.nix> -
shb.mailserver.adminPassword.request.group -
Linux group owning the secret file.
Type: string
Default:
"root"Declared by:
<selfhostblocks/modules/services/mailserver.nix> -
shb.mailserver.adminPassword.request.mode -
Mode of the secret file.
Type: string
Default:
"0400"Declared by:
<selfhostblocks/modules/services/mailserver.nix> -
shb.mailserver.adminPassword.request.owner -
Linux user owning the secret file.
Type: string
Default: services.postfix.user
Declared by:
<selfhostblocks/modules/services/mailserver.nix> -
shb.mailserver.adminPassword.request.restartUnits -
Systemd units to restart after the secret is updated.
Type: list of string
Default:
[ "dovecot.service" ]Declared by:
<selfhostblocks/modules/services/mailserver.nix> -
shb.mailserver.adminPassword.result -
Result part of the secret contract.
Options set by the provider module that indicates where the secret can be found.
Type: submodule
Default:
{ path = "/run/secrets/secret"; }Declared by:
<selfhostblocks/modules/services/mailserver.nix> -
shb.mailserver.adminPassword.result.path -
Path to the file containing the secret generated out of band.
This path will exist after deploying to a target host, it is not available through the nix store.
Type: absolute path
Default:
"/run/secrets/secret"Declared by:
<selfhostblocks/modules/services/mailserver.nix> -
shb.mailserver.adminUsername -
Admin username.
postmaster will be made an alias of this user.
Type: null or string
Default:
nullExample:
"admin"Declared by:
<selfhostblocks/modules/services/mailserver.nix> -
shb.mailserver.backup -
Backup emails, index and sieve.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/mailserver.nix> -
shb.mailserver.backup.request -
Request part of the backup contract.
Options set by the requester module enforcing how to backup files.
Type: submodule
Default: { user = virtualMail; sourceDirectories = [ config.mailserver.indexDir config.mailserver.storage.path config.mailserver.sieveDirectory ] ; excludePatterns = [ ]; hooks.beforeBackup = [ ]; hooks.afterBackup = [ ]; };
Declared by:
<selfhostblocks/modules/services/mailserver.nix> -
shb.mailserver.backup.request.excludePatterns -
File patterns to exclude.
Type: list of string
Default:
[ ]Declared by:
<selfhostblocks/modules/services/mailserver.nix> -
shb.mailserver.backup.request.hooks -
Hooks to run around the backup.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/mailserver.nix> -
shb.mailserver.backup.request.hooks.afterBackup -
Hooks to run after backup.
Type: list of string
Default:
[ ]Declared by:
<selfhostblocks/modules/services/mailserver.nix> -
shb.mailserver.backup.request.hooks.beforeBackup -
Hooks to run before backup.
Type: list of string
Default:
[ ]Declared by:
<selfhostblocks/modules/services/mailserver.nix> -
shb.mailserver.backup.request.sourceDirectories -
Directories to backup.
Type: non-empty (list of string)
Default: [ config.mailserver.indexDir config.mailserver.storage.path config.mailserver.sieveDirectory ]
Example:
"/var/lib/vaultwarden"Declared by:
<selfhostblocks/modules/services/mailserver.nix> -
shb.mailserver.backup.request.user -
Unix user doing the backups.
Type: string
Default:
"virtualMail"Example:
"vaultwarden"Declared by:
<selfhostblocks/modules/services/mailserver.nix> -
shb.mailserver.backup.result -
Result part of the backup contract.
Options set by the provider module that indicates the name of the backup and restore scripts.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/services/mailserver.nix> -
shb.mailserver.backup.result.backupService -
Name of service backing up the database.
This script can be ran manually to backup the database:
$ systemctl start backup.serviceType: string
Default:
"backup.service"Declared by:
<selfhostblocks/modules/services/mailserver.nix> -
shb.mailserver.backup.result.restoreScript -
Name of script that can restore the database. One can then list snapshots with:
$ restore snapshots <snapshot 1> <metadata> <snapshot 2> <metadata>And restore the database with:
$ restore restore <snapshot 1>Type: string
Default:
"restore"Declared by:
<selfhostblocks/modules/services/mailserver.nix> -
shb.mailserver.backupDKIM -
Backup dkim directory.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/mailserver.nix> -
shb.mailserver.backupDKIM.request -
Request part of the backup contract.
Options set by the requester module enforcing how to backup files.
Type: submodule
Default: { user = services.rspamd.user; sourceDirectories = [ config.mailserver.dkimKeyDirectory ] ; excludePatterns = [ ]; hooks.beforeBackup = [ ]; hooks.afterBackup = [ ]; };
Declared by:
<selfhostblocks/modules/services/mailserver.nix> -
shb.mailserver.backupDKIM.request.excludePatterns -
File patterns to exclude.
Type: list of string
Default:
[ ]Declared by:
<selfhostblocks/modules/services/mailserver.nix> -
shb.mailserver.backupDKIM.request.hooks -
Hooks to run around the backup.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/mailserver.nix> -
shb.mailserver.backupDKIM.request.hooks.afterBackup -
Hooks to run after backup.
Type: list of string
Default:
[ ]Declared by:
<selfhostblocks/modules/services/mailserver.nix> -
shb.mailserver.backupDKIM.request.hooks.beforeBackup -
Hooks to run before backup.
Type: list of string
Default:
[ ]Declared by:
<selfhostblocks/modules/services/mailserver.nix> -
shb.mailserver.backupDKIM.request.sourceDirectories -
Directories to backup.
Type: non-empty (list of string)
Default: [ config.mailserver.dkimKeyDirectory ]
Example:
"/var/lib/vaultwarden"Declared by:
<selfhostblocks/modules/services/mailserver.nix> -
shb.mailserver.backupDKIM.request.user -
Unix user doing the backups.
Type: string
Default: services.rspamd.user
Example:
"vaultwarden"Declared by:
<selfhostblocks/modules/services/mailserver.nix> -
shb.mailserver.backupDKIM.result -
Result part of the backup contract.
Options set by the provider module that indicates the name of the backup and restore scripts.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/services/mailserver.nix> -
shb.mailserver.backupDKIM.result.backupService -
Name of service backing up the database.
This script can be ran manually to backup the database:
$ systemctl start backup.serviceType: string
Default:
"backup.service"Declared by:
<selfhostblocks/modules/services/mailserver.nix> -
shb.mailserver.backupDKIM.result.restoreScript -
Name of script that can restore the database. One can then list snapshots with:
$ restore snapshots <snapshot 1> <metadata> <snapshot 2> <metadata>And restore the database with:
$ restore restore <snapshot 1>Type: string
Default:
"restore"Declared by:
<selfhostblocks/modules/services/mailserver.nix> -
shb.mailserver.dashboard -
Dashboard contract consumer
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/mailserver.nix> -
shb.mailserver.dashboard.request -
Request part of the dashboard contract.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/mailserver.nix> -
shb.mailserver.dashboard.request.externalUrl -
URL at which the service can be accessed.
This URL should go through the reverse proxy.
Type: string
Default:
"https://\${config.shb.mailserver.subdomain}.\${config.shb.mailserver.domain}"Example:
"https://jellyfin.example.com"Declared by:
<selfhostblocks/modules/services/mailserver.nix> -
shb.mailserver.dashboard.request.internalUrl -
URL at which the service can be accessed directly.
This URL should bypass the reverse proxy. It can be used for example to ping the service and making sure it is up and running correctly.
Type: null or string
Default:
nullExample:
"http://127.0.0.1:8081"Declared by:
<selfhostblocks/modules/services/mailserver.nix> -
shb.mailserver.dashboard.result -
Result part of the dashboard contract.
No option is provided here.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/mailserver.nix> -
shb.mailserver.domain -
domain under which imap and smtp functions will be served.
Type: string
Example:
"mydomain.com"Declared by:
<selfhostblocks/modules/services/mailserver.nix> -
shb.mailserver.imapSync -
Synchronize one or more email providers through IMAP to your dovecot instance.
This allows you to backup that email provider and centralize your accounts in this dovecot instance.
Type: null or (submodule)
Default:
nullDeclared by:
<selfhostblocks/modules/services/mailserver.nix> -
shb.mailserver.imapSync.accounts -
Accounts to sync emails from using IMAP.
Emails will be stored under
${config.mailserver.storage.path}/${name}/${username}Type: attribute set of (submodule)
Declared by:
<selfhostblocks/modules/services/mailserver.nix> -
shb.mailserver.imapSync.accounts.<name>.host -
Hostname of the email’s provider IMAP server.
Type: string
Example:
"imap.fastmail.com"Declared by:
<selfhostblocks/modules/services/mailserver.nix> -
shb.mailserver.imapSync.accounts.<name>.mapSpecialDrafts -
Drafts special folder name on far side.
You only need to change this if mbsync logs the following error:
Error: ... far side box Drafts cannot be openedType: string
Default:
"Drafts"Declared by:
<selfhostblocks/modules/services/mailserver.nix> -
shb.mailserver.imapSync.accounts.<name>.mapSpecialJunk -
Junk special folder name on far side.
You only need to change this if mbsync logs the following error:
Error: ... far side box Junk cannot be openedType: string
Default:
"Junk"Example:
"Spam"Declared by:
<selfhostblocks/modules/services/mailserver.nix> -
shb.mailserver.imapSync.accounts.<name>.mapSpecialSent -
Sent special folder name on far side.
You only need to change this if mbsync logs the following error:
Error: ... far side box Sent cannot be openedType: string
Default:
"Sent"Declared by:
<selfhostblocks/modules/services/mailserver.nix> -
shb.mailserver.imapSync.accounts.<name>.mapSpecialTrash -
Trash special folder name on far side.
You only need to change this if mbsync logs the following error:
Error: ... far side box Trash cannot be openedType: string
Default:
"Trash"Declared by:
<selfhostblocks/modules/services/mailserver.nix> -
shb.mailserver.imapSync.accounts.<name>.password -
Password used to login to the email’s provider IMAP server.
The password could be an “app password” like for Fastmail
Type: submodule
Declared by:
<selfhostblocks/modules/services/mailserver.nix> -
shb.mailserver.imapSync.accounts.<name>.password.request -
Request part of the secret contract.
Options set by the requester module enforcing some properties the secret should have.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/services/mailserver.nix> -
shb.mailserver.imapSync.accounts.<name>.password.request.group -
Linux group owning the secret file.
Type: string
Default:
"root"Declared by:
<selfhostblocks/modules/services/mailserver.nix> -
shb.mailserver.imapSync.accounts.<name>.password.request.mode -
Mode of the secret file.
Type: string
Default:
"0400"Declared by:
<selfhostblocks/modules/services/mailserver.nix> -
shb.mailserver.imapSync.accounts.<name>.password.request.owner -
Linux user owning the secret file.
Type: string
Default:
"virtualMail"Declared by:
<selfhostblocks/modules/services/mailserver.nix> -
shb.mailserver.imapSync.accounts.<name>.password.request.restartUnits -
Systemd units to restart after the secret is updated.
Type: list of string
Default:
[ "mbsync.service" ]Declared by:
<selfhostblocks/modules/services/mailserver.nix> -
shb.mailserver.imapSync.accounts.<name>.password.result -
Result part of the secret contract.
Options set by the provider module that indicates where the secret can be found.
Type: submodule
Default:
{ path = "/run/secrets/secret"; }Declared by:
<selfhostblocks/modules/services/mailserver.nix> -
shb.mailserver.imapSync.accounts.<name>.password.result.path -
Path to the file containing the secret generated out of band.
This path will exist after deploying to a target host, it is not available through the nix store.
Type: absolute path
Default:
"/run/secrets/secret"Declared by:
<selfhostblocks/modules/services/mailserver.nix> -
shb.mailserver.imapSync.accounts.<name>.port -
Port of the email’s provider IMAP server.
Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Default:
993Declared by:
<selfhostblocks/modules/services/mailserver.nix> -
shb.mailserver.imapSync.accounts.<name>.sslType -
Connection security method.
Type: one of “IMAPS”, “STARTTLS”
Default:
"IMAPS"Declared by:
<selfhostblocks/modules/services/mailserver.nix> -
shb.mailserver.imapSync.accounts.<name>.timeout -
Connect and data timeout.
Type: signed integer
Default:
120Declared by:
<selfhostblocks/modules/services/mailserver.nix> -
shb.mailserver.imapSync.accounts.<name>.username -
Username used to login to the email’s provider IMAP server.
Type: string
Example:
"userA@fastmail.com"Declared by:
<selfhostblocks/modules/services/mailserver.nix> -
shb.mailserver.imapSync.debug -
Enable verbose mbsync logging.
Type: boolean
Default:
falseDeclared by:
<selfhostblocks/modules/services/mailserver.nix> -
shb.mailserver.imapSync.syncTimer -
Systemd timer for when imap sync job should happen.
This timer is not scheduling the job at regular intervals. After a job finishes, the given amount of time is waited then the next job is started.
The default is set deliberatily slow to not spam you when setting up your mailserver. When everything works, you will want to reduce it to 10s or something like that.
Type: string
Default:
"5m"Example:
"10s"Declared by:
<selfhostblocks/modules/services/mailserver.nix> -
shb.mailserver.impermanence -
Path to save when using impermanence setup.
Type: attribute set of string
Default:
{ index = config.mailserver.indexDir; mail = config.mailserver.storage.path; sieve = config.mailserver.sieveDirectory; dkim = config.mailserver.dkimKeyDirectory; }Declared by:
<selfhostblocks/modules/services/mailserver.nix> -
shb.mailserver.ldap -
LDAP Integration.
Enabling this app will create a new LDAP configuration or update one that exists with the given host.
Type: null or (submodule)
Default:
nullDeclared by:
<selfhostblocks/modules/services/mailserver.nix> -
shb.mailserver.ldap.enable -
Whether to enable LDAP app…
Type: boolean
Default:
falseExample:
trueDeclared by:
<selfhostblocks/modules/services/mailserver.nix> -
shb.mailserver.ldap.account -
Select one account from those defined in
shb.mailserver.imapSync.accountsto login with.Using LDAP, you can only connect to one account. This limitation could maybe be lifted, feel free to post an issue if you need this.
Type: string
Declared by:
<selfhostblocks/modules/services/mailserver.nix> -
shb.mailserver.ldap.adminName -
Admin user of the LDAP server.
Type: string
Default:
"admin"Declared by:
<selfhostblocks/modules/services/mailserver.nix> -
shb.mailserver.ldap.adminPassword -
LDAP server admin password.
Type: submodule
Declared by:
<selfhostblocks/modules/services/mailserver.nix> -
shb.mailserver.ldap.adminPassword.request -
Request part of the secret contract.
Options set by the requester module enforcing some properties the secret should have.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/services/mailserver.nix> -
shb.mailserver.ldap.adminPassword.request.group -
Linux group owning the secret file.
Type: string
Default:
"root"Declared by:
<selfhostblocks/modules/services/mailserver.nix> -
shb.mailserver.ldap.adminPassword.request.mode -
Mode of the secret file.
Type: string
Default:
"0400"Declared by:
<selfhostblocks/modules/services/mailserver.nix> -
shb.mailserver.ldap.adminPassword.request.owner -
Linux user owning the secret file.
Type: string
Default:
"nextcloud"Declared by:
<selfhostblocks/modules/services/mailserver.nix> -
shb.mailserver.ldap.adminPassword.request.restartUnits -
Systemd units to restart after the secret is updated.
Type: list of string
Default:
[ "dovecot.service" ]Declared by:
<selfhostblocks/modules/services/mailserver.nix> -
shb.mailserver.ldap.adminPassword.result -
Result part of the secret contract.
Options set by the provider module that indicates where the secret can be found.
Type: submodule
Default:
{ path = "/run/secrets/secret"; }Declared by:
<selfhostblocks/modules/services/mailserver.nix> -
shb.mailserver.ldap.adminPassword.result.path -
Path to the file containing the secret generated out of band.
This path will exist after deploying to a target host, it is not available through the nix store.
Type: absolute path
Default:
"/run/secrets/secret"Declared by:
<selfhostblocks/modules/services/mailserver.nix> -
shb.mailserver.ldap.dcdomain -
dc domain for ldap.
Type: string
Example:
"dc=mydomain,dc=com"Declared by:
<selfhostblocks/modules/services/mailserver.nix> -
shb.mailserver.ldap.host -
Host serving the LDAP server.
Type: string
Default:
"127.0.0.1"Declared by:
<selfhostblocks/modules/services/mailserver.nix> -
shb.mailserver.ldap.port -
Port of the service serving the LDAP server.
Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Default:
389Declared by:
<selfhostblocks/modules/services/mailserver.nix> -
shb.mailserver.ldap.userGroup -
Group users must belong to to be able to use mails.
Type: string
Default:
"mail_user"Declared by:
<selfhostblocks/modules/services/mailserver.nix> -
shb.mailserver.smtpRelay -
Proxy outgoing emails through an email provider.
In short, this can help you avoid having your outgoing emails marked as spam. See the manual for a lengthier explanation.
Type: null or (submodule)
Default:
nullDeclared by:
<selfhostblocks/modules/services/mailserver.nix> -
shb.mailserver.smtpRelay.host -
Hostname of the email’s provider SMTP server.
Type: string
Example:
"smtp.fastmail.com"Declared by:
<selfhostblocks/modules/services/mailserver.nix> -
shb.mailserver.smtpRelay.password -
Password used to login to the email’s provider IMAP server.
The password could be an “app password” like for Fastmail
Type: submodule
Declared by:
<selfhostblocks/modules/services/mailserver.nix> -
shb.mailserver.smtpRelay.password.request -
Request part of the secret contract.
Options set by the requester module enforcing some properties the secret should have.
Type: submodule
Default: { mode = 0400; owner = services.postfix.user; group = root; restartUnits = [ postfix.service ]; }
Declared by:
<selfhostblocks/modules/services/mailserver.nix> -
shb.mailserver.smtpRelay.password.request.group -
Linux group owning the secret file.
Type: string
Default:
"root"Declared by:
<selfhostblocks/modules/services/mailserver.nix> -
shb.mailserver.smtpRelay.password.request.mode -
Mode of the secret file.
Type: string
Default:
"0400"Declared by:
<selfhostblocks/modules/services/mailserver.nix> -
shb.mailserver.smtpRelay.password.request.owner -
Linux user owning the secret file.
Type: string
Default: services.postfix.user
Declared by:
<selfhostblocks/modules/services/mailserver.nix> -
shb.mailserver.smtpRelay.password.request.restartUnits -
Systemd units to restart after the secret is updated.
Type: list of string
Default:
[ "postfix.service" ]Declared by:
<selfhostblocks/modules/services/mailserver.nix> -
shb.mailserver.smtpRelay.password.result -
Result part of the secret contract.
Options set by the provider module that indicates where the secret can be found.
Type: submodule
Default:
{ path = "/run/secrets/secret"; }Declared by:
<selfhostblocks/modules/services/mailserver.nix> -
shb.mailserver.smtpRelay.password.result.path -
Path to the file containing the secret generated out of band.
This path will exist after deploying to a target host, it is not available through the nix store.
Type: absolute path
Default:
"/run/secrets/secret"Declared by:
<selfhostblocks/modules/services/mailserver.nix> -
shb.mailserver.smtpRelay.port -
Port of the email’s provider SMTP server.
Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Default:
587Declared by:
<selfhostblocks/modules/services/mailserver.nix> -
shb.mailserver.smtpRelay.username -
Username used to login to the email’s provider SMTP server.
Type: string
Declared by:
<selfhostblocks/modules/services/mailserver.nix> -
shb.mailserver.ssl -
Path to SSL files
Type: null or (open submodule of anything)
Default:
nullDeclared by:
<selfhostblocks/modules/services/mailserver.nix> -
shb.mailserver.ssl.paths -
Paths where the files for the certificate will be located.
This option is the contract output of the
shb.certs.certsSSL block.Type: open submodule of anything
Declared by:
<selfhostblocks/modules/services/mailserver.nix> -
shb.mailserver.ssl.paths.cert -
Path to the cert file.
Type: absolute path
Declared by:
<selfhostblocks/modules/services/mailserver.nix> -
shb.mailserver.ssl.paths.key -
Path to the key file.
Type: absolute path
Declared by:
<selfhostblocks/modules/services/mailserver.nix> -
shb.mailserver.ssl.systemdService -
Systemd oneshot service used to generate the certificate. Ends with the
.servicesuffix.Use this if downstream services must wait for the certificates to be generated before starting.
Type: string
Example:
"cert-generator.service"Declared by:
<selfhostblocks/modules/services/mailserver.nix> -
shb.mailserver.stateVersion -
Tracking stateful version changes as an incrementing number.
When a new release comes out we may require manual migration steps to be completed, before the new version can be put into production.
If your
stateVersionis too low one or multiple assertions may trigger to give you instructions on what migrations steps are required to continue. Increase thestateVersionas instructed by the assertion message.See https://nixos-mailserver.readthedocs.io/en/latest/release-notes.html and https://nixos-mailserver.readthedocs.io/en/latest/migrations.html
Type: positive integer, meaning >0
Default:
4Declared by:
<selfhostblocks/modules/services/mailserver.nix> -
shb.mailserver.subdomain -
Subdomain under which imap and smtp functions will be served.
Type: string
Default:
"imap"Declared by:
<selfhostblocks/modules/services/mailserver.nix> -
shb.mitmdump.addons -
Addons available to the be added to the mitmdump instance.
To enabled them, add them to the
enabledAddonsoption.Type: attribute set of string
Default:
[ ]Declared by:
<selfhostblocks/modules/blocks/mitmdump.nix> -
shb.mitmdump.instances -
Mitmdump instance.
Type: attribute set of (submodule)
Default:
{ }Declared by:
<selfhostblocks/modules/blocks/mitmdump.nix> -
shb.mitmdump.instances.<name>.enabledAddons -
Addons to enable on this mitmdump instance.
Type: list of string
Default:
[ ]Example:
[ config.shb.mitmdump.addons.logger ]Declared by:
<selfhostblocks/modules/blocks/mitmdump.nix> -
shb.mitmdump.instances.<name>.package -
The mitmproxy package to use.
Type: package
Default:
pkgs.mitmproxyDeclared by:
<selfhostblocks/modules/blocks/mitmdump.nix> -
shb.mitmdump.instances.<name>.after -
Systemd services that must be started before this mitmdump proxy instance.
You are guaranteed the mitmdump is listening on the
listenPortwhen its systemd service has started.Type: list of string
Default:
[ ]Declared by:
<selfhostblocks/modules/blocks/mitmdump.nix> -
shb.mitmdump.instances.<name>.extraArgs -
Extra arguments to pass to the mitmdump instance.
See upstream manual for all possible options.
Type: list of string
Default:
[ ]Example:
[ "--set" "verbose_pattern=/api" ]Declared by:
<selfhostblocks/modules/blocks/mitmdump.nix> -
shb.mitmdump.instances.<name>.listenHost -
Host the mitmdump instance will connect on.
Type: string
Default:
"127.0.0.1"Declared by:
<selfhostblocks/modules/blocks/mitmdump.nix> -
shb.mitmdump.instances.<name>.listenPort -
Port the mitmdump instance will listen on.
The upstream port from the client’s perspective.
Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Declared by:
<selfhostblocks/modules/blocks/mitmdump.nix> -
shb.mitmdump.instances.<name>.serviceName -
Name of the mitmdump system service.
Type: string (read only)
Default:
"mitmdump-‹name›.service"Declared by:
<selfhostblocks/modules/blocks/mitmdump.nix> -
shb.mitmdump.instances.<name>.timeout -
Time to wait for upstream to start and mitmdump to start.
Type: signed integer
Default:
30Declared by:
<selfhostblocks/modules/blocks/mitmdump.nix> -
shb.mitmdump.instances.<name>.upstreamHost -
URL of the upstream host the mitmdump instance will connect to.
Must include an
http://orhttps://scheme. Configure the port separately withupstreamPort.Type: string
Default:
"http://127.0.0.1"Declared by:
<selfhostblocks/modules/blocks/mitmdump.nix> -
shb.mitmdump.instances.<name>.upstreamPort -
Port the mitmdump instance will connect to.
The port the server is listening on.
Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Declared by:
<selfhostblocks/modules/blocks/mitmdump.nix> -
shb.monitoring.enable -
Whether to enable selfhostblocks.monitoring.
Type: boolean
Default:
falseExample:
trueDeclared by:
<selfhostblocks/modules/blocks/monitoring.nix> -
shb.monitoring.adminPassword -
Initial admin password.
Type: submodule
Declared by:
<selfhostblocks/modules/blocks/monitoring.nix> -
shb.monitoring.adminPassword.request -
Request part of the secret contract.
Options set by the requester module enforcing some properties the secret should have.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/blocks/monitoring.nix> -
shb.monitoring.adminPassword.request.group -
Linux group owning the secret file.
Type: string
Default:
"grafana"Declared by:
<selfhostblocks/modules/blocks/monitoring.nix> -
shb.monitoring.adminPassword.request.mode -
Mode of the secret file.
Type: string
Default:
"0400"Declared by:
<selfhostblocks/modules/blocks/monitoring.nix> -
shb.monitoring.adminPassword.request.owner -
Linux user owning the secret file.
Type: string
Default:
"grafana"Declared by:
<selfhostblocks/modules/blocks/monitoring.nix> -
shb.monitoring.adminPassword.request.restartUnits -
Systemd units to restart after the secret is updated.
Type: list of string
Default:
[ "grafana.service" ]Declared by:
<selfhostblocks/modules/blocks/monitoring.nix> -
shb.monitoring.adminPassword.result -
Result part of the secret contract.
Options set by the provider module that indicates where the secret can be found.
Type: submodule
Default:
{ path = "/run/secrets/secret"; }Declared by:
<selfhostblocks/modules/blocks/monitoring.nix> -
shb.monitoring.adminPassword.result.path -
Path to the file containing the secret generated out of band.
This path will exist after deploying to a target host, it is not available through the nix store.
Type: absolute path
Default:
"/run/secrets/secret"Declared by:
<selfhostblocks/modules/blocks/monitoring.nix> -
shb.monitoring.contactPoints -
List of email addresses to send alerts to
Type: list of string
Default:
[ ]Declared by:
<selfhostblocks/modules/blocks/monitoring.nix> -
shb.monitoring.dashboard -
Dashboard contract consumer
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/blocks/monitoring.nix> -
shb.monitoring.dashboard.request -
Request part of the dashboard contract.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/blocks/monitoring.nix> -
shb.monitoring.dashboard.request.externalUrl -
URL at which the service can be accessed.
This URL should go through the reverse proxy.
Type: string
Default:
"https://\${config.shb.monitoring.subdomain}.\${config.shb.monitoring.domain}"Example:
"https://jellyfin.example.com"Declared by:
<selfhostblocks/modules/blocks/monitoring.nix> -
shb.monitoring.dashboard.request.internalUrl -
URL at which the service can be accessed directly.
This URL should bypass the reverse proxy. It can be used for example to ping the service and making sure it is up and running correctly.
Type: null or string
Default:
"https://\${config.shb.monitoring.subdomain}.\${config.shb.monitoring.domain}"Example:
"http://127.0.0.1:8081"Declared by:
<selfhostblocks/modules/blocks/monitoring.nix> -
shb.monitoring.dashboard.result -
Result part of the dashboard contract.
No option is provided here.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/blocks/monitoring.nix> -
shb.monitoring.dashboards -
Dashboards to provision under ‘Self Host Blocks’ folder.
Type: list of absolute path
Default:
[ ]Declared by:
<selfhostblocks/modules/blocks/monitoring.nix> -
shb.monitoring.debugLog -
Set to true to enable debug logging of the infrastructure serving Grafana.
Type: boolean
Default:
falseExample:
trueDeclared by:
<selfhostblocks/modules/blocks/monitoring.nix> -
shb.monitoring.domain -
domain under which Grafana will be served.
Type: string
Example:
"mydomain.com"Declared by:
<selfhostblocks/modules/blocks/monitoring.nix> -
shb.monitoring.grafanaPort -
Port where Grafana listens to HTTP requests.
Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Default:
3000Declared by:
<selfhostblocks/modules/blocks/monitoring.nix> -
shb.monitoring.impermanence -
Paths to save when using impermanence setup.
Type: attribute set of string
Default:
{ fluent-bit = "/var/fluent-bit"; }Declared by:
<selfhostblocks/modules/blocks/monitoring.nix> -
shb.monitoring.ldap -
Setup LDAP integration.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/blocks/monitoring.nix> -
shb.monitoring.ldap.adminGroup -
Group users must belong to to be admins in Grafana.
Type: string
Default:
"monitoring_admin"Declared by:
<selfhostblocks/modules/blocks/monitoring.nix> -
shb.monitoring.ldap.userGroup -
Group users must belong to to be able to login to Grafana.
Type: string
Default:
"monitoring_user"Declared by:
<selfhostblocks/modules/blocks/monitoring.nix> -
shb.monitoring.lokiMajorVersion -
Switching from version 2 to 3 requires manual intervention https://grafana.com/docs/loki/latest/setup/upgrade/#main–unreleased. So this let’s the user upgrade at their own pace.
Type: one of 2, 3
Default:
2Declared by:
<selfhostblocks/modules/blocks/monitoring.nix> -
shb.monitoring.lokiPort -
Port where Loki listens to HTTP requests.
Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Default:
3002Declared by:
<selfhostblocks/modules/blocks/monitoring.nix> -
shb.monitoring.orgId -
Org ID where all self host blocks related config will be stored.
Type: signed integer
Default:
1Declared by:
<selfhostblocks/modules/blocks/monitoring.nix> -
shb.monitoring.prometheusPort -
Port where Prometheus listens to HTTP requests.
Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Default:
3001Declared by:
<selfhostblocks/modules/blocks/monitoring.nix> -
shb.monitoring.scrutiny.enable -
Whether to enable scrutiny service.
Type: boolean
Default:
trueExample:
trueDeclared by:
<selfhostblocks/modules/blocks/monitoring.nix> -
shb.monitoring.scrutiny.dashboard -
Dashboard contract consumer
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/blocks/monitoring.nix> -
shb.monitoring.scrutiny.dashboard.request -
Request part of the dashboard contract.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/blocks/monitoring.nix> -
shb.monitoring.scrutiny.dashboard.request.externalUrl -
URL at which the service can be accessed.
This URL should go through the reverse proxy.
Type: string
Default:
"https://\${config.shb.monitoring.scrutiny.subdomain}.\${config.shb.monitoring.domain}"Example:
"https://jellyfin.example.com"Declared by:
<selfhostblocks/modules/blocks/monitoring.nix> -
shb.monitoring.scrutiny.dashboard.request.internalUrl -
URL at which the service can be accessed directly.
This URL should bypass the reverse proxy. It can be used for example to ping the service and making sure it is up and running correctly.
Type: null or string
Default:
"https://127.0.0.1.\${config.services.scrutiny.settings.web.listen.port}"Example:
"http://127.0.0.1:8081"Declared by:
<selfhostblocks/modules/blocks/monitoring.nix> -
shb.monitoring.scrutiny.dashboard.result -
Result part of the dashboard contract.
No option is provided here.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/blocks/monitoring.nix> -
shb.monitoring.scrutiny.ssl -
SSL certificate for the Scrutiny web interface. Defaults to
shb.monitoring.sslfor backwards compatibility.Type: null or (open submodule of anything)
Default:
config.shb.monitoring.sslDeclared by:
<selfhostblocks/modules/blocks/monitoring.nix> -
shb.monitoring.scrutiny.ssl.paths -
Paths where the files for the certificate will be located.
This option is the contract output of the
shb.certs.certsSSL block.Type: open submodule of anything
Declared by:
<selfhostblocks/modules/blocks/monitoring.nix> -
shb.monitoring.scrutiny.ssl.paths.cert -
Path to the cert file.
Type: absolute path
Declared by:
<selfhostblocks/modules/blocks/monitoring.nix> -
shb.monitoring.scrutiny.ssl.paths.key -
Path to the key file.
Type: absolute path
Declared by:
<selfhostblocks/modules/blocks/monitoring.nix> -
shb.monitoring.scrutiny.ssl.systemdService -
Systemd oneshot service used to generate the certificate. Ends with the
.servicesuffix.Use this if downstream services must wait for the certificates to be generated before starting.
Type: string
Example:
"cert-generator.service"Declared by:
<selfhostblocks/modules/blocks/monitoring.nix> -
shb.monitoring.scrutiny.subdomain -
If a string, this will be the subdomain under which the scrutiny web interface will be servced.
If null, the web interface will not be served and only the prometheus metrics will be accessible.
Type: null or string
Default:
"scrutiny"Declared by:
<selfhostblocks/modules/blocks/monitoring.nix> -
shb.monitoring.secretKey -
Secret key used for signing.
Type: submodule
Declared by:
<selfhostblocks/modules/blocks/monitoring.nix> -
shb.monitoring.secretKey.request -
Request part of the secret contract.
Options set by the requester module enforcing some properties the secret should have.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/blocks/monitoring.nix> -
shb.monitoring.secretKey.request.group -
Linux group owning the secret file.
Type: string
Default:
"grafana"Declared by:
<selfhostblocks/modules/blocks/monitoring.nix> -
shb.monitoring.secretKey.request.mode -
Mode of the secret file.
Type: string
Default:
"0400"Declared by:
<selfhostblocks/modules/blocks/monitoring.nix> -
shb.monitoring.secretKey.request.owner -
Linux user owning the secret file.
Type: string
Default:
"grafana"Declared by:
<selfhostblocks/modules/blocks/monitoring.nix> -
shb.monitoring.secretKey.request.restartUnits -
Systemd units to restart after the secret is updated.
Type: list of string
Default:
[ "grafana.service" ]Declared by:
<selfhostblocks/modules/blocks/monitoring.nix> -
shb.monitoring.secretKey.result -
Result part of the secret contract.
Options set by the provider module that indicates where the secret can be found.
Type: submodule
Default:
{ path = "/run/secrets/secret"; }Declared by:
<selfhostblocks/modules/blocks/monitoring.nix> -
shb.monitoring.secretKey.result.path -
Path to the file containing the secret generated out of band.
This path will exist after deploying to a target host, it is not available through the nix store.
Type: absolute path
Default:
"/run/secrets/secret"Declared by:
<selfhostblocks/modules/blocks/monitoring.nix> -
shb.monitoring.smtp -
SMTP options.
Type: null or (submodule)
Default:
nullDeclared by:
<selfhostblocks/modules/blocks/monitoring.nix> -
shb.monitoring.smtp.from_address -
SMTP address from which the emails originate.
Type: string
Example:
"vaultwarden@mydomain.com"Declared by:
<selfhostblocks/modules/blocks/monitoring.nix> -
shb.monitoring.smtp.from_name -
SMTP name from which the emails originate.
Type: string
Default:
"Grafana"Declared by:
<selfhostblocks/modules/blocks/monitoring.nix> -
shb.monitoring.smtp.host -
SMTP host to send the emails to.
Type: string
Declared by:
<selfhostblocks/modules/blocks/monitoring.nix> -
shb.monitoring.smtp.passwordFile -
File containing the password to connect to the SMTP host.
Type: string
Declared by:
<selfhostblocks/modules/blocks/monitoring.nix> -
shb.monitoring.smtp.port -
SMTP port to send the emails to.
Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Default:
25Declared by:
<selfhostblocks/modules/blocks/monitoring.nix> -
shb.monitoring.smtp.username -
Username to connect to the SMTP host.
Type: string
Declared by:
<selfhostblocks/modules/blocks/monitoring.nix> -
shb.monitoring.ssl -
Path to SSL files
Type: null or (open submodule of anything)
Default:
nullDeclared by:
<selfhostblocks/modules/blocks/monitoring.nix> -
shb.monitoring.ssl.paths -
Paths where the files for the certificate will be located.
This option is the contract output of the
shb.certs.certsSSL block.Type: open submodule of anything
Declared by:
<selfhostblocks/modules/blocks/monitoring.nix> -
shb.monitoring.ssl.paths.cert -
Path to the cert file.
Type: absolute path
Declared by:
<selfhostblocks/modules/blocks/monitoring.nix> -
shb.monitoring.ssl.paths.key -
Path to the key file.
Type: absolute path
Declared by:
<selfhostblocks/modules/blocks/monitoring.nix> -
shb.monitoring.ssl.systemdService -
Systemd oneshot service used to generate the certificate. Ends with the
.servicesuffix.Use this if downstream services must wait for the certificates to be generated before starting.
Type: string
Example:
"cert-generator.service"Declared by:
<selfhostblocks/modules/blocks/monitoring.nix> -
shb.monitoring.sso -
Setup SSO integration.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/blocks/monitoring.nix> -
shb.monitoring.sso.enable -
Whether to enable SSO integration…
Type: boolean
Default:
falseExample:
trueDeclared by:
<selfhostblocks/modules/blocks/monitoring.nix> -
shb.monitoring.sso.authEndpoint -
Endpoint to the SSO provider.
Type: string
Default:
nullExample:
"https://authelia.example.com"Declared by:
<selfhostblocks/modules/blocks/monitoring.nix> -
shb.monitoring.sso.authorization_policy -
Require one factor (password) or two factor (device) authentication.
Type: one of “one_factor”, “two_factor”
Default:
"one_factor"Declared by:
<selfhostblocks/modules/blocks/monitoring.nix> -
shb.monitoring.sso.clientID -
Client ID for the OIDC endpoint.
Type: string
Default:
"grafana"Declared by:
<selfhostblocks/modules/blocks/monitoring.nix> -
shb.monitoring.sso.sharedSecret -
OIDC shared secret for Grafana.
Type: submodule
Declared by:
<selfhostblocks/modules/blocks/monitoring.nix> -
shb.monitoring.sso.sharedSecret.request -
Request part of the secret contract.
Options set by the requester module enforcing some properties the secret should have.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/blocks/monitoring.nix> -
shb.monitoring.sso.sharedSecret.request.group -
Linux group owning the secret file.
Type: string
Default:
"root"Declared by:
<selfhostblocks/modules/blocks/monitoring.nix> -
shb.monitoring.sso.sharedSecret.request.mode -
Mode of the secret file.
Type: string
Default:
"0400"Declared by:
<selfhostblocks/modules/blocks/monitoring.nix> -
shb.monitoring.sso.sharedSecret.request.owner -
Linux user owning the secret file.
Type: string
Default:
"grafana"Declared by:
<selfhostblocks/modules/blocks/monitoring.nix> -
shb.monitoring.sso.sharedSecret.request.restartUnits -
Systemd units to restart after the secret is updated.
Type: list of string
Default:
[ "grafana.service" ]Declared by:
<selfhostblocks/modules/blocks/monitoring.nix> -
shb.monitoring.sso.sharedSecret.result -
Result part of the secret contract.
Options set by the provider module that indicates where the secret can be found.
Type: submodule
Default:
{ path = "/run/secrets/secret"; }Declared by:
<selfhostblocks/modules/blocks/monitoring.nix> -
shb.monitoring.sso.sharedSecret.result.path -
Path to the file containing the secret generated out of band.
This path will exist after deploying to a target host, it is not available through the nix store.
Type: absolute path
Default:
"/run/secrets/secret"Declared by:
<selfhostblocks/modules/blocks/monitoring.nix> -
shb.monitoring.sso.sharedSecretForAuthelia -
OIDC shared secret for Authelia. Must be the same as
sharedSecretType: submodule
Declared by:
<selfhostblocks/modules/blocks/monitoring.nix> -
shb.monitoring.sso.sharedSecretForAuthelia.request -
Request part of the secret contract.
Options set by the requester module enforcing some properties the secret should have.
Type: submodule
Default: { mode = 0400; owner = config.shb.authelia.autheliaUser; group = root; restartUnits = [ ]; }
Declared by:
<selfhostblocks/modules/blocks/monitoring.nix> -
shb.monitoring.sso.sharedSecretForAuthelia.request.group -
Linux group owning the secret file.
Type: string
Default:
"root"Declared by:
<selfhostblocks/modules/blocks/monitoring.nix> -
shb.monitoring.sso.sharedSecretForAuthelia.request.mode -
Mode of the secret file.
Type: string
Default:
"0400"Declared by:
<selfhostblocks/modules/blocks/monitoring.nix> -
shb.monitoring.sso.sharedSecretForAuthelia.request.owner -
Linux user owning the secret file.
Type: string
Default: config.shb.authelia.autheliaUser
Declared by:
<selfhostblocks/modules/blocks/monitoring.nix> -
shb.monitoring.sso.sharedSecretForAuthelia.request.restartUnits -
Systemd units to restart after the secret is updated.
Type: list of string
Default:
[ ]Declared by:
<selfhostblocks/modules/blocks/monitoring.nix> -
shb.monitoring.sso.sharedSecretForAuthelia.result -
Result part of the secret contract.
Options set by the provider module that indicates where the secret can be found.
Type: submodule
Default:
{ path = "/run/secrets/secret"; }Declared by:
<selfhostblocks/modules/blocks/monitoring.nix> -
shb.monitoring.sso.sharedSecretForAuthelia.result.path -
Path to the file containing the secret generated out of band.
This path will exist after deploying to a target host, it is not available through the nix store.
Type: absolute path
Default:
"/run/secrets/secret"Declared by:
<selfhostblocks/modules/blocks/monitoring.nix> -
shb.monitoring.subdomain -
Subdomain under which Grafana will be served.
Type: string
Example:
"grafana"Declared by:
<selfhostblocks/modules/blocks/monitoring.nix> -
shb.nextcloud.enable -
Whether to enable the SHB Nextcloud service.
Type: boolean
Default:
falseExample:
trueDeclared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.enableDashboard -
Whether to enable the Nextcloud SHB dashboard.
Type: boolean
Default:
trueExample:
trueDeclared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.adminPass -
Nextcloud admin password.
Type: submodule
Declared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.adminPass.request -
Request part of the secret contract.
Options set by the requester module enforcing some properties the secret should have.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.adminPass.request.group -
Linux group owning the secret file.
Type: string
Default:
"root"Declared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.adminPass.request.mode -
Mode of the secret file.
Type: string
Default:
"0400"Declared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.adminPass.request.owner -
Linux user owning the secret file.
Type: string
Default:
"nextcloud"Declared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.adminPass.request.restartUnits -
Systemd units to restart after the secret is updated.
Type: list of string
Default:
[ "phpfpm-nextcloud.service" ]Declared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.adminPass.result -
Result part of the secret contract.
Options set by the provider module that indicates where the secret can be found.
Type: submodule
Default:
{ path = "/run/secrets/secret"; }Declared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.adminPass.result.path -
Path to the file containing the secret generated out of band.
This path will exist after deploying to a target host, it is not available through the nix store.
Type: absolute path
Default:
"/run/secrets/secret"Declared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.alwaysApplyExpensiveMigrations -
Run
occ maintenance:repair --include-expensiveon service start.Larger instances should disable this and run the command at a convenient time but SHB assumes that it will not be the case for most users.
Note that SHB will still allow the startup even if the repair failed.
Type: boolean
Default:
trueDeclared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.apps -
Applications to enable in Nextcloud. Enabling an application here will also configure various services needed for this application.
Enabled apps will automatically be installed, enabled and configured, so no need to do that through the UI. You can still make changes but they will be overridden on next deploy. You can still install and configure other apps through the UI.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.apps.externalStorage -
External Storage App. Manual
Set
userLocalMountto automatically add a local directory as an external storage. Use this option if you want to store user data in another folder or another hard drive altogether.In the
directoryoption, you can use either$userand/or$homewhich will be replaced by the user’s name and home directory.Recommended use of this option is to have the Nextcloud’s
dataDiron a SSD and theuserLocalRooDirectoryon a HDD. Indeed, a SSD is much quicker than a spinning hard drive, which is well suited for randomly accessing small files like thumbnails. On the other side, a spinning hard drive can store more data which is well suited for storing user data.Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.apps.externalStorage.enable -
Whether to enable Nextcloud External Storage App.
Type: boolean
Default:
falseExample:
trueDeclared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.apps.externalStorage.userLocalMount -
If set, adds a local mount as external storage.
Type: null or (submodule)
Default:
nullDeclared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.apps.externalStorage.userLocalMount.directory -
Local directory on the filesystem to mount. Use
$userand/or$homewhich will be replaced by the user’s name and home directory.Type: string
Example:
"/srv/nextcloud/$user"Declared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.apps.externalStorage.userLocalMount.mountName -
Path of the mount in Nextcloud. Use
/to mount as the root.Type: string
Default:
""Example:
[ "home" "/" ]Declared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.apps.ldap -
LDAP Integration App. Manual
Enabling this app will create a new LDAP configuration or update one that exists with the given host.
Type: null or (submodule)
Default:
{ }Declared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.apps.ldap.enable -
Whether to enable LDAP app…
Type: boolean
Default:
falseExample:
trueDeclared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.apps.ldap.adminName -
Admin user of the LDAP server.
Type: string
Default:
"admin"Declared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.apps.ldap.adminPassword -
LDAP server admin password.
Type: submodule
Declared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.apps.ldap.adminPassword.request -
Request part of the secret contract.
Options set by the requester module enforcing some properties the secret should have.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.apps.ldap.adminPassword.request.group -
Linux group owning the secret file.
Type: string
Default:
"root"Declared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.apps.ldap.adminPassword.request.mode -
Mode of the secret file.
Type: string
Default:
"0400"Declared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.apps.ldap.adminPassword.request.owner -
Linux user owning the secret file.
Type: string
Default:
"nextcloud"Declared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.apps.ldap.adminPassword.request.restartUnits -
Systemd units to restart after the secret is updated.
Type: list of string
Default:
[ "phpfpm-nextcloud.service" ]Declared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.apps.ldap.adminPassword.result -
Result part of the secret contract.
Options set by the provider module that indicates where the secret can be found.
Type: submodule
Default:
{ path = "/run/secrets/secret"; }Declared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.apps.ldap.adminPassword.result.path -
Path to the file containing the secret generated out of band.
This path will exist after deploying to a target host, it is not available through the nix store.
Type: absolute path
Default:
"/run/secrets/secret"Declared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.apps.ldap.configID -
Multiple LDAP configs can co-exist with only one active at a time. This option sets the config ID used by Self Host Blocks.
Type: signed integer
Default:
50Declared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.apps.ldap.dcdomain -
dc domain for ldap.
Type: string
Example:
"dc=mydomain,dc=com"Declared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.apps.ldap.host -
Host serving the LDAP server.
Type: string
Default:
"127.0.0.1"Declared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.apps.ldap.port -
Port of the service serving the LDAP server.
Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Default:
389Declared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.apps.ldap.userGroup -
Group users must belong to to be able to login to Nextcloud.
Type: string
Default:
"nextcloud_user"Declared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.apps.memories -
Memories App. Nextcloud App Store
Enabling this app will set up the Memories app and configure all its dependencies.
On first install, you can either let the cron job index all images or you can run it manually with:
nextcloud-occ memories:indexType: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.apps.memories.enable -
Whether to enable Memories app…
Type: boolean
Default:
falseExample:
trueDeclared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.apps.memories.photosPath -
Path where photos are stored in Nextcloud.
Type: string
Default:
"/Photos"Declared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.apps.memories.vaapi -
Enable VAAPI transcoding.
Will make
nextclouduser part of therendergroup to be able to access/dev/dri/renderD128.Type: boolean
Default:
falseDeclared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.apps.onlyoffice -
Only Office App. Nextcloud App Store
Enabling this app will also start an OnlyOffice instance accessible at the given subdomain from the given network range.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.apps.onlyoffice.enable -
Whether to enable Nextcloud OnlyOffice App.
Type: boolean
Default:
falseExample:
trueDeclared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.apps.onlyoffice.jwtSecretFile -
File containing the JWT secret. This option is required.
Must be readable by the nextcloud system user.
Type: null or absolute path
Default:
nullDeclared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.apps.onlyoffice.localNetworkIPRange -
Local network range, to restrict access to Open Office to only those IPs.
Type: string
Default:
"192.168.1.1/24"Declared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.apps.onlyoffice.ssl -
Path to SSL files
Type: null or (open submodule of anything)
Default:
nullDeclared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.apps.onlyoffice.ssl.paths -
Paths where the files for the certificate will be located.
This option is the contract output of the
shb.certs.certsSSL block.Type: open submodule of anything
Declared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.apps.onlyoffice.ssl.paths.cert -
Path to the cert file.
Type: absolute path
Declared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.apps.onlyoffice.ssl.paths.key -
Path to the key file.
Type: absolute path
Declared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.apps.onlyoffice.ssl.systemdService -
Systemd oneshot service used to generate the certificate. Ends with the
.servicesuffix.Use this if downstream services must wait for the certificates to be generated before starting.
Type: string
Example:
"cert-generator.service"Declared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.apps.onlyoffice.subdomain -
Subdomain under which Only Office will be served.
Type: string
Default:
"oo"Declared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.apps.previewgenerator -
Preview Generator App. Nextcloud App Store
Enabling this app will create a cron job running every minute to generate thumbnails for new and updated files.
To generate thumbnails for already existing files, run:
nextcloud-occ -vvv preview:generate-allType: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.apps.previewgenerator.enable -
Whether to enable Nextcloud Preview Generator App.
Type: boolean
Default:
falseExample:
trueDeclared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.apps.previewgenerator.debug -
Enable more verbose logging.
Type: boolean
Default:
falseExample:
trueDeclared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.apps.previewgenerator.recommendedSettings -
Better defaults than the defaults. Taken from this article.
Sets the following options:
nextcloud-occ config:app:set previewgenerator squareSizes --value="32 256" nextcloud-occ config:app:set previewgenerator widthSizes --value="256 384" nextcloud-occ config:app:set previewgenerator heightSizes --value="256" nextcloud-occ config:system:set preview_max_x --type integer --value 2048 nextcloud-occ config:system:set preview_max_y --type integer --value 2048 nextcloud-occ config:system:set jpeg_quality --value 60 nextcloud-occ config:app:set preview jpeg_quality --value=60Type: boolean
Default:
trueExample:
falseDeclared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.apps.recognize -
Recognize App. Nextcloud App Store
Enabling this app will set up the Recognize app and configure all its dependencies.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.apps.recognize.enable -
Whether to enable Recognize app…
Type: boolean
Default:
falseExample:
trueDeclared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.apps.sso -
SSO Integration App. Manual
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.apps.sso.enable -
Whether to enable SSO app…
Type: boolean
Default:
falseExample:
trueDeclared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.apps.sso.adminGroup -
Group admins must belong to to be able to login to Nextcloud.
This option is purposely not inside the LDAP app because only SSO allows distinguising between users and admins.
Type: string
Default:
"nextcloud_admin"Declared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.apps.sso.authorization_policy -
Require one factor (password) or two factor (device) authentication.
Type: one of “one_factor”, “two_factor”
Default:
"one_factor"Declared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.apps.sso.clientID -
Client ID for the OIDC endpoint.
Type: string
Default:
"nextcloud"Declared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.apps.sso.endpoint -
OIDC endpoint for SSO.
Type: string
Example:
"https://authelia.example.com"Declared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.apps.sso.fallbackDefaultAuth -
Fallback to normal Nextcloud auth if something goes wrong with the SSO app. Usually, you want to enable this to transfer existing users to LDAP and then you can disabled it.
Type: boolean
Default:
falseDeclared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.apps.sso.port -
If given, adds a port to the endpoint.
Type: null or 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Default:
nullDeclared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.apps.sso.provider -
OIDC provider name, used for display.
Type: value “Authelia” (singular enum)
Default:
"Authelia"Declared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.apps.sso.secret -
OIDC shared secret.
Type: submodule
Declared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.apps.sso.secret.request -
Request part of the secret contract.
Options set by the requester module enforcing some properties the secret should have.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.apps.sso.secret.request.group -
Linux group owning the secret file.
Type: string
Default:
"root"Declared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.apps.sso.secret.request.mode -
Mode of the secret file.
Type: string
Default:
"0400"Declared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.apps.sso.secret.request.owner -
Linux user owning the secret file.
Type: string
Default:
"nextcloud"Declared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.apps.sso.secret.request.restartUnits -
Systemd units to restart after the secret is updated.
Type: list of string
Default:
[ "phpfpm-nextcloud.service" ]Declared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.apps.sso.secret.result -
Result part of the secret contract.
Options set by the provider module that indicates where the secret can be found.
Type: submodule
Default:
{ path = "/run/secrets/secret"; }Declared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.apps.sso.secret.result.path -
Path to the file containing the secret generated out of band.
This path will exist after deploying to a target host, it is not available through the nix store.
Type: absolute path
Default:
"/run/secrets/secret"Declared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.apps.sso.secretForAuthelia -
OIDC shared secret. Content must be the same as
secretFileoption.Type: submodule
Declared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.apps.sso.secretForAuthelia.request -
Request part of the secret contract.
Options set by the requester module enforcing some properties the secret should have.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.apps.sso.secretForAuthelia.request.group -
Linux group owning the secret file.
Type: string
Default:
"root"Declared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.apps.sso.secretForAuthelia.request.mode -
Mode of the secret file.
Type: string
Default:
"0400"Declared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.apps.sso.secretForAuthelia.request.owner -
Linux user owning the secret file.
Type: string
Default:
"authelia"Declared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.apps.sso.secretForAuthelia.request.restartUnits -
Systemd units to restart after the secret is updated.
Type: list of string
Default:
[ ]Declared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.apps.sso.secretForAuthelia.result -
Result part of the secret contract.
Options set by the provider module that indicates where the secret can be found.
Type: submodule
Default:
{ path = "/run/secrets/secret"; }Declared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.apps.sso.secretForAuthelia.result.path -
Path to the file containing the secret generated out of band.
This path will exist after deploying to a target host, it is not available through the nix store.
Type: absolute path
Default:
"/run/secrets/secret"Declared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.autoDisableMaintenanceModeOnStart -
Upon starting the service, disable maintenance mode if set.
This is useful if a deploy failed and you try to redeploy.
Note that even if the disabling of maintenance mode fails, SHB will still allow the startup to continue because there are valid reasons for maintenance mode to not be able to be lifted, like for example this is a brand new installation.
Type: boolean
Default:
trueDeclared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.backup -
Backup configuration.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.backup.request -
Request part of the backup contract.
Options set by the requester module enforcing how to backup files.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.backup.request.excludePatterns -
File patterns to exclude.
Type: list of string
Default:
[ ".rnd" ]Declared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.backup.request.hooks -
Hooks to run around the backup.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.backup.request.hooks.afterBackup -
Hooks to run after backup.
Type: list of string
Default:
[ ]Declared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.backup.request.hooks.beforeBackup -
Hooks to run before backup.
Type: list of string
Default:
[ ]Declared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.backup.request.sourceDirectories -
Directories to backup.
Type: non-empty (list of string)
Default:
[ "/var/lib/nextcloud" ]Example:
"/var/lib/vaultwarden"Declared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.backup.request.user -
Unix user doing the backups.
Type: string
Default:
"nextcloud"Example:
"vaultwarden"Declared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.backup.result -
Result part of the backup contract.
Options set by the provider module that indicates the name of the backup and restore scripts.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.backup.result.backupService -
Name of service backing up the database.
This script can be ran manually to backup the database:
$ systemctl start backup.serviceType: string
Default:
"backup.service"Declared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.backup.result.restoreScript -
Name of script that can restore the database. One can then list snapshots with:
$ restore snapshots <snapshot 1> <metadata> <snapshot 2> <metadata>And restore the database with:
$ restore restore <snapshot 1>Type: string
Default:
"restore"Declared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.dashboard -
Dashboard contract consumer
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.dashboard.request -
Request part of the dashboard contract.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.dashboard.request.externalUrl -
URL at which the service can be accessed.
This URL should go through the reverse proxy.
Type: string
Default:
"https://\${config.shb.nextcloud.subdomain}.\${config.shb.nextcloud.domain}"Example:
"https://jellyfin.example.com"Declared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.dashboard.request.internalUrl -
URL at which the service can be accessed directly.
This URL should bypass the reverse proxy. It can be used for example to ping the service and making sure it is up and running correctly.
Type: null or string
Default:
"https://\${config.shb.nextcloud.subdomain}.\${config.shb.nextcloud.domain}"Example:
"http://127.0.0.1:8081"Declared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.dashboard.result -
Result part of the dashboard contract.
No option is provided here.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.dataDir -
Folder where Nextcloud will store all its data.
Type: string
Default:
"/var/lib/nextcloud"Declared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.debug -
Enable more verbose logging.
Type: boolean
Default:
falseExample:
trueDeclared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.defaultPhoneRegion -
Two letters region defining default region.
Type: string
Example:
"US"Declared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.domain -
Domain under which Nextcloud is served.
<subdomain>.<domain>[:<port>]Type: string
Example:
"domain.com"Declared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.externalFqdn -
External fqdn used to access Nextcloud. Defaults to <subdomain>.<domain>. This should only be set if you include the port when accessing Nextcloud.
Type: null or string
Default:
nullExample:
"nextcloud.domain.com:8080"Declared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.extraApps -
Extra apps to install.
Should be a function returning an
attrSetofappidas keys topackagesas values, like generated byfetchNextcloudApp. The appid must be identical to theidvalue in the apps’appinfo/info.xml. Search in nixpkgs for theNN.jsonfiles for existing apps.When this option installs at least one app, the nixpkgs Nextcloud module disables app-store installation and updates by default. This prevents Nextcloud from replacing declaratively managed packages with mutable copies. Set
services.nextcloud.appstoreEnable = trueto override that policy.Type: raw value
Default:
nullExample:
apps: { inherit (apps) mail calendar contact; phonetrack = pkgs.fetchNextcloudApp { name = "phonetrack"; sha256 = "0qf366vbahyl27p9mshfma1as4nvql6w75zy2zk5xwwbp343vsbc"; url = "https://gitlab.com/eneiluj/phonetrack-oc/-/wikis/uploads/931aaaf8dca24bf31a7e169a83c17235/phonetrack-0.6.9.tar.gz"; version = "0.6.9"; }; }Declared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.initialAdminUsername -
Initial username of the admin user. Once it is set, it cannot be changed!
Type: string
Default:
"root"Declared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.maxUploadSize -
The upload limit for files. This changes the relevant options in php.ini and nginx if enabled.
Type: string
Default:
"4G"Declared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.mountPointServices -
If given, all the systemd services and timers will depend on the specified mount point systemd services.
Type: list of string
Default:
[ ]Example:
["var.mount"]Declared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.phpFpmPoolSettings -
Settings for PHPFPM.
Type: null or (attribute set of anything)
Default:
{ pm = "static"; "pm.max_children" = 5; "pm.start_servers" = 5; }Example:
{ "pm" = "dynamic"; "pm.max_children" = 50; "pm.start_servers" = 25; "pm.min_spare_servers" = 10; "pm.max_spare_servers" = 20; "pm.max_spawn_rate" = 50; "pm.max_requests" = 50; "pm.process_idle_timeout" = "20s"; }Declared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.phpFpmPrometheusExporter -
Settings for exporting
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.phpFpmPrometheusExporter.enable -
Enable export of php-fpm metrics to Prometheus.
Type: boolean
Default:
trueDeclared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.phpFpmPrometheusExporter.port -
Port on which the exporter will listen.
Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Default:
8300Declared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.port -
Port under which Nextcloud will be served. If null is given, then the port is omitted.
<subdomain>.<domain>[:<port>]Type: null or 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Default:
nullDeclared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.postgresSettings -
Settings for the PostgreSQL database.
Go to https://pgtune.leopard.in.ua/ and copy the generated configuration here.
Type: null or (attribute set of string)
Default:
nullExample:
{ # From https://pgtune.leopard.in.ua/ with: # DB Version: 14 # OS Type: linux # DB Type: dw # Total Memory (RAM): 7 GB # CPUs num: 4 # Connections num: 100 # Data Storage: ssd max_connections = "100"; shared_buffers = "1792MB"; effective_cache_size = "5376MB"; maintenance_work_mem = "896MB"; checkpoint_completion_target = "0.9"; wal_buffers = "16MB"; default_statistics_target = "500"; random_page_cost = "1.1"; effective_io_concurrency = "200"; work_mem = "4587kB"; huge_pages = "off"; min_wal_size = "4GB"; max_wal_size = "16GB"; max_worker_processes = "4"; max_parallel_workers_per_gather = "2"; max_parallel_workers = "4"; max_parallel_maintenance_workers = "2"; }Declared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.ssl -
Path to SSL files
Type: null or (open submodule of anything)
Default:
nullDeclared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.ssl.paths -
Paths where the files for the certificate will be located.
This option is the contract output of the
shb.certs.certsSSL block.Type: open submodule of anything
Declared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.ssl.paths.cert -
Path to the cert file.
Type: absolute path
Declared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.ssl.paths.key -
Path to the key file.
Type: absolute path
Declared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.ssl.systemdService -
Systemd oneshot service used to generate the certificate. Ends with the
.servicesuffix.Use this if downstream services must wait for the certificates to be generated before starting.
Type: string
Example:
"cert-generator.service"Declared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.subdomain -
Subdomain under which Nextcloud will be served.
<subdomain>.<domain>[:<port>]Type: string
Example:
"nextcloud"Declared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.tracing -
Enable xdebug tracing.
To trigger writing a trace to
/var/log/xdebug, add a the following header:XDEBUG_TRACE <shb.nextcloud.tracing value>The response will contain the following header:
x-xdebug-profile-filename /var/log/xdebug/cachegrind.out.63484Type: null or string
Default:
nullExample:
"debug_me"Declared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nextcloud.version -
Nextcloud version to choose from.
Type: one of 33, 34
Default:
34Declared by:
<selfhostblocks/modules/services/nextcloud-server.nix> -
shb.nginx.debugLog -
Verbose debug of internal. This will print what servers were matched and why.
Type: boolean
Default:
falseExample:
trueDeclared by:
<selfhostblocks/modules/blocks/nginx.nix> -
shb.nginx.insecureAccessLogWithRequestBody -
Log all requests, including potentially sensitive request bodies
Type: boolean
Default:
falseExample:
trueDeclared by:
<selfhostblocks/modules/blocks/nginx.nix> -
shb.nginx.vhosts -
Endpoints to be protected by authelia.
Type: list of (submodule)
Default:
[ ]Declared by:
<selfhostblocks/modules/blocks/nginx.nix> -
shb.nginx.vhosts.*.authEndpoint -
Optional auth endpoint for SSO.
Type: null or string
Default:
nullExample:
"https://authelia.example.com"Declared by:
<selfhostblocks/modules/blocks/nginx.nix> -
shb.nginx.vhosts.*.autheliaRules -
Authelia rule configuration
Type: list of attribute set of anything
Default:
[ ]Example:
[ # Protect /admin endpoint with 2FA # and only allow access to admin users. { domain = "myapp.example.com"; policy = "two_factor"; subject = [ "group:service_admin" ]; resources = [ "^/admin" ]; } # Leave /api endpoint open - assumes an API key is used to protect it. { domain = "myapp.example.com"; policy = "bypass"; resources = [ "^/api" ]; }, # Protect rest of app with 1FA # and allow access to normal and admin users. { domain = "myapp.example.com"; policy = "one_factor"; subject = ["group:service_user"]; }, ]Declared by:
<selfhostblocks/modules/blocks/nginx.nix> -
shb.nginx.vhosts.*.domain -
Domain of the subdomain.
Type: string
Example:
"mydomain.com"Declared by:
<selfhostblocks/modules/blocks/nginx.nix> -
shb.nginx.vhosts.*.extraConfig -
Extra config to add to the root / location. Strings separated by newlines.
Type: strings concatenated with “\n”
Default:
""Declared by:
<selfhostblocks/modules/blocks/nginx.nix> -
shb.nginx.vhosts.*.phpForwardAuth -
Authelia rule configuration
Type: boolean
Default:
falseDeclared by:
<selfhostblocks/modules/blocks/nginx.nix> -
shb.nginx.vhosts.*.ssl -
Path to SSL files
Type: null or (open submodule of anything)
Default:
nullDeclared by:
<selfhostblocks/modules/blocks/nginx.nix> -
shb.nginx.vhosts.*.ssl.paths -
Paths where the files for the certificate will be located.
This option is the contract output of the
shb.certs.certsSSL block.Type: open submodule of anything
Declared by:
<selfhostblocks/modules/blocks/nginx.nix> -
shb.nginx.vhosts.*.ssl.paths.cert -
Path to the cert file.
Type: absolute path
Declared by:
<selfhostblocks/modules/blocks/nginx.nix> -
shb.nginx.vhosts.*.ssl.paths.key -
Path to the key file.
Type: absolute path
Declared by:
<selfhostblocks/modules/blocks/nginx.nix> -
shb.nginx.vhosts.*.ssl.systemdService -
Systemd oneshot service used to generate the certificate. Ends with the
.servicesuffix.Use this if downstream services must wait for the certificates to be generated before starting.
Type: string
Example:
"cert-generator.service"Declared by:
<selfhostblocks/modules/blocks/nginx.nix> -
shb.nginx.vhosts.*.subdomain -
Subdomain which must be protected.
Type: string
Example:
"subdomain"Declared by:
<selfhostblocks/modules/blocks/nginx.nix> -
shb.nginx.vhosts.*.upstream -
Upstream url to be protected.
Type: null or string
Default:
nullExample:
"http://127.0.0.1:1234"Declared by:
<selfhostblocks/modules/blocks/nginx.nix> -
shb.open-webui.enable -
Whether to enable the Open-WebUI service.
Type: boolean
Default:
falseExample:
trueDeclared by:
<selfhostblocks/modules/services/open-webui.nix> -
shb.open-webui.backup -
Backup state directory.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/open-webui.nix> -
shb.open-webui.backup.request -
Request part of the backup contract.
Options set by the requester module enforcing how to backup files.
Type: submodule
Default: { user = open-webui; sourceDirectories = [ config.services.open-webui.stateDir ]; excludePatterns = [ ]; hooks.beforeBackup = [ ]; hooks.afterBackup = [ ]; };
Declared by:
<selfhostblocks/modules/services/open-webui.nix> -
shb.open-webui.backup.request.excludePatterns -
File patterns to exclude.
Type: list of string
Default:
[ ]Declared by:
<selfhostblocks/modules/services/open-webui.nix> -
shb.open-webui.backup.request.hooks -
Hooks to run around the backup.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/open-webui.nix> -
shb.open-webui.backup.request.hooks.afterBackup -
Hooks to run after backup.
Type: list of string
Default:
[ ]Declared by:
<selfhostblocks/modules/services/open-webui.nix> -
shb.open-webui.backup.request.hooks.beforeBackup -
Hooks to run before backup.
Type: list of string
Default:
[ ]Declared by:
<selfhostblocks/modules/services/open-webui.nix> -
shb.open-webui.backup.request.sourceDirectories -
Directories to backup.
Type: non-empty (list of string)
Default: [ config.services.open-webui.stateDir ]
Example:
"/var/lib/vaultwarden"Declared by:
<selfhostblocks/modules/services/open-webui.nix> -
shb.open-webui.backup.request.user -
Unix user doing the backups.
Type: string
Default:
"open-webui"Example:
"vaultwarden"Declared by:
<selfhostblocks/modules/services/open-webui.nix> -
shb.open-webui.backup.result -
Result part of the backup contract.
Options set by the provider module that indicates the name of the backup and restore scripts.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/services/open-webui.nix> -
shb.open-webui.backup.result.backupService -
Name of service backing up the database.
This script can be ran manually to backup the database:
$ systemctl start backup.serviceType: string
Default:
"backup.service"Declared by:
<selfhostblocks/modules/services/open-webui.nix> -
shb.open-webui.backup.result.restoreScript -
Name of script that can restore the database. One can then list snapshots with:
$ restore snapshots <snapshot 1> <metadata> <snapshot 2> <metadata>And restore the database with:
$ restore restore <snapshot 1>Type: string
Default:
"restore"Declared by:
<selfhostblocks/modules/services/open-webui.nix> -
shb.open-webui.dashboard -
Dashboard contract consumer
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/open-webui.nix> -
shb.open-webui.dashboard.request -
Request part of the dashboard contract.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/open-webui.nix> -
shb.open-webui.dashboard.request.externalUrl -
URL at which the service can be accessed.
This URL should go through the reverse proxy.
Type: string
Default:
"https://\${config.shb.open-webui.subdomain}.\${config.shb.open-webui.domain}"Example:
"https://jellyfin.example.com"Declared by:
<selfhostblocks/modules/services/open-webui.nix> -
shb.open-webui.dashboard.request.internalUrl -
URL at which the service can be accessed directly.
This URL should bypass the reverse proxy. It can be used for example to ping the service and making sure it is up and running correctly.
Type: null or string
Default:
"http://127.0.0.1:12444"Example:
"http://127.0.0.1:8081"Declared by:
<selfhostblocks/modules/services/open-webui.nix> -
shb.open-webui.dashboard.result -
Result part of the dashboard contract.
No option is provided here.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/open-webui.nix> -
shb.open-webui.domain -
domain under which Open-WebUI will be served.
Type: string
Example:
"mydomain.com"Declared by:
<selfhostblocks/modules/services/open-webui.nix> -
shb.open-webui.environment -
Extra environment variables. See https://docs.openwebui.com/getting-started/env-configuration
Type: attribute set of string
Default:
{ }Example:
'' { WEBUI_NAME = "SelfHostBlocks"; OLLAMA_BASE_URL = "http://127.0.0.1:''${toString config.services.ollama.port}"; RAG_EMBEDDING_ENGINE = "ollama"; RAG_EMBEDDING_MODEL = "nomic-embed-text:v1.5"; ENABLE_OPENAI_API = "True"; OPENAI_API_BASE_URL = "http://127.0.0.1:''${toString config.services.llama-cpp.port}"; ENABLE_WEB_SEARCH = "True"; } ''Declared by:
<selfhostblocks/modules/services/open-webui.nix> -
shb.open-webui.ldap -
Setup LDAP integration.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/open-webui.nix> -
shb.open-webui.ldap.adminGroup -
Group users must belong to to have administrator privileges.
Type: string
Default:
"open-webui_admin"Declared by:
<selfhostblocks/modules/services/open-webui.nix> -
shb.open-webui.ldap.userGroup -
Group users must belong to to be able to login.
Type: string
Default:
"open-webui_user"Declared by:
<selfhostblocks/modules/services/open-webui.nix> -
shb.open-webui.port -
Port Open-WebUI listens to incoming requests.
Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Default:
12444Declared by:
<selfhostblocks/modules/services/open-webui.nix> -
shb.open-webui.ssl -
Path to SSL files
Type: null or (open submodule of anything)
Default:
nullDeclared by:
<selfhostblocks/modules/services/open-webui.nix> -
shb.open-webui.ssl.paths -
Paths where the files for the certificate will be located.
This option is the contract output of the
shb.certs.certsSSL block.Type: open submodule of anything
Declared by:
<selfhostblocks/modules/services/open-webui.nix> -
shb.open-webui.ssl.paths.cert -
Path to the cert file.
Type: absolute path
Declared by:
<selfhostblocks/modules/services/open-webui.nix> -
shb.open-webui.ssl.paths.key -
Path to the key file.
Type: absolute path
Declared by:
<selfhostblocks/modules/services/open-webui.nix> -
shb.open-webui.ssl.systemdService -
Systemd oneshot service used to generate the certificate. Ends with the
.servicesuffix.Use this if downstream services must wait for the certificates to be generated before starting.
Type: string
Example:
"cert-generator.service"Declared by:
<selfhostblocks/modules/services/open-webui.nix> -
shb.open-webui.sso -
Setup SSO integration.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/open-webui.nix> -
shb.open-webui.sso.enable -
Whether to enable SSO integration…
Type: boolean
Default:
falseExample:
trueDeclared by:
<selfhostblocks/modules/services/open-webui.nix> -
shb.open-webui.sso.authEndpoint -
Endpoint to the SSO provider.
Type: string
Example:
"https://authelia.example.com"Declared by:
<selfhostblocks/modules/services/open-webui.nix> -
shb.open-webui.sso.authorization_policy -
Require one factor (password) or two factor (device) authentication.
Type: one of “one_factor”, “two_factor”
Default:
"one_factor"Declared by:
<selfhostblocks/modules/services/open-webui.nix> -
shb.open-webui.sso.clientID -
Client ID for the OIDC endpoint.
Type: string
Default:
"open-webui"Declared by:
<selfhostblocks/modules/services/open-webui.nix> -
shb.open-webui.sso.sharedSecret -
OIDC shared secret for Open-WebUI.
Type: submodule
Declared by:
<selfhostblocks/modules/services/open-webui.nix> -
shb.open-webui.sso.sharedSecret.request -
Request part of the secret contract.
Options set by the requester module enforcing some properties the secret should have.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/services/open-webui.nix> -
shb.open-webui.sso.sharedSecret.request.group -
Linux group owning the secret file.
Type: string
Default:
"root"Declared by:
<selfhostblocks/modules/services/open-webui.nix> -
shb.open-webui.sso.sharedSecret.request.mode -
Mode of the secret file.
Type: string
Default:
"0400"Declared by:
<selfhostblocks/modules/services/open-webui.nix> -
shb.open-webui.sso.sharedSecret.request.owner -
Linux user owning the secret file.
Type: string
Default:
"open-webui"Declared by:
<selfhostblocks/modules/services/open-webui.nix> -
shb.open-webui.sso.sharedSecret.request.restartUnits -
Systemd units to restart after the secret is updated.
Type: list of string
Default:
[ "open-webui.service" ]Declared by:
<selfhostblocks/modules/services/open-webui.nix> -
shb.open-webui.sso.sharedSecret.result -
Result part of the secret contract.
Options set by the provider module that indicates where the secret can be found.
Type: submodule
Default:
{ path = "/run/secrets/secret"; }Declared by:
<selfhostblocks/modules/services/open-webui.nix> -
shb.open-webui.sso.sharedSecret.result.path -
Path to the file containing the secret generated out of band.
This path will exist after deploying to a target host, it is not available through the nix store.
Type: absolute path
Default:
"/run/secrets/secret"Declared by:
<selfhostblocks/modules/services/open-webui.nix> -
shb.open-webui.sso.sharedSecretForAuthelia -
OIDC shared secret for Authelia. Must be the same as
sharedSecretType: submodule
Declared by:
<selfhostblocks/modules/services/open-webui.nix> -
shb.open-webui.sso.sharedSecretForAuthelia.request -
Request part of the secret contract.
Options set by the requester module enforcing some properties the secret should have.
Type: submodule
Default: { mode = 0400; owner = config.shb.authelia.autheliaUser; group = root; restartUnits = [ ]; }
Declared by:
<selfhostblocks/modules/services/open-webui.nix> -
shb.open-webui.sso.sharedSecretForAuthelia.request.group -
Linux group owning the secret file.
Type: string
Default:
"root"Declared by:
<selfhostblocks/modules/services/open-webui.nix> -
shb.open-webui.sso.sharedSecretForAuthelia.request.mode -
Mode of the secret file.
Type: string
Default:
"0400"Declared by:
<selfhostblocks/modules/services/open-webui.nix> -
shb.open-webui.sso.sharedSecretForAuthelia.request.owner -
Linux user owning the secret file.
Type: string
Default: config.shb.authelia.autheliaUser
Declared by:
<selfhostblocks/modules/services/open-webui.nix> -
shb.open-webui.sso.sharedSecretForAuthelia.request.restartUnits -
Systemd units to restart after the secret is updated.
Type: list of string
Default:
[ ]Declared by:
<selfhostblocks/modules/services/open-webui.nix> -
shb.open-webui.sso.sharedSecretForAuthelia.result -
Result part of the secret contract.
Options set by the provider module that indicates where the secret can be found.
Type: submodule
Default:
{ path = "/run/secrets/secret"; }Declared by:
<selfhostblocks/modules/services/open-webui.nix> -
shb.open-webui.sso.sharedSecretForAuthelia.result.path -
Path to the file containing the secret generated out of band.
This path will exist after deploying to a target host, it is not available through the nix store.
Type: absolute path
Default:
"/run/secrets/secret"Declared by:
<selfhostblocks/modules/services/open-webui.nix> -
shb.open-webui.subdomain -
Subdomain under which Open-WebUI will be served.
Type: string
Default:
"open-webui"Declared by:
<selfhostblocks/modules/services/open-webui.nix> -
shb.paperless.enable -
Whether to enable selfhostblocks.paperless.
Type: boolean
Default:
falseExample:
trueDeclared by:
<selfhostblocks/modules/services/paperless.nix> -
shb.paperless.adminPassword -
Secret containing the superuser (admin) password.
Type: submodule
Declared by:
<selfhostblocks/modules/services/paperless.nix> -
shb.paperless.adminPassword.request -
Request part of the secret contract.
Options set by the requester module enforcing some properties the secret should have.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/services/paperless.nix> -
shb.paperless.adminPassword.request.group -
Linux group owning the secret file.
Type: string
Default:
"paperless"Declared by:
<selfhostblocks/modules/services/paperless.nix> -
shb.paperless.adminPassword.request.mode -
Mode of the secret file.
Type: string
Default:
"0400"Declared by:
<selfhostblocks/modules/services/paperless.nix> -
shb.paperless.adminPassword.request.owner -
Linux user owning the secret file.
Type: string
Default:
"paperless"Declared by:
<selfhostblocks/modules/services/paperless.nix> -
shb.paperless.adminPassword.request.restartUnits -
Systemd units to restart after the secret is updated.
Type: list of string
Default:
[ "paperless-server.service" ]Declared by:
<selfhostblocks/modules/services/paperless.nix> -
shb.paperless.adminPassword.result -
Result part of the secret contract.
Options set by the provider module that indicates where the secret can be found.
Type: submodule
Default:
{ path = "/run/secrets/secret"; }Declared by:
<selfhostblocks/modules/services/paperless.nix> -
shb.paperless.adminPassword.result.path -
Path to the file containing the secret generated out of band.
This path will exist after deploying to a target host, it is not available through the nix store.
Type: absolute path
Default:
"/run/secrets/secret"Declared by:
<selfhostblocks/modules/services/paperless.nix> -
shb.paperless.backup -
Backup configuration for paperless media files and database.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/paperless.nix> -
shb.paperless.backup.request -
Request part of the backup contract.
Options set by the requester module enforcing how to backup files.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/services/paperless.nix> -
shb.paperless.backup.request.excludePatterns -
File patterns to exclude.
Type: list of string
Default:
[ ]Declared by:
<selfhostblocks/modules/services/paperless.nix> -
shb.paperless.backup.request.hooks -
Hooks to run around the backup.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/paperless.nix> -
shb.paperless.backup.request.hooks.afterBackup -
Hooks to run after backup.
Type: list of string
Default:
[ ]Declared by:
<selfhostblocks/modules/services/paperless.nix> -
shb.paperless.backup.request.hooks.beforeBackup -
Hooks to run before backup.
Type: list of string
Default:
[ ]Declared by:
<selfhostblocks/modules/services/paperless.nix> -
shb.paperless.backup.request.sourceDirectories -
Directories to backup.
Type: non-empty (list of string)
Default:
[ "/var/lib/paperless" ]Example:
"/var/lib/vaultwarden"Declared by:
<selfhostblocks/modules/services/paperless.nix> -
shb.paperless.backup.request.user -
Unix user doing the backups.
Type: string
Default:
"paperless"Example:
"vaultwarden"Declared by:
<selfhostblocks/modules/services/paperless.nix> -
shb.paperless.backup.result -
Result part of the backup contract.
Options set by the provider module that indicates the name of the backup and restore scripts.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/services/paperless.nix> -
shb.paperless.backup.result.backupService -
Name of service backing up the database.
This script can be ran manually to backup the database:
$ systemctl start backup.serviceType: string
Default:
"backup.service"Declared by:
<selfhostblocks/modules/services/paperless.nix> -
shb.paperless.backup.result.restoreScript -
Name of script that can restore the database. One can then list snapshots with:
$ restore snapshots <snapshot 1> <metadata> <snapshot 2> <metadata>And restore the database with:
$ restore restore <snapshot 1>Type: string
Default:
"restore"Declared by:
<selfhostblocks/modules/services/paperless.nix> -
shb.paperless.configureTika -
Whether to configure Tika and Gotenberg to process Office and e-mail files with OCR.
Type: boolean
Default:
falseDeclared by:
<selfhostblocks/modules/services/paperless.nix> -
shb.paperless.consumptionDir -
Directory from which new documents are imported.
Type: string
Default:
"${dataDir}/consume"Declared by:
<selfhostblocks/modules/services/paperless.nix> -
shb.paperless.dashboard -
Dashboard contract consumer
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/paperless.nix> -
shb.paperless.dashboard.request -
Request part of the dashboard contract.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/paperless.nix> -
shb.paperless.dashboard.request.externalUrl -
URL at which the service can be accessed.
This URL should go through the reverse proxy.
Type: string
Default:
"https://\${config.shb.paperless.subdomain}.\${config.shb.paperless.domain}"Example:
"https://jellyfin.example.com"Declared by:
<selfhostblocks/modules/services/paperless.nix> -
shb.paperless.dashboard.request.internalUrl -
URL at which the service can be accessed directly.
This URL should bypass the reverse proxy. It can be used for example to ping the service and making sure it is up and running correctly.
Type: null or string
Default:
"http://127.0.0.1:28981"Example:
"http://127.0.0.1:8081"Declared by:
<selfhostblocks/modules/services/paperless.nix> -
shb.paperless.dashboard.result -
Result part of the dashboard contract.
No option is provided here.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/paperless.nix> -
shb.paperless.dataDir -
Directory where paperless will store data files.
Type: string
Default:
"/var/lib/paperless"Declared by:
<selfhostblocks/modules/services/paperless.nix> -
shb.paperless.domain -
Domain under which paperless is served.
<subdomain>.<domain>Type: string
Example:
"example.com"Declared by:
<selfhostblocks/modules/services/paperless.nix> -
shb.paperless.mediaDir -
Directory where paperless will store documents.
Type: string
Default:
"${dataDir}/media"Declared by:
<selfhostblocks/modules/services/paperless.nix> -
shb.paperless.mount -
Mount configuration. This is an output option.
Use it to initialize a block implementing the “mount” contract. For example, with a zfs dataset:
shb.zfs.datasets."paperless" = { poolName = "root"; } // config.shb.paperless.mount;Type: open submodule of anything (read only)
Default:
{ path = "/var/lib/paperless"; }Declared by:
<selfhostblocks/modules/services/paperless.nix> -
shb.paperless.mount.path -
Path to be mounted.
Type: string
Declared by:
<selfhostblocks/modules/services/paperless.nix> -
shb.paperless.port -
Port under which paperless will listen.
Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Default:
28981Declared by:
<selfhostblocks/modules/services/paperless.nix> -
shb.paperless.settings -
Extra paperless config options.
See the documentation for available options.
Note that some settings such as
PAPERLESS_CONSUMER_IGNORE_PATTERNexpect JSON values. Settings declared as lists or attrsets will automatically be serialised into JSON strings for your convenience.Type: open submodule of attribute set of (boolean or floating point number or signed integer or string or absolute path or package or list of (boolean or floating point number or signed integer or string or absolute path or package) or attribute set of (boolean or floating point number or signed integer or string or absolute path or package))
Default:
{ }Example:
{ PAPERLESS_CONSUMER_IGNORE_PATTERN = [ ".DS_STORE/*" "desktop.ini" ]; PAPERLESS_OCR_LANGUAGE = "deu+eng"; PAPERLESS_OCR_USER_ARGS = { optimize = 1; pdfa_image_compression = "lossless"; }; }Declared by:
<selfhostblocks/modules/services/paperless.nix> -
shb.paperless.ssl -
Path to SSL files
Type: null or (open submodule of anything)
Default:
nullDeclared by:
<selfhostblocks/modules/services/paperless.nix> -
shb.paperless.ssl.paths -
Paths where the files for the certificate will be located.
This option is the contract output of the
shb.certs.certsSSL block.Type: open submodule of anything
Declared by:
<selfhostblocks/modules/services/paperless.nix> -
shb.paperless.ssl.paths.cert -
Path to the cert file.
Type: absolute path
Declared by:
<selfhostblocks/modules/services/paperless.nix> -
shb.paperless.ssl.paths.key -
Path to the key file.
Type: absolute path
Declared by:
<selfhostblocks/modules/services/paperless.nix> -
shb.paperless.ssl.systemdService -
Systemd oneshot service used to generate the certificate. Ends with the
.servicesuffix.Use this if downstream services must wait for the certificates to be generated before starting.
Type: string
Example:
"cert-generator.service"Declared by:
<selfhostblocks/modules/services/paperless.nix> -
shb.paperless.sso -
Setup SSO integration.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/paperless.nix> -
shb.paperless.sso.enable -
Whether to enable SSO integration…
Type: boolean
Default:
falseExample:
trueDeclared by:
<selfhostblocks/modules/services/paperless.nix> -
shb.paperless.sso.adminUserGroup -
OIDC admin group
Type: string
Default:
"paperless_admin"Declared by:
<selfhostblocks/modules/services/paperless.nix> -
shb.paperless.sso.authorization_policy -
Require one factor (password) or two factor (device) authentication.
Type: one of “one_factor”, “two_factor”
Default:
"one_factor"Declared by:
<selfhostblocks/modules/services/paperless.nix> -
shb.paperless.sso.autoLaunch -
Automatically redirect to SSO provider.
Type: boolean
Default:
trueDeclared by:
<selfhostblocks/modules/services/paperless.nix> -
shb.paperless.sso.autoRegister -
Automatically register new users from SSO provider.
Type: boolean
Default:
trueDeclared by:
<selfhostblocks/modules/services/paperless.nix> -
shb.paperless.sso.clientID -
Client ID for the OIDC endpoint.
Type: string
Default:
"paperless"Declared by:
<selfhostblocks/modules/services/paperless.nix> -
shb.paperless.sso.endpoint -
OIDC endpoint for SSO.
Type: string
Example:
"https://authelia.example.com"Declared by:
<selfhostblocks/modules/services/paperless.nix> -
shb.paperless.sso.passwordLogin -
Enable password login.
Type: boolean
Default:
trueDeclared by:
<selfhostblocks/modules/services/paperless.nix> -
shb.paperless.sso.port -
If given, adds a port to the endpoint.
Type: null or 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Default:
nullDeclared by:
<selfhostblocks/modules/services/paperless.nix> -
shb.paperless.sso.provider -
OIDC provider name, used for display.
Type: one of “Authelia”, “Keycloak”, “Generic”
Default:
"Authelia"Declared by:
<selfhostblocks/modules/services/paperless.nix> -
shb.paperless.sso.sharedSecret -
OIDC shared secret for paperless.
Type: submodule
Declared by:
<selfhostblocks/modules/services/paperless.nix> -
shb.paperless.sso.sharedSecret.request -
Request part of the secret contract.
Options set by the requester module enforcing some properties the secret should have.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/services/paperless.nix> -
shb.paperless.sso.sharedSecret.request.group -
Linux group owning the secret file.
Type: string
Default:
"paperless"Declared by:
<selfhostblocks/modules/services/paperless.nix> -
shb.paperless.sso.sharedSecret.request.mode -
Mode of the secret file.
Type: string
Default:
"0400"Declared by:
<selfhostblocks/modules/services/paperless.nix> -
shb.paperless.sso.sharedSecret.request.owner -
Linux user owning the secret file.
Type: string
Default:
"paperless"Declared by:
<selfhostblocks/modules/services/paperless.nix> -
shb.paperless.sso.sharedSecret.request.restartUnits -
Systemd units to restart after the secret is updated.
Type: list of string
Default:
[ "paperless-server.service" ]Declared by:
<selfhostblocks/modules/services/paperless.nix> -
shb.paperless.sso.sharedSecret.result -
Result part of the secret contract.
Options set by the provider module that indicates where the secret can be found.
Type: submodule
Default:
{ path = "/run/secrets/secret"; }Declared by:
<selfhostblocks/modules/services/paperless.nix> -
shb.paperless.sso.sharedSecret.result.path -
Path to the file containing the secret generated out of band.
This path will exist after deploying to a target host, it is not available through the nix store.
Type: absolute path
Default:
"/run/secrets/secret"Declared by:
<selfhostblocks/modules/services/paperless.nix> -
shb.paperless.sso.sharedSecretForAuthelia -
OIDC shared secret for Authelia. Content must be the same as
sharedSecretoption.Type: submodule
Default:
nullDeclared by:
<selfhostblocks/modules/services/paperless.nix> -
shb.paperless.sso.sharedSecretForAuthelia.request -
Request part of the secret contract.
Options set by the requester module enforcing some properties the secret should have.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/services/paperless.nix> -
shb.paperless.sso.sharedSecretForAuthelia.request.group -
Linux group owning the secret file.
Type: string
Default:
"root"Declared by:
<selfhostblocks/modules/services/paperless.nix> -
shb.paperless.sso.sharedSecretForAuthelia.request.mode -
Mode of the secret file.
Type: string
Default:
"0400"Declared by:
<selfhostblocks/modules/services/paperless.nix> -
shb.paperless.sso.sharedSecretForAuthelia.request.owner -
Linux user owning the secret file.
Type: string
Default:
"authelia"Declared by:
<selfhostblocks/modules/services/paperless.nix> -
shb.paperless.sso.sharedSecretForAuthelia.request.restartUnits -
Systemd units to restart after the secret is updated.
Type: list of string
Default:
[ ]Declared by:
<selfhostblocks/modules/services/paperless.nix> -
shb.paperless.sso.sharedSecretForAuthelia.result -
Result part of the secret contract.
Options set by the provider module that indicates where the secret can be found.
Type: submodule
Default:
{ path = "/run/secrets/secret"; }Declared by:
<selfhostblocks/modules/services/paperless.nix> -
shb.paperless.sso.sharedSecretForAuthelia.result.path -
Path to the file containing the secret generated out of band.
This path will exist after deploying to a target host, it is not available through the nix store.
Type: absolute path
Default:
"/run/secrets/secret"Declared by:
<selfhostblocks/modules/services/paperless.nix> -
shb.paperless.sso.userGroup -
OIDC user group
Type: string
Default:
"paperless_user"Declared by:
<selfhostblocks/modules/services/paperless.nix> -
shb.paperless.subdomain -
Subdomain under which paperless will be served.
<subdomain>.<domain>Type: string
Example:
"photos"Declared by:
<selfhostblocks/modules/services/paperless.nix> -
shb.pinchflat.enable -
Whether to enable the Pinchflat service…
Type: boolean
Default:
falseExample:
trueDeclared by:
<selfhostblocks/modules/services/pinchflat.nix> -
shb.pinchflat.backup -
Backup media directory
shb.mediaDir.Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/pinchflat.nix> -
shb.pinchflat.backup.request -
Request part of the backup contract.
Options set by the requester module enforcing how to backup files.
Type: submodule
Default: { user = pinchflat; sourceDirectories = [ config.shb.pinchflat.mediaDir ]; excludePatterns = [ ]; hooks.beforeBackup = [ ]; hooks.afterBackup = [ ]; };
Declared by:
<selfhostblocks/modules/services/pinchflat.nix> -
shb.pinchflat.backup.request.excludePatterns -
File patterns to exclude.
Type: list of string
Default:
[ ]Declared by:
<selfhostblocks/modules/services/pinchflat.nix> -
shb.pinchflat.backup.request.hooks -
Hooks to run around the backup.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/pinchflat.nix> -
shb.pinchflat.backup.request.hooks.afterBackup -
Hooks to run after backup.
Type: list of string
Default:
[ ]Declared by:
<selfhostblocks/modules/services/pinchflat.nix> -
shb.pinchflat.backup.request.hooks.beforeBackup -
Hooks to run before backup.
Type: list of string
Default:
[ ]Declared by:
<selfhostblocks/modules/services/pinchflat.nix> -
shb.pinchflat.backup.request.sourceDirectories -
Directories to backup.
Type: non-empty (list of string)
Default: [ config.shb.pinchflat.mediaDir ]
Example:
"/var/lib/vaultwarden"Declared by:
<selfhostblocks/modules/services/pinchflat.nix> -
shb.pinchflat.backup.request.user -
Unix user doing the backups.
Type: string
Default:
"pinchflat"Example:
"vaultwarden"Declared by:
<selfhostblocks/modules/services/pinchflat.nix> -
shb.pinchflat.backup.result -
Result part of the backup contract.
Options set by the provider module that indicates the name of the backup and restore scripts.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/services/pinchflat.nix> -
shb.pinchflat.backup.result.backupService -
Name of service backing up the database.
This script can be ran manually to backup the database:
$ systemctl start backup.serviceType: string
Default:
"backup.service"Declared by:
<selfhostblocks/modules/services/pinchflat.nix> -
shb.pinchflat.backup.result.restoreScript -
Name of script that can restore the database. One can then list snapshots with:
$ restore snapshots <snapshot 1> <metadata> <snapshot 2> <metadata>And restore the database with:
$ restore restore <snapshot 1>Type: string
Default:
"restore"Declared by:
<selfhostblocks/modules/services/pinchflat.nix> -
shb.pinchflat.dashboard -
Dashboard contract consumer
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/pinchflat.nix> -
shb.pinchflat.dashboard.request -
Request part of the dashboard contract.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/pinchflat.nix> -
shb.pinchflat.dashboard.request.externalUrl -
URL at which the service can be accessed.
This URL should go through the reverse proxy.
Type: string
Default:
"https://\${config.shb.pinchflat.subdomain}.\${config.shb.pinchflat.domain}"Example:
"https://jellyfin.example.com"Declared by:
<selfhostblocks/modules/services/pinchflat.nix> -
shb.pinchflat.dashboard.request.internalUrl -
URL at which the service can be accessed directly.
This URL should bypass the reverse proxy. It can be used for example to ping the service and making sure it is up and running correctly.
Type: null or string
Default:
"http://127.0.0.1:8945"Example:
"http://127.0.0.1:8081"Declared by:
<selfhostblocks/modules/services/pinchflat.nix> -
shb.pinchflat.dashboard.result -
Result part of the dashboard contract.
No option is provided here.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/pinchflat.nix> -
shb.pinchflat.domain -
domain under which Pinchflat will be served.
Type: string
Example:
"mydomain.com"Declared by:
<selfhostblocks/modules/services/pinchflat.nix> -
shb.pinchflat.ldap -
Setup LDAP integration.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/pinchflat.nix> -
shb.pinchflat.ldap.enable -
Whether to enable LDAP integration…
Type: boolean
Default:
falseExample:
trueDeclared by:
<selfhostblocks/modules/services/pinchflat.nix> -
shb.pinchflat.ldap.userGroup -
Group users must belong to be able to login.
Type: string
Default:
"pinchflat_user"Declared by:
<selfhostblocks/modules/services/pinchflat.nix> -
shb.pinchflat.mediaDir -
Path where videos are stored.
Type: string
Declared by:
<selfhostblocks/modules/services/pinchflat.nix> -
shb.pinchflat.port -
Port Pinchflat listens to incoming requests.
Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Default:
8945Declared by:
<selfhostblocks/modules/services/pinchflat.nix> -
shb.pinchflat.secretKeyBase -
Used to sign/encrypt cookies and other secrets.
Make sure the secret is at least 64 characters long.
Type: submodule
Declared by:
<selfhostblocks/modules/services/pinchflat.nix> -
shb.pinchflat.secretKeyBase.request -
Request part of the secret contract.
Options set by the requester module enforcing some properties the secret should have.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/services/pinchflat.nix> -
shb.pinchflat.secretKeyBase.request.group -
Linux group owning the secret file.
Type: string
Default:
"root"Declared by:
<selfhostblocks/modules/services/pinchflat.nix> -
shb.pinchflat.secretKeyBase.request.mode -
Mode of the secret file.
Type: string
Default:
"0400"Declared by:
<selfhostblocks/modules/services/pinchflat.nix> -
shb.pinchflat.secretKeyBase.request.owner -
Linux user owning the secret file.
Type: string
Default:
"root"Declared by:
<selfhostblocks/modules/services/pinchflat.nix> -
shb.pinchflat.secretKeyBase.request.restartUnits -
Systemd units to restart after the secret is updated.
Type: list of string
Default:
[ "pinchflat.service" ]Declared by:
<selfhostblocks/modules/services/pinchflat.nix> -
shb.pinchflat.secretKeyBase.result -
Result part of the secret contract.
Options set by the provider module that indicates where the secret can be found.
Type: submodule
Default:
{ path = "/run/secrets/secret"; }Declared by:
<selfhostblocks/modules/services/pinchflat.nix> -
shb.pinchflat.secretKeyBase.result.path -
Path to the file containing the secret generated out of band.
This path will exist after deploying to a target host, it is not available through the nix store.
Type: absolute path
Default:
"/run/secrets/secret"Declared by:
<selfhostblocks/modules/services/pinchflat.nix> -
shb.pinchflat.ssl -
Path to SSL files
Type: null or (open submodule of anything)
Default:
nullDeclared by:
<selfhostblocks/modules/services/pinchflat.nix> -
shb.pinchflat.ssl.paths -
Paths where the files for the certificate will be located.
This option is the contract output of the
shb.certs.certsSSL block.Type: open submodule of anything
Declared by:
<selfhostblocks/modules/services/pinchflat.nix> -
shb.pinchflat.ssl.paths.cert -
Path to the cert file.
Type: absolute path
Declared by:
<selfhostblocks/modules/services/pinchflat.nix> -
shb.pinchflat.ssl.paths.key -
Path to the key file.
Type: absolute path
Declared by:
<selfhostblocks/modules/services/pinchflat.nix> -
shb.pinchflat.ssl.systemdService -
Systemd oneshot service used to generate the certificate. Ends with the
.servicesuffix.Use this if downstream services must wait for the certificates to be generated before starting.
Type: string
Example:
"cert-generator.service"Declared by:
<selfhostblocks/modules/services/pinchflat.nix> -
shb.pinchflat.sso -
Setup SSO integration.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/pinchflat.nix> -
shb.pinchflat.sso.enable -
Whether to enable SSO integration…
Type: boolean
Default:
falseExample:
trueDeclared by:
<selfhostblocks/modules/services/pinchflat.nix> -
shb.pinchflat.sso.authEndpoint -
Endpoint to the SSO provider.
Type: string
Example:
"https://authelia.example.com"Declared by:
<selfhostblocks/modules/services/pinchflat.nix> -
shb.pinchflat.sso.authorization_policy -
Require one factor (password) or two factor (device) authentication.
Type: one of “one_factor”, “two_factor”
Default:
"one_factor"Declared by:
<selfhostblocks/modules/services/pinchflat.nix> -
shb.pinchflat.subdomain -
Subdomain under which Pinchflat will be served.
Type: string
Default:
"pinchflat"Declared by:
<selfhostblocks/modules/services/pinchflat.nix> -
shb.pinchflat.timeZone -
Timezone of this instance.
Type: string or (submodule)
Example:
"America/Los_Angeles"Declared by:
<selfhostblocks/modules/services/pinchflat.nix> -
shb.postgresql.enableTCPIP -
Enable TCP/IP connection on given port.
Type: boolean
Default:
falseDeclared by:
<selfhostblocks/modules/blocks/postgresql.nix> -
shb.postgresql.databasebackup -
Backup configuration.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/blocks/postgresql.nix> -
shb.postgresql.databasebackup.request -
Request part of the database backup contract.
Options set by the requester module enforcing how to backup files.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/blocks/postgresql.nix> -
shb.postgresql.databasebackup.request.backupCmd -
Command that produces the database dump on stdout.
Type: string
Default:
'' ''${pkgs.postgresql}/bin/pg_dumpall --clean --if-exists | ''${pkgs.gzip}/bin/gzip --rsyncable ''Example:
${pkgs.postgresql}/bin/pg_dumpall | ${pkgs.gzip}/bin/gzip --rsyncableDeclared by:
<selfhostblocks/modules/blocks/postgresql.nix> -
shb.postgresql.databasebackup.request.backupName -
Name of the backup in the repository.
Type: string
Default:
"postgres.sql"Example:
"postgresql.sql"Declared by:
<selfhostblocks/modules/blocks/postgresql.nix> -
shb.postgresql.databasebackup.request.restoreCmd -
Command that reads the database dump on stdin and restores the database.
Type: string
Default:
'' ''${pkgs.gzip}/bin/gunzip | sudo -u postgres ''${pkgs.postgresql}/bin/psql ''Example:
${pkgs.gzip}/bin/gunzip | ${pkgs.postgresql}/bin/psql postgresDeclared by:
<selfhostblocks/modules/blocks/postgresql.nix> -
shb.postgresql.databasebackup.request.user -
Unix user doing the backups.
This should be an admin user having access to all databases.
Type: string
Default:
"postgres"Example:
"postgres"Declared by:
<selfhostblocks/modules/blocks/postgresql.nix> -
shb.postgresql.databasebackup.result -
Result part of the database backup contract.
Options set by the provider module that indicates the name of the backup and restore scripts.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/blocks/postgresql.nix> -
shb.postgresql.databasebackup.result.backupService -
Name of service backing up the database.
This script can be ran manually to backup the database:
$ systemctl start backup.serviceType: string
Default:
"backup.service"Declared by:
<selfhostblocks/modules/blocks/postgresql.nix> -
shb.postgresql.databasebackup.result.restoreScript -
Name of script that can restore the database. One can then list snapshots with:
$ restore snapshotsAnd restore the database with:
$ restore restore latestType: string
Default:
"restore"Declared by:
<selfhostblocks/modules/blocks/postgresql.nix> -
shb.postgresql.debug -
Enable debugging options.
Currently enables shared_preload_libraries = “auto_explain, pg_stat_statements”
See https://www.postgresql.org/docs/current/pgstatstatements.html
Type: boolean
Default:
falseDeclared by:
<selfhostblocks/modules/blocks/postgresql.nix> -
shb.postgresql.ensures -
List of username, database and/or passwords that should be created.
Type: list of (submodule)
Default:
[ ]Declared by:
<selfhostblocks/modules/blocks/postgresql.nix> -
shb.postgresql.ensures.*.database -
Postgres database.
Type: string
Declared by:
<selfhostblocks/modules/blocks/postgresql.nix> -
shb.postgresql.ensures.*.passwordFile -
Optional password file for the postgres user. If not given, only peer auth is accepted for this user, otherwise password auth is allowed.
Type: null or string
Default:
nullExample:
"/run/secrets/postgresql/password"Declared by:
<selfhostblocks/modules/blocks/postgresql.nix> -
shb.postgresql.ensures.*.username -
Postgres user name.
Type: string
Declared by:
<selfhostblocks/modules/blocks/postgresql.nix> -
shb.restic.enableDashboard -
Whether to enable the Backups SHB dashboard.
Type: boolean
Default:
trueExample:
trueDeclared by:
<selfhostblocks/modules/blocks/restic.nix> -
shb.restic.databases -
Databases to backup following the database backup contract.
Type: attribute set of (submodule)
Default:
{ }Declared by:
<selfhostblocks/modules/blocks/restic.nix> -
shb.restic.databases.<name>.request -
Request part of the database backup contract.
Options set by the requester module enforcing how to backup files.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/blocks/restic.nix> -
shb.restic.databases.<name>.request.backupCmd -
Command that produces the database dump on stdout.
Type: string
Default:
""Example:
${pkgs.postgresql}/bin/pg_dumpall | ${pkgs.gzip}/bin/gzip --rsyncableDeclared by:
<selfhostblocks/modules/blocks/restic.nix> -
shb.restic.databases.<name>.request.backupName -
Name of the backup in the repository.
Type: string
Default:
"dump"Example:
"postgresql.sql"Declared by:
<selfhostblocks/modules/blocks/restic.nix> -
shb.restic.databases.<name>.request.restoreCmd -
Command that reads the database dump on stdin and restores the database.
Type: string
Default:
""Example:
${pkgs.gzip}/bin/gunzip | ${pkgs.postgresql}/bin/psql postgresDeclared by:
<selfhostblocks/modules/blocks/restic.nix> -
shb.restic.databases.<name>.request.user -
Unix user doing the backups.
This should be an admin user having access to all databases.
Type: string
Default:
"root"Example:
"postgres"Declared by:
<selfhostblocks/modules/blocks/restic.nix> -
shb.restic.databases.<name>.result -
Result part of the database backup contract.
Options set by the provider module that indicates the name of the backup and restore scripts.
Type: submodule
Default: { restoreScript = restic-backups-<name>_path_to_repository; backupService = restic-backups-<name>_path_to_repository.service; }
Declared by:
<selfhostblocks/modules/blocks/restic.nix> -
shb.restic.databases.<name>.result.backupService -
Name of service backing up the database.
This script can be ran manually to backup the database:
$ systemctl start restic-backups-<name>_path_to_repository.serviceType: string
Default: restic-backups-<name>_path_to_repository.service
Declared by:
<selfhostblocks/modules/blocks/restic.nix> -
shb.restic.databases.<name>.result.restoreScript -
Name of script that can restore the database. One can then list snapshots with:
$ restic-backups-<name>_path_to_repository snapshotsAnd restore the database with:
$ restic-backups-<name>_path_to_repository restore latestType: string
Default: restic-backups-<name>_path_to_repository
Declared by:
<selfhostblocks/modules/blocks/restic.nix> -
shb.restic.databases.<name>.settings -
Settings specific to the Restic provider.
Type: submodule
Declared by:
<selfhostblocks/modules/blocks/restic.nix> -
shb.restic.databases.<name>.settings.enable -
Whether to enable SelfHostBlocks’ Restic block
A disabled instance will not backup data anymore but still provides the helper tool to restore snapshots .
Type: boolean
Default:
falseExample:
trueDeclared by:
<selfhostblocks/modules/blocks/restic.nix> -
shb.restic.databases.<name>.settings.limitDownloadKiBs -
Limit download bandwidth to the given KiB/s amount.
Type: null or signed integer
Default:
nullExample:
8000Declared by:
<selfhostblocks/modules/blocks/restic.nix> -
shb.restic.databases.<name>.settings.limitUploadKiBs -
Limit upload bandwidth to the given KiB/s amount.
Type: null or signed integer
Default:
nullExample:
8000Declared by:
<selfhostblocks/modules/blocks/restic.nix> -
shb.restic.databases.<name>.settings.passphrase -
Encryption key for the backup repository.
Type: submodule
Declared by:
<selfhostblocks/modules/blocks/restic.nix> -
shb.restic.databases.<name>.settings.passphrase.request -
Request part of the secret contract.
Options set by the requester module enforcing some properties the secret should have.
Type: submodule
Default: { mode = 0400; owner = shb.restic.databases.<name>.request.user; group = root; restartUnits = [ shb.restic.databases.<name>.settings.repository ]; }
Declared by:
<selfhostblocks/modules/blocks/restic.nix> -
shb.restic.databases.<name>.settings.passphrase.request.group -
Linux group owning the secret file.
Type: string
Default:
"root"Declared by:
<selfhostblocks/modules/blocks/restic.nix> -
shb.restic.databases.<name>.settings.passphrase.request.mode -
Mode of the secret file.
Type: string
Default:
"0400"Declared by:
<selfhostblocks/modules/blocks/restic.nix> -
shb.restic.databases.<name>.settings.passphrase.request.owner -
Linux user owning the secret file.
Type: string
Default: shb.restic.databases.<name>.request.user
Declared by:
<selfhostblocks/modules/blocks/restic.nix> -
shb.restic.databases.<name>.settings.passphrase.request.restartUnits -
Systemd units to restart after the secret is updated.
Type: list of string
Default: [ shb.restic.databases.<name>.settings.repository ]
Declared by:
<selfhostblocks/modules/blocks/restic.nix> -
shb.restic.databases.<name>.settings.passphrase.result -
Result part of the secret contract.
Options set by the provider module that indicates where the secret can be found.
Type: submodule
Default:
{ path = "/run/secrets/secret"; }Declared by:
<selfhostblocks/modules/blocks/restic.nix> -
shb.restic.databases.<name>.settings.passphrase.result.path -
Path to the file containing the secret generated out of band.
This path will exist after deploying to a target host, it is not available through the nix store.
Type: absolute path
Default:
"/run/secrets/secret"Declared by:
<selfhostblocks/modules/blocks/restic.nix> -
shb.restic.databases.<name>.settings.repository -
Repositories to back this instance to.
Type: submodule
Declared by:
<selfhostblocks/modules/blocks/restic.nix> -
shb.restic.databases.<name>.settings.repository.path -
Repository location
Type: string
Declared by:
<selfhostblocks/modules/blocks/restic.nix> -
shb.restic.databases.<name>.settings.repository.secrets -
Secrets needed to access the repository where the backups will be stored.
See s3 config for an example and list for the list of all secrets.
Type: attribute set of (submodule)
Default:
{ }Example:
{ AWS_ACCESS_KEY_ID.source = <path/to/secret>; AWS_SECRET_ACCESS_KEY.source = <path/to/secret>; }Declared by:
<selfhostblocks/modules/blocks/restic.nix> -
shb.restic.databases.<name>.settings.repository.secrets.<name>.source -
File containing the value.
Type: absolute path
Declared by:
<selfhostblocks/modules/blocks/restic.nix> -
shb.restic.databases.<name>.settings.repository.secrets.<name>.transform -
An optional function to transform the secret.
Type: raw value
Default:
nullExample:
v: "prefix-$${v}-suffix"Declared by:
<selfhostblocks/modules/blocks/restic.nix> -
shb.restic.databases.<name>.settings.repository.timerConfig -
When to run the backup. See systemd.timer(5) for details.
Type: attribute set of (systemd option)
Default:
{ OnCalendar = "daily"; Persistent = true; }Example:
{ OnCalendar = "00:05"; Persistent = true; RandomizedDelaySec = "5h"; }Declared by:
<selfhostblocks/modules/blocks/restic.nix> -
shb.restic.databases.<name>.settings.retention -
For how long to keep backup files.
Type: attribute set of (signed integer or non-empty string)
Default:
{ keep_daily = 7; keep_hourly = 24; keep_monthly = 6; keep_weekly = 4; keep_within = "1d"; }Declared by:
<selfhostblocks/modules/blocks/restic.nix> -
shb.restic.instances -
Files to backup following the backup contract.
Type: attribute set of (submodule)
Default:
{ }Declared by:
<selfhostblocks/modules/blocks/restic.nix> -
shb.restic.instances.<name>.request -
Request part of the backup contract.
Options set by the requester module enforcing how to backup files.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/blocks/restic.nix> -
shb.restic.instances.<name>.request.excludePatterns -
File patterns to exclude.
Type: list of string
Default:
[ ]Declared by:
<selfhostblocks/modules/blocks/restic.nix> -
shb.restic.instances.<name>.request.hooks -
Hooks to run around the backup.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/blocks/restic.nix> -
shb.restic.instances.<name>.request.hooks.afterBackup -
Hooks to run after backup.
Type: list of string
Default:
[ ]Declared by:
<selfhostblocks/modules/blocks/restic.nix> -
shb.restic.instances.<name>.request.hooks.beforeBackup -
Hooks to run before backup.
Type: list of string
Default:
[ ]Declared by:
<selfhostblocks/modules/blocks/restic.nix> -
shb.restic.instances.<name>.request.sourceDirectories -
Directories to backup.
Type: non-empty (list of string)
Default:
[ "/var/lib/example" ]Example:
"/var/lib/vaultwarden"Declared by:
<selfhostblocks/modules/blocks/restic.nix> -
shb.restic.instances.<name>.request.user -
Unix user doing the backups.
Type: string
Default:
""Example:
"vaultwarden"Declared by:
<selfhostblocks/modules/blocks/restic.nix> -
shb.restic.instances.<name>.result -
Result part of the backup contract.
Options set by the provider module that indicates the name of the backup and restore scripts.
Type: submodule
Default: { restoreScript = restic-backups-<name>_path_to_repository; backupService = restic-backups-<name>_path_to_repository.service; }
Declared by:
<selfhostblocks/modules/blocks/restic.nix> -
shb.restic.instances.<name>.result.backupService -
Name of service backing up the database.
This script can be ran manually to backup the database:
$ systemctl start restic-backups-<name>_path_to_repository.serviceType: string
Default: restic-backups-<name>_path_to_repository.service
Declared by:
<selfhostblocks/modules/blocks/restic.nix> -
shb.restic.instances.<name>.result.restoreScript -
Name of script that can restore the database. One can then list snapshots with:
$ restic-backups-<name>_path_to_repository snapshots <snapshot 1> <metadata> <snapshot 2> <metadata>And restore the database with:
$ restic-backups-<name>_path_to_repository restore <snapshot 1>Type: string
Default: restic-backups-<name>_path_to_repository
Declared by:
<selfhostblocks/modules/blocks/restic.nix> -
shb.restic.instances.<name>.settings -
Settings specific to the Restic provider.
Type: submodule
Declared by:
<selfhostblocks/modules/blocks/restic.nix> -
shb.restic.instances.<name>.settings.enable -
Whether to enable SelfHostBlocks’ Restic block
A disabled instance will not backup data anymore but still provides the helper tool to restore snapshots .
Type: boolean
Default:
falseExample:
trueDeclared by:
<selfhostblocks/modules/blocks/restic.nix> -
shb.restic.instances.<name>.settings.limitDownloadKiBs -
Limit download bandwidth to the given KiB/s amount.
Type: null or signed integer
Default:
nullExample:
8000Declared by:
<selfhostblocks/modules/blocks/restic.nix> -
shb.restic.instances.<name>.settings.limitUploadKiBs -
Limit upload bandwidth to the given KiB/s amount.
Type: null or signed integer
Default:
nullExample:
8000Declared by:
<selfhostblocks/modules/blocks/restic.nix> -
shb.restic.instances.<name>.settings.passphrase -
Encryption key for the backup repository.
Type: submodule
Declared by:
<selfhostblocks/modules/blocks/restic.nix> -
shb.restic.instances.<name>.settings.passphrase.request -
Request part of the secret contract.
Options set by the requester module enforcing some properties the secret should have.
Type: submodule
Default: { mode = 0400; owner = shb.restic.instances.<name>.request.user; group = root; restartUnits = [ shb.restic.instances.<name>.settings.repository ]; }
Declared by:
<selfhostblocks/modules/blocks/restic.nix> -
shb.restic.instances.<name>.settings.passphrase.request.group -
Linux group owning the secret file.
Type: string
Default:
"root"Declared by:
<selfhostblocks/modules/blocks/restic.nix> -
shb.restic.instances.<name>.settings.passphrase.request.mode -
Mode of the secret file.
Type: string
Default:
"0400"Declared by:
<selfhostblocks/modules/blocks/restic.nix> -
shb.restic.instances.<name>.settings.passphrase.request.owner -
Linux user owning the secret file.
Type: string
Default: shb.restic.instances.<name>.request.user
Declared by:
<selfhostblocks/modules/blocks/restic.nix> -
shb.restic.instances.<name>.settings.passphrase.request.restartUnits -
Systemd units to restart after the secret is updated.
Type: list of string
Default: [ shb.restic.instances.<name>.settings.repository ]
Declared by:
<selfhostblocks/modules/blocks/restic.nix> -
shb.restic.instances.<name>.settings.passphrase.result -
Result part of the secret contract.
Options set by the provider module that indicates where the secret can be found.
Type: submodule
Default:
{ path = "/run/secrets/secret"; }Declared by:
<selfhostblocks/modules/blocks/restic.nix> -
shb.restic.instances.<name>.settings.passphrase.result.path -
Path to the file containing the secret generated out of band.
This path will exist after deploying to a target host, it is not available through the nix store.
Type: absolute path
Default:
"/run/secrets/secret"Declared by:
<selfhostblocks/modules/blocks/restic.nix> -
shb.restic.instances.<name>.settings.repository -
Repositories to back this instance to.
Type: submodule
Declared by:
<selfhostblocks/modules/blocks/restic.nix> -
shb.restic.instances.<name>.settings.repository.path -
Repository location
Type: string
Declared by:
<selfhostblocks/modules/blocks/restic.nix> -
shb.restic.instances.<name>.settings.repository.secrets -
Secrets needed to access the repository where the backups will be stored.
See s3 config for an example and list for the list of all secrets.
Type: attribute set of (submodule)
Default:
{ }Example:
{ AWS_ACCESS_KEY_ID.source = <path/to/secret>; AWS_SECRET_ACCESS_KEY.source = <path/to/secret>; }Declared by:
<selfhostblocks/modules/blocks/restic.nix> -
shb.restic.instances.<name>.settings.repository.secrets.<name>.source -
File containing the value.
Type: absolute path
Declared by:
<selfhostblocks/modules/blocks/restic.nix> -
shb.restic.instances.<name>.settings.repository.secrets.<name>.transform -
An optional function to transform the secret.
Type: raw value
Default:
nullExample:
v: "prefix-$${v}-suffix"Declared by:
<selfhostblocks/modules/blocks/restic.nix> -
shb.restic.instances.<name>.settings.repository.timerConfig -
When to run the backup. See systemd.timer(5) for details.
Type: attribute set of (systemd option)
Default:
{ OnCalendar = "daily"; Persistent = true; }Example:
{ OnCalendar = "00:05"; Persistent = true; RandomizedDelaySec = "5h"; }Declared by:
<selfhostblocks/modules/blocks/restic.nix> -
shb.restic.instances.<name>.settings.retention -
For how long to keep backup files.
Type: attribute set of (signed integer or non-empty string)
Default:
{ keep_daily = 7; keep_hourly = 24; keep_monthly = 6; keep_weekly = 4; keep_within = "1d"; }Declared by:
<selfhostblocks/modules/blocks/restic.nix> -
shb.restic.performance -
Reduce performance impact of backup jobs.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/blocks/restic.nix> -
shb.restic.performance.ioPriority -
ionice priority, defaults to 7 for lowest priority IO. Only used for
restic backup,restic forgetandrestic checkcommands.Type: null or integer between 0 and 7 (both inclusive)
Default:
7Declared by:
<selfhostblocks/modules/blocks/restic.nix> -
shb.restic.performance.ioSchedulingClass -
ionice scheduling class, defaults to best-effort IO. Only used for
restic backup,restic forgetandrestic checkcommands.Type: one of “idle”, “best-effort”, “realtime”
Default:
"best-effort"Declared by:
<selfhostblocks/modules/blocks/restic.nix> -
shb.restic.performance.niceness -
nice priority adjustment, defaults to 15 for ~20% CPU time of normal-priority process
Type: integer between -20 and 19 (both inclusive)
Default:
15Declared by:
<selfhostblocks/modules/blocks/restic.nix> -
shb.sanoid.backup -
Sanoid prodiver for file backup contract
Type: attribute set of (submodule)
Default:
{ }Declared by:
<selfhostblocks/modules/blocks/sanoid.nix> -
shb.sanoid.backup.<name>.request -
Request part of the backup contract.
Options set by the requester module enforcing how to backup files.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/blocks/sanoid.nix> -
shb.sanoid.backup.<name>.request.excludePatterns -
File patterns to exclude.
Type: list of string
Default:
[ ]Declared by:
<selfhostblocks/modules/blocks/sanoid.nix> -
shb.sanoid.backup.<name>.request.hooks -
Hooks to run around the backup.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/blocks/sanoid.nix> -
shb.sanoid.backup.<name>.request.hooks.afterBackup -
Hooks to run after backup.
Type: list of string
Default:
[ ]Declared by:
<selfhostblocks/modules/blocks/sanoid.nix> -
shb.sanoid.backup.<name>.request.hooks.beforeBackup -
Hooks to run before backup.
Type: list of string
Default:
[ ]Declared by:
<selfhostblocks/modules/blocks/sanoid.nix> -
shb.sanoid.backup.<name>.request.sourceDirectories -
Directories to backup.
Type: non-empty (list of string)
Default:
[ "/var/lib/example" ]Example:
"/var/lib/vaultwarden"Declared by:
<selfhostblocks/modules/blocks/sanoid.nix> -
shb.sanoid.backup.<name>.request.user -
Unix user doing the backups.
Type: string
Default:
""Example:
"vaultwarden"Declared by:
<selfhostblocks/modules/blocks/sanoid.nix> -
shb.sanoid.backup.<name>.result -
Result part of the backup contract.
Options set by the provider module that indicates the name of the backup and restore scripts.
Type: submodule
Default: { restoreScript = sanoid-\x3cname\x3e-restore; backupService = sanoid.service; }
Declared by:
<selfhostblocks/modules/blocks/sanoid.nix> -
shb.sanoid.backup.<name>.result.backupService -
Name of service backing up the database.
This script can be ran manually to backup the database:
$ systemctl start sanoid.serviceType: string
Default: sanoid.service
Declared by:
<selfhostblocks/modules/blocks/sanoid.nix> -
shb.sanoid.backup.<name>.result.restoreScript -
Name of script that can restore the database. One can then list snapshots with:
$ sanoid-\x3cname\x3e-restore snapshots <snapshot 1> <metadata> <snapshot 2> <metadata>And restore the database with:
$ sanoid-\x3cname\x3e-restore restore <snapshot 1>Type: string
Default: sanoid-\x3cname\x3e-restore
Declared by:
<selfhostblocks/modules/blocks/sanoid.nix> -
shb.sanoid.backup.<name>.settings -
Options passed to the
services.sanoid.datasets.<name>option.Type: attribute set of anything
Default:
{ }Declared by:
<selfhostblocks/modules/blocks/sanoid.nix> -
shb.sops.secret -
Secret following the secret contract.
Type: attribute set of (submodule)
Default:
{ }Declared by:
<selfhostblocks/modules/blocks/sops.nix> -
shb.sops.secret.<name>.request -
Request part of the secret contract.
Options set by the requester module enforcing some properties the secret should have.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/blocks/sops.nix> -
shb.sops.secret.<name>.request.group -
Linux group owning the secret file.
Type: string
Default:
"root"Declared by:
<selfhostblocks/modules/blocks/sops.nix> -
shb.sops.secret.<name>.request.mode -
Mode of the secret file.
Type: string
Default:
"0400"Declared by:
<selfhostblocks/modules/blocks/sops.nix> -
shb.sops.secret.<name>.request.owner -
Linux user owning the secret file.
Type: string
Default:
"root"Declared by:
<selfhostblocks/modules/blocks/sops.nix> -
shb.sops.secret.<name>.request.restartUnits -
Systemd units to restart after the secret is updated.
Type: list of string
Default:
[ ]Declared by:
<selfhostblocks/modules/blocks/sops.nix> -
shb.sops.secret.<name>.result -
Result part of the secret contract.
Options set by the provider module that indicates where the secret can be found.
Type: submodule
Default:
{ path = "/run/secrets/<name>"; }Declared by:
<selfhostblocks/modules/blocks/sops.nix> -
shb.sops.secret.<name>.result.path -
Path to the file containing the secret generated out of band.
This path will exist after deploying to a target host, it is not available through the nix store.
Type: absolute path
Default:
"/run/secrets/<name>"Declared by:
<selfhostblocks/modules/blocks/sops.nix> -
shb.sops.secret.<name>.settings -
Settings specific to the Sops provider.
This is a passthrough option to set sops-nix options.
Note though that the
mode,owner,group, andrestartUnitsare managed by the shb.sops.secret.<name>.request option.Type: attribute set of anything
Default:
{ }Declared by:
<selfhostblocks/modules/blocks/sops.nix> -
shb.tinyproxy -
Tinyproxy instances.
Type: attribute set of (submodule)
Default:
{ }Declared by:
<selfhostblocks/modules/blocks/tinyproxy.nix> -
shb.tinyproxy.<name>.enable -
Whether to enable Tinyproxy daemon.
Type: boolean
Default:
falseExample:
trueDeclared by:
<selfhostblocks/modules/blocks/tinyproxy.nix> -
shb.tinyproxy.<name>.package -
The tinyproxy package to use.
Type: package
Default:
pkgs.tinyproxyDeclared by:
<selfhostblocks/modules/blocks/tinyproxy.nix> -
shb.tinyproxy.<name>.dynamicBindFile -
File holding the IP to bind to.
Type: unspecified value
Default:
""Declared by:
<selfhostblocks/modules/blocks/tinyproxy.nix> -
shb.tinyproxy.<name>.settings -
Configuration for tinyproxy.
Type: open submodule of attribute set of (atom (null, bool, int, float or string) or a list of them for duplicate keys)
Default:
{ }Example:
{ Port 8888; Listen 127.0.0.1; Timeout 600; Allow 127.0.0.1; Anonymous = ['"Host"' '"Authorization"']; ReversePath = '"/example/" "http://www.example.com/"'; }Declared by:
<selfhostblocks/modules/blocks/tinyproxy.nix> -
shb.tinyproxy.<name>.settings.Anonymous -
If an
Anonymouskeyword is present, then anonymous proxying is enabled. The headers listed withAnonymousare allowed through, while all others are denied. If no Anonymous keyword is present, then all headers are allowed through. You must include quotes around the headers.Type: list of string
Default:
[ ]Declared by:
<selfhostblocks/modules/blocks/tinyproxy.nix> -
shb.tinyproxy.<name>.settings.Filter -
Tinyproxy supports filtering of web sites based on URLs or domains. This option specifies the location of the file containing the filter rules, one rule per line.
Type: null or absolute path
Default:
nullDeclared by:
<selfhostblocks/modules/blocks/tinyproxy.nix> -
shb.tinyproxy.<name>.settings.Listen -
Specify which address to listen to.
Type: string
Default:
"127.0.0.1"Declared by:
<selfhostblocks/modules/blocks/tinyproxy.nix> -
shb.tinyproxy.<name>.settings.Port -
Specify which port to listen to.
Type: signed integer
Default:
8888Declared by:
<selfhostblocks/modules/blocks/tinyproxy.nix> -
shb.vaultwarden.enable -
Whether to enable selfhostblocks.vaultwarden.
Type: boolean
Default:
falseExample:
trueDeclared by:
<selfhostblocks/modules/services/vaultwarden.nix> -
shb.vaultwarden.authEndpoint -
OIDC endpoint for SSO
Type: null or string
Default:
nullExample:
"https://authelia.example.com"Declared by:
<selfhostblocks/modules/services/vaultwarden.nix> -
shb.vaultwarden.backup -
Backup configuration.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/vaultwarden.nix> -
shb.vaultwarden.backup.request -
Request part of the backup contract.
Options set by the requester module enforcing how to backup files.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/services/vaultwarden.nix> -
shb.vaultwarden.backup.request.excludePatterns -
File patterns to exclude.
Type: list of string
Default:
[ ]Declared by:
<selfhostblocks/modules/services/vaultwarden.nix> -
shb.vaultwarden.backup.request.hooks -
Hooks to run around the backup.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/vaultwarden.nix> -
shb.vaultwarden.backup.request.hooks.afterBackup -
Hooks to run after backup.
Type: list of string
Default:
[ ]Declared by:
<selfhostblocks/modules/services/vaultwarden.nix> -
shb.vaultwarden.backup.request.hooks.beforeBackup -
Hooks to run before backup.
Type: list of string
Default:
[ ]Declared by:
<selfhostblocks/modules/services/vaultwarden.nix> -
shb.vaultwarden.backup.request.sourceDirectories -
Directories to backup.
Type: non-empty (list of string)
Default:
[ "/var/lib/vaultwarden" ]Example:
"/var/lib/vaultwarden"Declared by:
<selfhostblocks/modules/services/vaultwarden.nix> -
shb.vaultwarden.backup.request.user -
Unix user doing the backups.
Type: string
Default:
"vaultwarden"Example:
"vaultwarden"Declared by:
<selfhostblocks/modules/services/vaultwarden.nix> -
shb.vaultwarden.backup.result -
Result part of the backup contract.
Options set by the provider module that indicates the name of the backup and restore scripts.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/services/vaultwarden.nix> -
shb.vaultwarden.backup.result.backupService -
Name of service backing up the database.
This script can be ran manually to backup the database:
$ systemctl start backup.serviceType: string
Default:
"backup.service"Declared by:
<selfhostblocks/modules/services/vaultwarden.nix> -
shb.vaultwarden.backup.result.restoreScript -
Name of script that can restore the database. One can then list snapshots with:
$ restore snapshots <snapshot 1> <metadata> <snapshot 2> <metadata>And restore the database with:
$ restore restore <snapshot 1>Type: string
Default:
"restore"Declared by:
<selfhostblocks/modules/services/vaultwarden.nix> -
shb.vaultwarden.dashboard -
Dashboard contract consumer
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/vaultwarden.nix> -
shb.vaultwarden.dashboard.request -
Request part of the dashboard contract.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/vaultwarden.nix> -
shb.vaultwarden.dashboard.request.externalUrl -
URL at which the service can be accessed.
This URL should go through the reverse proxy.
Type: string
Default:
"https://\${config.shb.vaultwarden.subdomain}.\${config.shb.vaultwarden.domain}"Example:
"https://jellyfin.example.com"Declared by:
<selfhostblocks/modules/services/vaultwarden.nix> -
shb.vaultwarden.dashboard.request.internalUrl -
URL at which the service can be accessed directly.
This URL should bypass the reverse proxy. It can be used for example to ping the service and making sure it is up and running correctly.
Type: null or string
Default:
"http://127.0.0.1:8222"Example:
"http://127.0.0.1:8081"Declared by:
<selfhostblocks/modules/services/vaultwarden.nix> -
shb.vaultwarden.dashboard.result -
Result part of the dashboard contract.
No option is provided here.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/services/vaultwarden.nix> -
shb.vaultwarden.databasePassword -
File containing the Vaultwarden database password.
Type: submodule
Declared by:
<selfhostblocks/modules/services/vaultwarden.nix> -
shb.vaultwarden.databasePassword.request -
Request part of the secret contract.
Options set by the requester module enforcing some properties the secret should have.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/services/vaultwarden.nix> -
shb.vaultwarden.databasePassword.request.group -
Linux group owning the secret file.
Type: string
Default:
"postgres"Declared by:
<selfhostblocks/modules/services/vaultwarden.nix> -
shb.vaultwarden.databasePassword.request.mode -
Mode of the secret file.
Type: string
Default:
"0440"Declared by:
<selfhostblocks/modules/services/vaultwarden.nix> -
shb.vaultwarden.databasePassword.request.owner -
Linux user owning the secret file.
Type: string
Default:
"vaultwarden"Declared by:
<selfhostblocks/modules/services/vaultwarden.nix> -
shb.vaultwarden.databasePassword.request.restartUnits -
Systemd units to restart after the secret is updated.
Type: list of string
Default:
[ "vaultwarden.service" "postgresql.service" ]Declared by:
<selfhostblocks/modules/services/vaultwarden.nix> -
shb.vaultwarden.databasePassword.result -
Result part of the secret contract.
Options set by the provider module that indicates where the secret can be found.
Type: submodule
Default:
{ path = "/run/secrets/secret"; }Declared by:
<selfhostblocks/modules/services/vaultwarden.nix> -
shb.vaultwarden.databasePassword.result.path -
Path to the file containing the secret generated out of band.
This path will exist after deploying to a target host, it is not available through the nix store.
Type: absolute path
Default:
"/run/secrets/secret"Declared by:
<selfhostblocks/modules/services/vaultwarden.nix> -
shb.vaultwarden.debug -
Set to true to enable debug logging.
Type: boolean
Default:
falseExample:
trueDeclared by:
<selfhostblocks/modules/services/vaultwarden.nix> -
shb.vaultwarden.domain -
domain under which Authelia will be served.
Type: string
Example:
"mydomain.com"Declared by:
<selfhostblocks/modules/services/vaultwarden.nix> -
shb.vaultwarden.mount -
Mount configuration. This is an output option.
Use it to initialize a block implementing the “mount” contract. For example, with a zfs dataset:
shb.zfs.datasets."vaultwarden" = { poolName = "root"; } // config.shb.vaultwarden.mount;Type: open submodule of anything (read only)
Default:
{ path = "/var/lib/vaultwarden"; }Declared by:
<selfhostblocks/modules/services/vaultwarden.nix> -
shb.vaultwarden.mount.path -
Path to be mounted.
Type: string
Declared by:
<selfhostblocks/modules/services/vaultwarden.nix> -
shb.vaultwarden.port -
Port on which vaultwarden service listens.
Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Default:
8222Declared by:
<selfhostblocks/modules/services/vaultwarden.nix> -
shb.vaultwarden.smtp -
SMTP options.
Type: null or (submodule)
Default:
nullDeclared by:
<selfhostblocks/modules/services/vaultwarden.nix> -
shb.vaultwarden.smtp.auth_mechanism -
Auth mechanism.
Type: value “Login” (singular enum)
Default:
"Login"Declared by:
<selfhostblocks/modules/services/vaultwarden.nix> -
shb.vaultwarden.smtp.from_address -
SMTP address from which the emails originate.
Type: string
Example:
"vaultwarden@mydomain.com"Declared by:
<selfhostblocks/modules/services/vaultwarden.nix> -
shb.vaultwarden.smtp.from_name -
SMTP name from which the emails originate.
Type: string
Default:
"Vaultwarden"Declared by:
<selfhostblocks/modules/services/vaultwarden.nix> -
shb.vaultwarden.smtp.host -
SMTP host to send the emails to.
Type: string
Declared by:
<selfhostblocks/modules/services/vaultwarden.nix> -
shb.vaultwarden.smtp.password -
File containing the password to connect to the SMTP host.
Type: submodule
Declared by:
<selfhostblocks/modules/services/vaultwarden.nix> -
shb.vaultwarden.smtp.password.request -
Request part of the secret contract.
Options set by the requester module enforcing some properties the secret should have.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/services/vaultwarden.nix> -
shb.vaultwarden.smtp.password.request.group -
Linux group owning the secret file.
Type: string
Default:
"root"Declared by:
<selfhostblocks/modules/services/vaultwarden.nix> -
shb.vaultwarden.smtp.password.request.mode -
Mode of the secret file.
Type: string
Default:
"0400"Declared by:
<selfhostblocks/modules/services/vaultwarden.nix> -
shb.vaultwarden.smtp.password.request.owner -
Linux user owning the secret file.
Type: string
Default:
"vaultwarden"Declared by:
<selfhostblocks/modules/services/vaultwarden.nix> -
shb.vaultwarden.smtp.password.request.restartUnits -
Systemd units to restart after the secret is updated.
Type: list of string
Default:
[ "vaultwarden.service" ]Declared by:
<selfhostblocks/modules/services/vaultwarden.nix> -
shb.vaultwarden.smtp.password.result -
Result part of the secret contract.
Options set by the provider module that indicates where the secret can be found.
Type: submodule
Default:
{ path = "/run/secrets/secret"; }Declared by:
<selfhostblocks/modules/services/vaultwarden.nix> -
shb.vaultwarden.smtp.password.result.path -
Path to the file containing the secret generated out of band.
This path will exist after deploying to a target host, it is not available through the nix store.
Type: absolute path
Default:
"/run/secrets/secret"Declared by:
<selfhostblocks/modules/services/vaultwarden.nix> -
shb.vaultwarden.smtp.port -
SMTP port to send the emails to.
Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Default:
25Declared by:
<selfhostblocks/modules/services/vaultwarden.nix> -
shb.vaultwarden.smtp.security -
Security expected by SMTP host.
Type: one of “starttls”, “force_tls”, “off”
Default:
"starttls"Declared by:
<selfhostblocks/modules/services/vaultwarden.nix> -
shb.vaultwarden.smtp.username -
Username to connect to the SMTP host.
Type: string
Declared by:
<selfhostblocks/modules/services/vaultwarden.nix> -
shb.vaultwarden.ssl -
Path to SSL files
Type: null or (open submodule of anything)
Default:
nullDeclared by:
<selfhostblocks/modules/services/vaultwarden.nix> -
shb.vaultwarden.ssl.paths -
Paths where the files for the certificate will be located.
This option is the contract output of the
shb.certs.certsSSL block.Type: open submodule of anything
Declared by:
<selfhostblocks/modules/services/vaultwarden.nix> -
shb.vaultwarden.ssl.paths.cert -
Path to the cert file.
Type: absolute path
Declared by:
<selfhostblocks/modules/services/vaultwarden.nix> -
shb.vaultwarden.ssl.paths.key -
Path to the key file.
Type: absolute path
Declared by:
<selfhostblocks/modules/services/vaultwarden.nix> -
shb.vaultwarden.ssl.systemdService -
Systemd oneshot service used to generate the certificate. Ends with the
.servicesuffix.Use this if downstream services must wait for the certificates to be generated before starting.
Type: string
Example:
"cert-generator.service"Declared by:
<selfhostblocks/modules/services/vaultwarden.nix> -
shb.vaultwarden.subdomain -
Subdomain under which Authelia will be served.
Type: string
Example:
"ha"Declared by:
<selfhostblocks/modules/services/vaultwarden.nix> -
shb.vpn -
OpenVPN instances.
Type: attribute set of (submodule)
Default:
{ }Declared by:
<selfhostblocks/modules/blocks/vpn.nix> -
shb.vpn.<name>.enable -
Whether to enable OpenVPN config.
Type: boolean
Default:
falseExample:
trueDeclared by:
<selfhostblocks/modules/blocks/vpn.nix> -
shb.vpn.<name>.package -
The openvpn package to use.
Type: package
Default:
pkgs.openvpnDeclared by:
<selfhostblocks/modules/blocks/vpn.nix> -
shb.vpn.<name>.authFile -
Location of file holding authentication secrets for provider.
Type: anything
Declared by:
<selfhostblocks/modules/blocks/vpn.nix> -
shb.vpn.<name>.dev -
Name of the interface.
Type: string
Example:
"tun0"Declared by:
<selfhostblocks/modules/blocks/vpn.nix> -
shb.vpn.<name>.provider -
VPN provider, if given uses ready-made configuration.
Type: null or value “nordvpn” (singular enum)
Default:
nullDeclared by:
<selfhostblocks/modules/blocks/vpn.nix> -
shb.vpn.<name>.proxyPort -
If not null, sets up a proxy that listens on the given port and sends traffic to the VPN.
Type: null or signed integer
Default:
nullDeclared by:
<selfhostblocks/modules/blocks/vpn.nix> -
shb.vpn.<name>.remoteServerIP -
IP of the VPN server to connect to.
Type: string
Declared by:
<selfhostblocks/modules/blocks/vpn.nix> -
shb.vpn.<name>.routingNumber -
Unique number used to route packets.
Type: signed integer
Example:
10Declared by:
<selfhostblocks/modules/blocks/vpn.nix> -
shb.zfs.pools -
Attrset of ZFS pools under which datasets will be created.
The ZFS pools are not managed by this module, they should already exist.
Each pool named here will be added to the
boot.zfs.extraPoolsoption.Type: attribute set of (submodule)
Default:
{ }Declared by:
<selfhostblocks/modules/blocks/zfs.nix> -
shb.zfs.pools.<name>.datasets -
ZFS Datasets.
Each entry in the attrset will be created and mounted in the given path. The attrset name is the dataset name.
This block implements the following contracts:
mount
Type: attribute set of (submodule)
Default:
{ }Example:
shb.zfs."safe/postgresql".path = "/var/lib/postgresql";Declared by:
<selfhostblocks/modules/blocks/zfs.nix> -
shb.zfs.pools.<name>.datasets.<name>.enable -
Whether to enable shb.zfs.datasets.
Type: boolean
Default:
falseExample:
trueDeclared by:
<selfhostblocks/modules/blocks/zfs.nix> -
shb.zfs.pools.<name>.datasets.<name>.after -
Order creating this dataset after the mentioned ones. This only works with datasets managed by this module.
Use the name of the dataset without the pool name.
Type: list of string
Default:
[ ]Example:
[ "backup" ]Declared by:
<selfhostblocks/modules/blocks/zfs.nix> -
shb.zfs.pools.<name>.datasets.<name>.backup -
Backup contract consumer configuration.
This contract will backup the files inside the dataset.
Type: submodule
Declared by:
<selfhostblocks/modules/blocks/zfs.nix> -
shb.zfs.pools.<name>.datasets.<name>.backup.request -
Request part of the backup contract.
Options set by the requester module enforcing how to backup files.
Type: submodule
Default: { user = root; sourceDirectories = [ shb.zfs.pools.<name>.datasets.<name>.path ] ; excludePatterns = [ ]; hooks.beforeBackup = [ ]; hooks.afterBackup = [ ]; };
Declared by:
<selfhostblocks/modules/blocks/zfs.nix> -
shb.zfs.pools.<name>.datasets.<name>.backup.request.excludePatterns -
File patterns to exclude.
Type: list of string
Default:
[ ]Declared by:
<selfhostblocks/modules/blocks/zfs.nix> -
shb.zfs.pools.<name>.datasets.<name>.backup.request.hooks -
Hooks to run around the backup.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/blocks/zfs.nix> -
shb.zfs.pools.<name>.datasets.<name>.backup.request.hooks.afterBackup -
Hooks to run after backup.
Type: list of string
Default:
[ ]Declared by:
<selfhostblocks/modules/blocks/zfs.nix> -
shb.zfs.pools.<name>.datasets.<name>.backup.request.hooks.beforeBackup -
Hooks to run before backup.
Type: list of string
Default:
[ ]Declared by:
<selfhostblocks/modules/blocks/zfs.nix> -
shb.zfs.pools.<name>.datasets.<name>.backup.request.sourceDirectories -
Directories to backup.
Type: non-empty (list of string)
Default: [ shb.zfs.pools.<name>.datasets.<name>.path ]
Example:
"/var/lib/vaultwarden"Declared by:
<selfhostblocks/modules/blocks/zfs.nix> -
shb.zfs.pools.<name>.datasets.<name>.backup.request.user -
Unix user doing the backups.
Type: string
Default:
"root"Example:
"vaultwarden"Declared by:
<selfhostblocks/modules/blocks/zfs.nix> -
shb.zfs.pools.<name>.datasets.<name>.backup.result -
Result part of the backup contract.
Options set by the provider module that indicates the name of the backup and restore scripts.
Type: submodule
Default:
""Declared by:
<selfhostblocks/modules/blocks/zfs.nix> -
shb.zfs.pools.<name>.datasets.<name>.backup.result.backupService -
Name of service backing up the database.
This script can be ran manually to backup the database:
$ systemctl start backup.serviceType: string
Default:
"backup.service"Declared by:
<selfhostblocks/modules/blocks/zfs.nix> -
shb.zfs.pools.<name>.datasets.<name>.backup.result.restoreScript -
Name of script that can restore the database. One can then list snapshots with:
$ restore snapshots <snapshot 1> <metadata> <snapshot 2> <metadata>And restore the database with:
$ restore restore <snapshot 1>Type: string
Default:
"restore"Declared by:
<selfhostblocks/modules/blocks/zfs.nix> -
shb.zfs.pools.<name>.datasets.<name>.datasetbackup -
ZFS dataset backup contract configuration.
This contract will take snaphots of the dataset.
Type: submodule
Declared by:
<selfhostblocks/modules/blocks/zfs.nix> -
shb.zfs.pools.<name>.datasets.<name>.datasetbackup.request -
Request part of the backup contract.
Options set by the requester module enforcing how to backup files.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/blocks/zfs.nix> -
shb.zfs.pools.<name>.datasets.<name>.datasetbackup.request.dataset -
Dataset to backup, including the pool name.
Type: string
Default:
"‹name›"Example:
"root/home"Declared by:
<selfhostblocks/modules/blocks/zfs.nix> -
shb.zfs.pools.<name>.datasets.<name>.datasetbackup.result -
Result part of the backup contract.
Options set by the provider module that indicates the name of the backup and restore scripts.
Type: submodule
Default:
{ }Declared by:
<selfhostblocks/modules/blocks/zfs.nix> -
shb.zfs.pools.<name>.datasets.<name>.datasetbackup.result.backupService -
Name of service backing up the database.
This script can be ran manually to backup the database:
$ systemctl start backup.serviceType: string
Default:
"backup.service"Declared by:
<selfhostblocks/modules/blocks/zfs.nix> -
shb.zfs.pools.<name>.datasets.<name>.datasetbackup.result.restoreScript -
Name of script that can restore the database. One can then list snapshots with:
$ restore snapshots <snapshot 1> <metadata> <snapshot 2> <metadata>And restore the database with:
$ restore restore <snapshot 1>It is not garanteed to be able to restore back to a snapshot in the future. With the above example, it may not be possible to restore
<snapshot 2>after having restored<snapshot 1>.Type: string
Default:
"restore"Declared by:
<selfhostblocks/modules/blocks/zfs.nix> -
shb.zfs.pools.<name>.datasets.<name>.defaultACLs -
If non null, default ACL to set on the dataset root folder.
Executes “setfacl -d -m $acl $path”
Type: null or string
Default:
nullExample:
"g:syncthing:rwX"Declared by:
<selfhostblocks/modules/blocks/zfs.nix> -
shb.zfs.pools.<name>.datasets.<name>.group -
If non null, unix group to apply to the dataset root folder.
Type: null or string
Default:
nullExample:
"syncthing"Declared by:
<selfhostblocks/modules/blocks/zfs.nix> -
shb.zfs.pools.<name>.datasets.<name>.mode -
If non null, unix mode to apply to the dataset root folder.
Type: null or string
Default:
nullExample:
"ug=rwx,g+s"Declared by:
<selfhostblocks/modules/blocks/zfs.nix> -
shb.zfs.pools.<name>.datasets.<name>.owner -
If non null, unix user to apply to the dataset root folder.
Type: null or string
Default:
nullExample:
"syncthing"Declared by:
<selfhostblocks/modules/blocks/zfs.nix> -
shb.zfs.pools.<name>.datasets.<name>.path -
Path this dataset should be mounted on. If the string ‘none’ is given, the dataset will not be mounted.
Type: string
Declared by:
<selfhostblocks/modules/blocks/zfs.nix> -
shb.zfs.snapshotBeforeActivation.enable -
Take a snapshot of all datasets before activation
Type: boolean
Default:
falseDeclared by:
<selfhostblocks/modules/blocks/zfs.nix> -
shb.zfs.snapshotBeforeActivation.datasets -
Defines all datasets to take a snapshot of.
If set to
null, the default, take the list of datasets fromconfig.boot.zfs.extraPools.The snapshots are not recursive unless specificed in the
recursiveoption.Type: null or (list of string)
Default:
nullDeclared by:
<selfhostblocks/modules/blocks/zfs.nix> -
shb.zfs.snapshotBeforeActivation.recursive -
If true, take snapshots recurisevly on the given datasets.
Type: boolean
Default:
falseDeclared by:
<selfhostblocks/modules/blocks/zfs.nix> -
shb.zfs.snapshotBeforeActivation.template -
Bash command to generate the snapshot name. $1 is the path to the new generation.
Type: string
Default:
"pre-$(date --utc '+%y%m%dT%H%M%S')-$(basename \"$1\")"Declared by:
<selfhostblocks/modules/blocks/zfs.nix>