{ config, pkgs, lib, ... }: { imports = [ ../../modules/base-server.nix ]; networking = { hostName = "Spacebar-synapse"; interfaces.ens18.ipv4.addresses = [ { address = "192.168.1.5"; prefixLength = 24; } ]; interfaces.ens19.ipv4.addresses = [ { address = "10.10.11.5"; prefixLength = 16; } ]; }; # Discord bridge services.matrix-appservice-discord = { enable = false; # Alicia - figure out secret first... environmentFile = /etc/keyring/matrix-appservice-discord/tokens.env; settings = { bridge = { domain = "spacebar.chat"; homeserverUrl = "https://matrix.spacebar.chat"; }; database = { connString = "postgres://postgres@192.168.1.3/matrix-appservice-discord"; }; }; }; services.matrix-synapse = { enable = true; settings = { server_name = "spacebar.chat"; enable_registration = false; registration_shared_secret_path = "/var/lib/matrix-synapse/registration_shared_secret.txt"; # Alicia - types: https://github.com/NixOS/nixpkgs/blob/release-22.11/nixos/modules/services/matrix/synapse.nix#L410 listeners = [ { port = 8008; bind_addresses = [ "192.168.1.5" "127.0.0.1" ]; type = "http"; tls = false; x_forwarded = true; resources = [ { names = [ "client" "federation" ]; compress = true; } ]; } ]; dynamic_thumbnails = true; presence = { enable = true; update_interval = 60; }; url_preview_enabled = true; database = { name = "psycopg2"; args = { user = "matrix-synapse-spacebar-chat"; password = "somepassword"; database = "matrix-synapse-spacebar-chat"; host = "192.168.1.3"; }; }; app_service_config_files = [ ]; }; plugins = with pkgs.matrix-synapse-plugins; [ ]; }; # Alicia - doesnt work yet... until in nixpkgs... services.draupnir = { enable = true; pantalaimon = { enable = true; username = "draupnir"; passwordFile = "/etc/draupnir-password"; options = { homeserver = "http://localhost:8008"; ssl = false; }; }; managementRoom = "#draupnir-mgmt:spacebar.chat"; homeserverUrl = "http://localhost:8008"; verboseLogging = false; settings = { recordIgnoredInvites = false; automaticallyRedactForReasons = [ "*" ]; fasterMembershipChecks = true; backgroundDelayMS = 100; pollReports = true; admin.enableMakeRoomAdminCommand = true; commands.ban.defaultReasons = [ "spam" "harassment" "transphobia" "scam" ]; protections = { wordlist = { words = [ "tranny" "faggot" ]; minutesBeforeTrusting = 0; }; }; }; }; system.stateVersion = "22.11"; # DO NOT EDIT! }