From 02818009826f8f56d8fd88a9deb55934bc0293ca Mon Sep 17 00:00:00 2001 From: cnst Date: Wed, 23 Jul 2025 14:06:41 +0200 Subject: [PATCH] bazarr --- hosts/sobotka/server.nix | 3 ++ modules/server/bazarr/default.nix | 52 +++++++++++++++++++++++++++++++ 2 files changed, 55 insertions(+) create mode 100644 modules/server/bazarr/default.nix diff --git a/hosts/sobotka/server.nix b/hosts/sobotka/server.nix index c2371046..37526464 100644 --- a/hosts/sobotka/server.nix +++ b/hosts/sobotka/server.nix @@ -18,6 +18,9 @@ homepage = { enable = true; }; + bazarr = { + enable = true; + }; prowlarr = { enable = true; }; diff --git a/modules/server/bazarr/default.nix b/modules/server/bazarr/default.nix new file mode 100644 index 00000000..889241fc --- /dev/null +++ b/modules/server/bazarr/default.nix @@ -0,0 +1,52 @@ +{ + config, + lib, + ... +}: let + unit = "bazarr"; + srv = config.server; + cfg = config.server.${unit}; +in { + options.server.${unit} = { + enable = lib.mkEnableOption { + description = "Enable ${unit}"; + }; + configDir = lib.mkOption { + type = lib.types.str; + default = "/var/lib/${unit}"; + }; + url = lib.mkOption { + type = lib.types.str; + default = "${unit}.${srv.domain}"; + }; + homepage.name = lib.mkOption { + type = lib.types.str; + default = "Bazarr"; + }; + homepage.description = lib.mkOption { + type = lib.types.str; + default = "Subtitle manager"; + }; + homepage.icon = lib.mkOption { + type = lib.types.str; + default = "bazarr.svg"; + }; + homepage.category = lib.mkOption { + type = lib.types.str; + default = "Arr"; + }; + }; + config = lib.mkIf cfg.enable { + services.${unit} = { + enable = true; + user = srv.user; + group = srv.group; + }; + services.caddy.virtualHosts."${cfg.url}" = { + useACMEHost = srv.domain; + extraConfig = '' + reverse_proxy http://127.0.0.1:${toString config.services.${unit}.listenPort} + ''; + }; + }; +}