{ config, pkgs, ... }: { c3d2 = { deployment.server = "server10"; hq.statistics.enable = true; }; microvm = { mem = 1024; vcpu = 8; }; networking.hostName = "buzzrelay"; # Don't let journald spam the disk services.journald.extraConfig = '' Storage=volatile ''; sops = { defaultSopsFile = ./secrets.yaml; secrets = { "buzzrelay/privKey".owner = config.services.buzzrelay.user; "buzzrelay/pubKey".owner = config.services.buzzrelay.user; "buzzrelay/redis/password".owner = config.services.buzzrelay.user; }; }; services = { buzzrelay = { enable = true; hostName = "relay.fedi.buzz"; privKeyFile = config.sops.secrets."buzzrelay/privKey".path; pubKeyFile = config.sops.secrets."buzzrelay/pubKey".path; redis = { connection = "redis://fedi.buzz:6379/"; passwordFile = config.sops.secrets."buzzrelay/redis/password".path; }; }; nginx = { enable = true; virtualHosts."relay.fedi.buzz" = { forceSSL = true; enableACME = true; locations."/".proxyPass = "http://127.0.0.1:${toString config.services.buzzrelay.listenPort}/"; }; }; postgresql = { package = pkgs.postgresql_16; settings.log_min_duration_statement = 50; upgrade.stopServices = [ "buzzrelay" ]; ensureUsers = [ { name = "collectd"; ensurePermissions."DATABASE ${config.services.buzzrelay.database}" = "ALL PRIVILEGES"; } ]; }; collectd.plugins.postgresql = '' Statement "select count(distinct id) from follows;" Type gauge InstancePrefix "unique" ValuesFrom "count" Statement "select count(id) from follows;" Type gauge InstancePrefix "total" ValuesFrom "count" Param database "${config.services.buzzrelay.database}" Query unique_followers Query total_follows ''; }; system.stateVersion = "22.11"; }