{ config, caddy-patched, ... }: let # matrix homeserver discovery matrix_domain = "matrix.${config.networking.domain}"; serverConfig = { "m.server" = "${matrix_domain}:443"; }; clientConfig = { "m.homeserver" = { base_url = "https://${matrix_domain}"; # server_name = config.networking.domain; }; "org.matrix.msc3575.proxy" = { url = "https://${matrix_domain}"; }; }; in { services.caddy = { virtualHosts."${config.networking.domain}".extraConfig = '' file_server browse root * /srv/web/${config.networking.domain} respond /.well-known/matrix/client ${builtins.toJSON clientConfig} respond /.well-known/matrix/server ${builtins.toJSON serverConfig} ''; }; }