feat!: make declarative version
This commit is contained in:
parent
cf3c5ef1f5
commit
f4d95c595e
13 changed files with 493 additions and 95 deletions
61
remote/hosted-module.nix
Normal file
61
remote/hosted-module.nix
Normal file
|
|
@ -0,0 +1,61 @@
|
|||
{ self, agenix }:
|
||||
{ config, lib, ... }:
|
||||
|
||||
let
|
||||
cfgCache = config.services.noisebell-cache;
|
||||
cfgDiscord = config.services.noisebell-discord;
|
||||
in
|
||||
{
|
||||
imports = [ agenix.nixosModules.default ];
|
||||
|
||||
users.groups.noisebell = { };
|
||||
|
||||
users.users.noisebell-cache.extraGroups = lib.mkIf cfgCache.enable [ "noisebell" ];
|
||||
users.users.noisebell-discord.extraGroups = lib.mkIf cfgDiscord.enable [ "noisebell" ];
|
||||
|
||||
age.secrets.noisebell-pi-to-cache-key = {
|
||||
file = "${self}/secrets/pi-to-cache-key.age";
|
||||
group = "noisebell";
|
||||
mode = "0440";
|
||||
};
|
||||
|
||||
age.secrets.noisebell-cache-to-pi-key = {
|
||||
file = "${self}/secrets/cache-to-pi-key.age";
|
||||
group = "noisebell";
|
||||
mode = "0440";
|
||||
};
|
||||
|
||||
age.secrets.noisebell-discord-token = {
|
||||
file = "${self}/secrets/discord-token.age";
|
||||
group = "noisebell";
|
||||
mode = "0440";
|
||||
};
|
||||
|
||||
age.secrets.noisebell-discord-webhook-secret = {
|
||||
file = "${self}/secrets/discord-webhook-secret.age";
|
||||
group = "noisebell";
|
||||
mode = "0440";
|
||||
};
|
||||
|
||||
services.noisebell-cache = lib.mkIf cfgCache.enable {
|
||||
piApiKeyFile = lib.mkDefault config.age.secrets.noisebell-cache-to-pi-key.path;
|
||||
inboundApiKeyFile = lib.mkDefault config.age.secrets.noisebell-pi-to-cache-key.path;
|
||||
outboundWebhooks = lib.mkDefault (
|
||||
lib.optional cfgDiscord.enable {
|
||||
url = "http://127.0.0.1:${toString cfgDiscord.port}/webhook";
|
||||
secretFile = config.age.secrets.noisebell-discord-webhook-secret.path;
|
||||
}
|
||||
);
|
||||
};
|
||||
|
||||
services.noisebell-discord = lib.mkIf cfgDiscord.enable (
|
||||
{
|
||||
discordTokenFile = lib.mkDefault config.age.secrets.noisebell-discord-token.path;
|
||||
webhookSecretFile = lib.mkDefault config.age.secrets.noisebell-discord-webhook-secret.path;
|
||||
}
|
||||
// lib.optionalAttrs cfgCache.enable {
|
||||
cacheUrl = lib.mkDefault "http://127.0.0.1:${toString cfgCache.port}";
|
||||
imageBaseUrl = lib.mkDefault "https://${cfgCache.domain}/image";
|
||||
}
|
||||
);
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue