mkModule gitea
This commit is contained in:
@@ -6,56 +6,36 @@
|
||||
}:
|
||||
with lib;
|
||||
let
|
||||
inherit (lib.${namespace}) mkOpt mkReverseProxyOpt;
|
||||
cfg = config.${namespace}.services.ersatztv;
|
||||
in
|
||||
{
|
||||
options.${namespace}.services.ersatztv = {
|
||||
enable = mkEnableOption "ersatztv service";
|
||||
name = "ersatztv";
|
||||
cfg = config.${namespace}.services.${name};
|
||||
|
||||
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}:/libraries/movies"
|
||||
"${cfg.tvPath}:/libraries/tv"
|
||||
"${cfg.transcodePath}:/transcode"
|
||||
];
|
||||
ports = [
|
||||
"${toString cfg.port}:8409"
|
||||
];
|
||||
environment = {
|
||||
PUID = cfg.puid;
|
||||
PGID = cfg.pgid;
|
||||
TZ = cfg.timeZone;
|
||||
ersatztvConfig = lib.${namespace}.mkModule {
|
||||
inherit config name;
|
||||
description = "ersatztv";
|
||||
options = { };
|
||||
moduleConfig = {
|
||||
virtualisation.oci-containers.containers.${name} = {
|
||||
autoStart = true;
|
||||
image = "ghcr.io/ersatztv/ersatztv";
|
||||
extraOptions = [ "--device=/dev/dri" ];
|
||||
volumes = [
|
||||
"${cfg.configDir}/ersatztv:/config"
|
||||
"${cfg.dataDir}/movies:/libraries/movies"
|
||||
"${cfg.dataDir}/movies:/libraries/tv"
|
||||
"${cfg.configDir}/transcode:/transcode"
|
||||
];
|
||||
ports = [
|
||||
"${toString cfg.port}:8409"
|
||||
];
|
||||
environment = {
|
||||
PUID = cfg.puid;
|
||||
PGID = cfg.pgid;
|
||||
TZ = cfg.timeZone;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
in
|
||||
{
|
||||
imports = [ ersatztvConfig ];
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user