{ lib, config, ... }: let cfg = config.services.actual; fqdn = "${cfg.subdomain}.${config.networking.domain}"; in { options.services.actual = { subdomain = lib.mkOption { type = lib.types.str; }; environmentFile = lib.mkOption { type = lib.types.nullOr lib.types.path; }; }; config = lib.mkIf cfg.enable { services = { webserver = { enable = lib.mkDefault true; vHosts.${fqdn}.locations."/".proxyPort = cfg.settings.port; }; }; systemd.services.actual = { serviceConfig.EnvironmentFile = cfg.environmentFile; }; }; }