feat: add remote, with rss, cache, discord, and zulip
This commit is contained in:
parent
50ec63a474
commit
83baab68e0
32 changed files with 6615 additions and 40 deletions
33
pi/flake.nix
33
pi/flake.nix
|
|
@ -38,9 +38,19 @@
|
|||
description = "HTTP port for the status endpoint.";
|
||||
};
|
||||
|
||||
endpointUrlFile = lib.mkOption {
|
||||
endpointUrl = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
description = "Webhook endpoint URL to POST state changes to.";
|
||||
};
|
||||
|
||||
apiKeyFile = lib.mkOption {
|
||||
type = lib.types.path;
|
||||
description = "Path to a file containing the endpoint URL (e.g. an agenix secret).";
|
||||
description = "Path to a file containing the outbound API key for the cache endpoint.";
|
||||
};
|
||||
|
||||
inboundApiKeyFile = lib.mkOption {
|
||||
type = lib.types.path;
|
||||
description = "Path to a file containing the inbound API key for authenticating GET requests.";
|
||||
};
|
||||
|
||||
retryAttempts = lib.mkOption {
|
||||
|
|
@ -78,6 +88,12 @@
|
|||
default = 5;
|
||||
description = "Seconds to wait before systemd restarts the service on failure.";
|
||||
};
|
||||
|
||||
watchdogSecs = lib.mkOption {
|
||||
type = lib.types.ints.positive;
|
||||
default = 30;
|
||||
description = "Watchdog timeout in seconds. The service is restarted if it fails to notify systemd within this interval.";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
|
|
@ -109,17 +125,23 @@
|
|||
NOISEBELL_RETRY_ATTEMPTS = toString cfg.retryAttempts;
|
||||
NOISEBELL_RETRY_BASE_DELAY_SECS = toString cfg.retryBaseDelaySecs;
|
||||
NOISEBELL_HTTP_TIMEOUT_SECS = toString cfg.httpTimeoutSecs;
|
||||
NOISEBELL_ENDPOINT_URL = cfg.endpointUrl;
|
||||
NOISEBELL_BIND_ADDRESS = cfg.bindAddress;
|
||||
NOISEBELL_ACTIVE_LOW = if cfg.activeLow then "true" else "false";
|
||||
NOISEBELL_COMMIT = self.shortRev or "dirty";
|
||||
RUST_LOG = "info";
|
||||
};
|
||||
|
||||
script = ''
|
||||
export NOISEBELL_ENDPOINT_URL="$(cat ${cfg.endpointUrlFile})"
|
||||
export NOISEBELL_API_KEY="$(cat ${cfg.apiKeyFile})"
|
||||
export NOISEBELL_INBOUND_API_KEY="$(cat ${cfg.inboundApiKeyFile})"
|
||||
exec ${bin}
|
||||
'';
|
||||
|
||||
serviceConfig = {
|
||||
Type = "notify";
|
||||
NotifyAccess = "all";
|
||||
WatchdogSec = cfg.watchdogSecs;
|
||||
Restart = "on-failure";
|
||||
RestartSec = cfg.restartDelaySecs;
|
||||
User = "noisebell";
|
||||
|
|
@ -153,5 +175,10 @@
|
|||
./hardware-configuration.nix
|
||||
];
|
||||
};
|
||||
|
||||
nixosConfigurations.bootstrap = nixpkgs.lib.nixosSystem {
|
||||
system = "aarch64-linux";
|
||||
modules = [ ./bootstrap.nix ];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue