feat: add noisebell module and all secrets

:wq
This commit is contained in:
Jet Pham 2026-03-10 17:45:31 -07:00
parent 188b752420
commit 5ecfb04abe
No known key found for this signature in database
10 changed files with 334 additions and 2 deletions

62
modules/noisebell.nix Normal file
View file

@ -0,0 +1,62 @@
{ config, ... }:
{
users.groups.noisebell = {};
users.users.noisebell-cache.extraGroups = [ "noisebell" ];
users.users.noisebell-discord.extraGroups = [ "noisebell" ];
users.users.noisebell-rss.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";
};
age.secrets.noisebell-rss-webhook-secret = {
file = ../secrets/noisebell-rss-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; }
{ url = "https://rss.noisebell.extremist.software/webhook"; secretFile = config.age.secrets.noisebell-rss-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";
webhookSecretFile = config.age.secrets.noisebell-rss-webhook-secret.path;
};
}