From 9cadcf2eed0cbff013cbd6e35029cfdb0be2c129 Mon Sep 17 00:00:00 2001 From: mjallen18 Date: Fri, 21 Nov 2025 08:28:10 -0600 Subject: [PATCH] ert --- modules/nixos/services/ersatztv/default.nix | 61 +++++++++++++++++++++ systems/x86_64-linux/jallen-nas/apps.nix | 8 +++ 2 files changed, 69 insertions(+) create mode 100644 modules/nixos/services/ersatztv/default.nix diff --git a/modules/nixos/services/ersatztv/default.nix b/modules/nixos/services/ersatztv/default.nix new file mode 100644 index 0000000..fe6bf21 --- /dev/null +++ b/modules/nixos/services/ersatztv/default.nix @@ -0,0 +1,61 @@ +{ + lib, + config, + namespace, + ... +}: +with lib; +let + inherit (lib.${namespace}) mkOpt mkReverseProxyOpt; + cfg = config.${namespace}.services.ersatztv; +in +{ + options.${namespace}.services.ersatztv = { + enable = mkEnableOption "ersatztv service"; + + name = mkOpt types.str "ersatztv" "container name"; + + image = mkOpt types.str "ghcr.io/ersatztv/ersatztv" "container image"; + + port = mkOpt types.int 8409 "Port for ersatztv to be hosted on"; + + configPath = mkOpt types.str "" "Path to the data dir"; + + moviesPath = mkOpt types.str "" "Path to the data dir"; + + tvPath = mkOpt types.str "" "Path to the data dir"; + + transcodePath = mkOpt types.str "" "Path to the data dir"; + + puid = mkOpt types.str "911" "uid"; + + pgid = mkOpt types.str "1000" "gid"; + + timeZone = mkOpt types.str "America/Chicago" "Timezone"; + + reverseProxy = mkReverseProxyOpt; + }; + + config = mkIf cfg.enable { + + virtualisation.oci-containers.containers.${cfg.name} = { + autoStart = true; + image = cfg.image; + extraOptions = [ "--device=/dev/dri" ]; + volumes = [ + "${cfg.configPath}:/config" + "${cfg.moviesPath}:/library/movies" + "${cfg.tvPath}:/library/tv" + "${cfg.transcodePath}:/transcode" + ]; + ports = [ + "${toString cfg.port}:8409" + ]; + environment = { + PUID = cfg.puid; + PGID = cfg.pgid; + TZ = cfg.timeZone; + }; + }; + }; +} diff --git a/systems/x86_64-linux/jallen-nas/apps.nix b/systems/x86_64-linux/jallen-nas/apps.nix index 3e6fdd8..2543b8c 100755 --- a/systems/x86_64-linux/jallen-nas/apps.nix +++ b/systems/x86_64-linux/jallen-nas/apps.nix @@ -35,6 +35,14 @@ ocis.enable = false; + ersatztv = { + enable = true; + configPath = "/media/nas/main/nix-app-data/ersatztv"; + moviesPath = "/media/nas/main/movies"; + tvPath = "/media/nas/main/tv"; + transcodePath = "/media/nas/main/nix-app-data/transcode"; + }; + arrs = { enable = true; localAddress = "10.0.1.51";