infra/nix/hosts/loki/modules/containers/audiobookshelf.nix
2026-01-05 23:09:19 +01:00

71 lines
2.0 KiB
Nix

{
config,
pkgs,
...
}:
let
baseDir = "/DATA/services/audiobookshelf";
# mediaDir = "/DATA/media";
mediaDir = "/media";
# version = "2.8.1";
# version = "2.9.0";
# version = "2.11.0";
# version = "2.12.0";
# version = "2.13.4";
# version = "2.16.2";
# version = "2.17.0";
# version = "2.17.1";
# version = "2.17.7";
# version = "2.18.0";
# version = "2.19.0";
# version = "2.19.5";
# version = "2.20.0";
# version = "2.21.0";
# version = "2.22.0";
# version = "2.23.0";
# version = "2.24.0";
# version = "2.25.1";
# version = "2.26.0";
# version = "2.26.1";
# version = "2.27.0@sha256:f60a19bb94a9fc763212be0116502b0c2cee1da655c9320137a3020fb1ed2dca ";
# version = "2.29.0@sha256:dd4a3079d26bfe9f0ea63de3e3eff483dfa25fef05ef850a5a9d121dca3794b2";
# version = "2.30.0@sha256:6fbd7dc95d53c6e168ce69e760b87c334e3b9ba88bf7b8531ed5a116d5d6da03";
version = "2.31.0@sha256:e23adb24848d99d19cd1e251aee4e1e12ed4f5effc8ccb21754b062b6a06cf66";
# p = config.sops.placeholder;
usr = "abs";
in
{
# Audiobookshelf
virtualisation.oci-containers.containers.audiobookshelf = {
autoStart = true;
image = "ghcr.io/advplyr/audiobookshelf:${version}";
environment = {
TZ = "Europe/Vienna";
AUDIOBOOKSHELF_UID = toString config.users.users.${toString usr}.uid;
AUDIOBOOKSHELF_GID = toString config.users.groups.${toString usr}.gid;
};
ports = [ "127.0.0.1:13378:80" ];
volumes = [
"${mediaDir}/audiobooks:/audiobooks"
"${mediaDir}/podcasts:/podcasts"
"${baseDir}/config:/config"
"${baseDir}/audiobooks-meta:/metadata"
];
};
# Audiobookshelf user + group.
users.users.${toString usr} = {
group = usr;
home = "/etc/" + usr;
createHome = false;
isSystemUser = true;
extraGroups = [ "users" ];
autoSubUidGidRange = true;
};
users.groups.${toString usr} = { };
systemd.services.podman-audiobookshelf.serviceConfig = {
Restart = "always";
RestartSec = 30;
};
}