{ config, lib, pkgs, ... }: { options = { server.media.kavita = { enable = lib.mkEnableOption "enable kavita"; port = lib.mkOption { default = 3812; description = "kavita port"; }; public = lib.mkEnableOption "make kavita public"; subdomain = lib.mkOption { default = "books"; description = "kavita subdomain"; }; }; }; config = { services = { kavita = { enable = config.server.media.kavita.enable; settings = { Port = config.server.media.kavita.port; }; }; nginx = { virtualHosts = { "${config.server.media.kavita.subdomain}.${config.networking.domain}" = if config.server.media.kavita.public then { enableACME = true; forceSSL = true; locations."/" = { proxyPass = "http://127.0.0.1:${toString config.server.media.kavita.port}"; }; } else { }; }; }; }; }; }