{ pkgs, draupnirSrc, ... }: { services.draupnir = { package = (pkgs.draupnir.overrideAttrs (oldAttrs: { src = draupnirSrc; version = draupnirSrc.rev; })); enable = true; homeserverUrl = "https://matrix.rory.gay"; accessTokenFile = "/etc/draupnir-access-token"; #pantalaimon = { # enable = false; # username = "draupnir"; # passwordFile = "/etc/draupnir-password"; # options = { #homeserver = "http://localhost:8008"; #ssl = false; # }; #}; settings = { managementRoom = "#draupnir-mgmt:rory.gay"; verboseLogging = false; recordIgnoredInvites = true; # Let's log ignored invites, just incase autojoinOnlyIfManager = true; # Let's not open ourselves up to DoS attacks automaticallyRedactForReasons = [ "*" ]; # I always want autoredact fasterMembershipChecks = true; roomStateBackingStore.enabled = true; # broken under nix. backgroundDelayMS = 10; # delay isn't needed, I don't mind the performance hit pollReports = false; # this is a single person homeserver... let's save ourself the work admin.enableMakeRoomAdminCommand = true; commands.ban.defaultReasons = [ "spam" "harassment" "transphobia" "scam" ]; protections = { wordlist = { words = [ "tranny" "faggot" "ywnbaw" "nigger" ]; minutesBeforeTrusting = 0; }; }; }; }; }