{ config, ... }: { services.matrix-synapse = { enable = true; extraConfigFiles = [ config.secrets.files.synapse_extra_config.file ]; settings = { server_name = "anarkafem.dev"; enable_registration = false; registration_shared_secret = builtins.toString config.secrets.files.synapse_registration_shared_secret.file; turn_shared_secret = builtins.toString config.secrets.files.turn_shared_secret.file; max_upload_size = "100M"; turn_uris = [ "turn:turn.anarkafem.dev:3478?transport=udp" "turn:turn.anarkafem.dev:3478?transport=tcp" "turn:turn.anarkafem.dev:3479?transport=udp" "turn:turn.anarkafem.dev:3479?transport=tcp" "turns:turn.anarkafem.dev:5349?transport=udp" "turns:turn.anarkafem.dev:5349?transport=tcp" "turns:turn.anarkafem.dev:5350?transport=udp" "turns:turn.anarkafem.dev:5350?transport=tcp" ]; report_stats = false; withJemalloc = true; servers = { "anarkafem.dev" = {}; }; extraConfig = '' default_room_version: "9" auto_join_rooms: - "#suf-aalborg:anarkafem.dev" ''; logConfig = '' version: 1 formatters: precise: format: '%(asctime)s - %(name)s - %(lineno)d - %(levelname)s - %(request)s - %(message)s' handlers: console: class: logging.StreamHandler formatter: precise loggers: synapse.storage.SQL: # beware: increasing this to DEBUG will make synapse log sensitive # information such as access tokens. level: INFO root: level: INFO handlers: [console] disable_existing_loggers: false ''; listeners = [ { port = 8008; bind_addresses = ["127.0.0.1"]; type = "http"; tls = false; x_forwarded = true; resources = [ { names = [ "client" "federation" ]; compress = false; } ]; } ]; }; }; }