{ ... }: { services.matrix-synapse = { enable = true; settings = { listeners = [{ port = 8008; bind_addresses = [ "::1" "127.0.0.1" ]; type = "http"; tls = false; x_forwarded = true; resources = [ { compress = true; names = [ "client" ]; } { compress = false; names = [ "federation" ]; } ]; }]; server_name = "nekover.se"; public_baseurl = "https://matrix.nekover.se"; database = { name = "psycopg2"; args.password = "synapse"; }; email = { smtp_host = "mail-1.grzb.de"; smtp_port = 465; smtp_user = "matrix@nekover.se"; force_tls = true; notif_from = "Nekoverse Matrix Server "; }; max_upload_size = "500M"; signing_key_path = "/secrets/matrix-homeserver-signing-key.secret"; admin_contact = "mailto:admin@nekover.se"; web_client_location = "https://element.nekover.se"; turn_uris = [ "turns:turn.nekover.se?transport=udp" "turns:turn.nekover.se?transport=tcp" ]; turn_user_lifetime = 86400000; turn_allow_guests = true; }; extraConfigFiles = [ "/secrets/matrix-registration-shared-secret.secret" "/secrets/matrix-turn-shared-secret.secret" "/secrets/matrix-email-smtp-pass.secret" ]; }; }