72 lines
1.6 KiB
Nix
72 lines
1.6 KiB
Nix
{
|
|
config,
|
|
lib,
|
|
pkgs,
|
|
...
|
|
}:
|
|
let
|
|
inherit (lib) mkEnableOption mkIf;
|
|
|
|
cfg = config.ataraxia.containers.media-stack;
|
|
pods = config.virtualisation.quadlet.pods;
|
|
|
|
nas-path = "/media/nas/media-stack";
|
|
|
|
caddyconf = pkgs.writeText "Caddyfile" ''
|
|
{
|
|
auto_https off
|
|
http_port 8180
|
|
}
|
|
jellyfin.ataraxiadev.com:8180 {
|
|
reverse_proxy jellyfin:8096
|
|
}
|
|
qbit.ataraxiadev.com:8180 {
|
|
reverse_proxy qbittorrent:8080
|
|
}
|
|
medusa.ataraxiadev.com:8180 {
|
|
reverse_proxy medusa:8081
|
|
}
|
|
jackett.ataraxiadev.com:8180 {
|
|
reverse_proxy jackett:9117
|
|
}
|
|
sonarr.ataraxiadev.com:8180 {
|
|
reverse_proxy sonarr:8989
|
|
}
|
|
radarr.ataraxiadev.com:8180 {
|
|
reverse_proxy radarr:7878
|
|
}
|
|
lidarr.ataraxiadev.com:8180 {
|
|
reverse_proxy lidarr:8686
|
|
}
|
|
kavita.ataraxiadev.com:8180 {
|
|
reverse_proxy kavita:5000
|
|
}
|
|
'';
|
|
in
|
|
{
|
|
options.ataraxia.containers.media-stack = {
|
|
caddy = mkEnableOption "Enable media-caddy container";
|
|
};
|
|
|
|
config = mkIf cfg.caddy {
|
|
virtualisation.quadlet.containers.caddy = {
|
|
autoStart = true;
|
|
containerConfig = {
|
|
# Tags: release-20b7f25, release-2.10.0, release
|
|
image = "ghcr.io/hotio/caddy@sha256:937fe02672e7ce7f189e28d45c4ccfe86b2a7d5791b4e04badb55e143e32d5b7";
|
|
pod = pods.media-stack.ref;
|
|
environments = {
|
|
PUID = "1000";
|
|
PGID = "100";
|
|
UMASK = "002";
|
|
TZ = "Europe/Moscow";
|
|
};
|
|
volumes = [
|
|
"${nas-path}/configs/caddy:/config"
|
|
"${caddyconf}:/config/Caddyfile"
|
|
];
|
|
};
|
|
};
|
|
};
|
|
}
|