{ lib, config, ... }: with lib; { options.machine.synapse = { enable = mkEnableOption "Synapse"; element = { enable = mkEnableOption "Elemenet web"; domain = mkOption { type = types.nullOr types.str; default = "chat.${config.machine.synapse.domain}"; description = "Domain name."; }; }; domain = mkOption { type = types.str; default = "example.com"; description = "Domain name."; }; port = mkOption { type = types.port; default = 8008; description = "Listen port."; }; metrics = { enable = mkEnableOption "Synapse metrics"; port = mkOption { type = types.port; default = 9000; description = "Listen port."; }; }; }; }