audiobookshelf
Self-hosted audiobook and podcast server
Example
{
nps.stacks.audiobookshelf = {
enable = true;
oidc = {
registerClient = true;
clientSecretHash = "$pbkdf2-sha512$...";
};
};
}Stack Options
nps.stacks.audiobookshelf.containers.audiobookshelf
Alias of {option}services.podman.containers.audiobookshelf.
nps.stacks.audiobookshelf.enable
Whether to enable audiobookshelf.
nps.stacks.audiobookshelf.oidc.adminGroup
Users of this group will be assigned admin rights.
In order to take effect, you will have to enter the value abs_groups in the Group Claim form field in the Audiobookshelf UI.
nps.stacks.audiobookshelf.oidc.clientSecretHash
The client secret hash. For examples on how to generate a client secret, see
https://www.authelia.com/integration/openid-connect/frequently-asked-questions/#client-secret
The value can be passed in multiple ways:
- As a literal string
- As an absolute path to a file containing the hash (
toFile) - As an absolute oath to a file containing the client_secret, in which case the hash will be automatically computed (
toHash)
string or (submodule)
# Literal String:
"$pbkdf2-sha512$310000$cbOAIWbfz3vCVXIPIp6d2A$J0klwULa6TvPRCU1HAfuKua/dMKTl8gbTYJz2N73ejGUu0LUGz/y3kwmJLuKuAYGg3WQOT0q9ZzVHHUvpKpgvQ"
# Client secret hash stored in a file
{ fromFile = config.sops.secrets."immich/client_secret_hash".path; }
# Client secret stored in a file: Hash will be computed dynamically
{ toHash = config.sops.secrets."immich/client_secret".path; }
nps.stacks.audiobookshelf.oidc.registerClient
Whether to register a Audiobookshelf OIDC client in Authelia.
If enabled you need to provide a hashed secret in the client_secret option.
To enable OIDC Login for Audiobookshelf, you will have to enable it in the Web UI.
For details, see:
nps.stacks.audiobookshelf.oidc.userGroup
Users of this group will be able to log in
In order to take effect, you will have to enter the value abs_groups in the Group Claim form field in the Audiobookshelf UI.