From 9203ef365b44fb3f9fc8d45d4858c4a6dc77e147 Mon Sep 17 00:00:00 2001 From: xunuwu Date: Thu, 8 May 2025 06:52:57 +0200 Subject: [PATCH] add audiobookshelf --- sys/machines/hopper/lab/audiobookshelf.nix | 10 ++++++++++ sys/machines/hopper/lab/caddy.nix | 2 ++ sys/machines/hopper/lab/default.nix | 1 + sys/machines/hopper/lab/homepage.nix | 6 ++++++ sys/machines/hopper/lab/vpn-namespace.nix | 1 + 5 files changed, 20 insertions(+) create mode 100644 sys/machines/hopper/lab/audiobookshelf.nix diff --git a/sys/machines/hopper/lab/audiobookshelf.nix b/sys/machines/hopper/lab/audiobookshelf.nix new file mode 100644 index 0000000..90932fd --- /dev/null +++ b/sys/machines/hopper/lab/audiobookshelf.nix @@ -0,0 +1,10 @@ +{config, ...}: { + services.audiobookshelf = { + enable = true; + host = "0.0.0.0"; + }; + + services.restic.backups.hopper.paths = [ + "/var/lib/${config.services.audiobookshelf.dataDir}" + ]; +} diff --git a/sys/machines/hopper/lab/caddy.nix b/sys/machines/hopper/lab/caddy.nix index 74731be..4f8515f 100644 --- a/sys/machines/hopper/lab/caddy.nix +++ b/sys/machines/hopper/lab/caddy.nix @@ -42,12 +42,14 @@ in { jellyfin = mkPublicEntry "jellyfin" "${bridge}:8096"; navidrome = mkPublicEntry "navidrome" "unix//var/lib/navidrome/navidrome.sock"; vaultwarden = mkPublicEntry "vw" "${bridge}:${toString config.services.vaultwarden.config.ROCKET_PORT}"; + abs = mkPublicEntry "abs" "${bridge}:${toString config.services.audiobookshelf.port}"; slskd = mkPrivateEntry "slskd" "localhost:${toString config.services.slskd.settings.web.port}"; prometheus = mkPrivateEntry "prometheus" "${bridge}:${toString config.services.prometheus.port}"; adguard = mkPrivateEntry "adguard" "${bridge}:${toString config.services.adguardhome.port}"; transmission = mkPrivateEntry "transmission" "localhost:${toString config.services.transmission.settings.rpc-port}"; dash = mkPrivateEntry "dash" "${bridge}:${toString config.services.homepage-dashboard.listenPort}"; + absPriv = mkPrivateEntry "abs" "${bridge}:${toString config.services.audiobookshelf.port}"; other = { useACMEHost = domain; diff --git a/sys/machines/hopper/lab/default.nix b/sys/machines/hopper/lab/default.nix index c393931..3b9922b 100644 --- a/sys/machines/hopper/lab/default.nix +++ b/sys/machines/hopper/lab/default.nix @@ -4,6 +4,7 @@ imports = [ ./acme.nix ./adguard.nix + ./audiobookshelf.nix ./caddy.nix ./homepage.nix ./jellyfin.nix diff --git a/sys/machines/hopper/lab/homepage.nix b/sys/machines/hopper/lab/homepage.nix index 126d0f2..2a192f4 100644 --- a/sys/machines/hopper/lab/homepage.nix +++ b/sys/machines/hopper/lab/homepage.nix @@ -57,6 +57,12 @@ in { icon = "navidrome"; }; } + { + "audiobookshelf" = { + href = "https://abs.${domain}"; + icon = "audiobookshelf"; + }; + } { "adguard home" = { href = "http://adguard.hopper.xun.host"; diff --git a/sys/machines/hopper/lab/vpn-namespace.nix b/sys/machines/hopper/lab/vpn-namespace.nix index 354fcd1..a45b2f2 100644 --- a/sys/machines/hopper/lab/vpn-namespace.nix +++ b/sys/machines/hopper/lab/vpn-namespace.nix @@ -9,6 +9,7 @@ config.services.adguardhome.port config.services.vaultwarden.config.ROCKET_PORT config.services.homepage-dashboard.listenPort + config.services.audiobookshelf.port 8096 # jellyfin port ]; in {