diff --git a/hosts/common/vps/audiobookshelf.nix b/hosts/common/vps/audiobookshelf.nix new file mode 100644 index 0000000..3b45ffe --- /dev/null +++ b/hosts/common/vps/audiobookshelf.nix @@ -0,0 +1,42 @@ +{ config, lib, pkgs, user, ... }: +with lib; + +let + audiobookshelfService = { + project.name = "audiobookshelf"; + services = { + dashdot = { + service = { + image = "ghcr.io/advplyr/audiobookshelf:latest"; + ports = [ + "13378:80" + ]; + volumes = [ + "${config.users.users.${user}.home}/dockers/audiobookshelf/audiobooks:/audiobooks" + "${config.users.users.${user}.home}/dockers/audiobookshelf/podcasts:/podcasts" + "${config.users.users.${user}.home}/dockers/audiobookshelf/config:/config" + "${config.users.users.${user}.home}/dockers/audiobookshelf/metadata:/metadata" + ]; + environment = { + TZ = "Asia/Kuwait"; + }; + }; + }; + }; + }; +in +{ + options.vps.audiobookshelf.enable = mkEnableOption "Enable audiobookshelf for VPS"; + + config = mkIf config.vps.audiobookshelf.enable { + virtualisation.arion = { + backend = "docker"; + projects.audiobookshelf = { + serviceName = "audiobookshelf"; + settings = audiobookshelfService; + }; + }; + }; +} + + diff --git a/hosts/common/vps/default.nix b/hosts/common/vps/default.nix index baff3ac..cd1b208 100644 --- a/hosts/common/vps/default.nix +++ b/hosts/common/vps/default.nix @@ -6,6 +6,7 @@ ./syncthing.nix ./vpn.nix ./dashdot.nix + ./audiobookshelf.nix ]; } diff --git a/hosts/vps/configuration.nix b/hosts/vps/configuration.nix index ec272aa..5f520aa 100644 --- a/hosts/vps/configuration.nix +++ b/hosts/vps/configuration.nix @@ -24,6 +24,7 @@ syncthing.enable = true; vpn.enable = true; dashdot.enable = true; + audiobookshelf.enable = true; }; sops = { @@ -95,6 +96,7 @@ reverse_proxy /ws_drop localhost:7891 reverse_proxy /ws_vpn localhost:7892 reverse_proxy /ws_sync localhost:7893 + reverse_proxy /books localhost:13378 basic_auth /* { nomad $2a$12$toBh5sfXyxigtHGNY4t8tO7YYQp6i3aZk/O0qd19lgk0LRz5eqDVi