{ config, ... }: { users.groups.noisebell = {}; users.users.noisebell-cache.extraGroups = [ "noisebell" ]; users.users.noisebell-discord.extraGroups = [ "noisebell" ]; age.secrets.noisebell-pi-api-key = { file = ../secrets/noisebell-pi-api-key.age; group = "noisebell"; mode = "0440"; }; age.secrets.noisebell-inbound-api-key = { file = ../secrets/noisebell-inbound-api-key.age; group = "noisebell"; mode = "0440"; }; age.secrets.noisebell-discord-token = { file = ../secrets/noisebell-discord-token.age; group = "noisebell"; mode = "0440"; }; age.secrets.noisebell-discord-webhook-secret = { file = ../secrets/noisebell-discord-webhook-secret.age; group = "noisebell"; mode = "0440"; }; services.noisebell-cache = { enable = true; port = 3003; domain = "noisebell.extremist.software"; piAddress = "http://noisebell:80"; piApiKeyFile = config.age.secrets.noisebell-pi-api-key.path; inboundApiKeyFile = config.age.secrets.noisebell-inbound-api-key.path; outboundWebhooks = [ { url = "https://discord.noisebell.extremist.software/webhook"; secretFile = config.age.secrets.noisebell-discord-webhook-secret.path; } ]; }; services.noisebell-discord = { enable = true; port = 3004; domain = "discord.noisebell.extremist.software"; discordTokenFile = config.age.secrets.noisebell-discord-token.path; channelId = "1034916379486322718"; webhookSecretFile = config.age.secrets.noisebell-discord-webhook-secret.path; }; services.noisebell-rss = { enable = true; domain = "rss.noisebell.extremist.software"; cacheUrl = "http://localhost:3003"; }; }