{ inputs, config, lib, pkgs, system, ... }: let cfg = config.suites.nas.media.kavita; in { options.suites.nas.media.kavita.enable = lib.mkOption { type = with lib.types; uniq bool; default = false; description = "Enable Preconfigured kavita Config"; }; options.suites.nas.media.kavita.subdomain = lib.mkOption { type = with lib.types; string; default = "read"; description = "Kavita Subdomain"; }; config = lib.mkIf (cfg.enable) { services.kavita.enable = true; services.kavita.user = "media"; services.kavita.tokenKeyFile = "/home/media/secrets/kavita-secret"; # Configure Reverse-Proxy services.traefik.dynamicConfigOptions = { http.services.kavita.loadBalancer.servers = [ { url = "http://localhost:5000/"; } ]; http.routers.kavita.entrypoints = "websecure"; http.routers.kavita.tls = true; #http.routers.kavita.tls.certresolver = "letsencrypt"; http.routers.kavita.rule = "Host(`${cfg.subdomain}.${config.suites.nas.domain}`)"; http.routers.kavita.service = "kavita"; }; }; }