{ config, pkgs, ... }: let matrix-alertmanager-receiver = pkgs.buildGoModule rec { pname = "matrix-alertmanager-receiver"; version = "0.1.2"; src = pkgs.fetchFromSourcehut { owner = "~fnux"; repo = "matrix-alertmanager-receiver"; rev = version; hash = "sha256-F6Cn0lmASAjWGEBCmyLdfz4r06fDTEfZQcynfA/RRtI="; }; vendorHash = "sha256-7tRCX9FzOsLXCTWWjLp3hr1kegt1dxsbCKfC7tICreo="; }; in { sops.secrets.nix-community-matrix-bot-token = { }; sops.templates."config.toml".content = '' Homeserver = "https://matrix-client.matrix.org" TargetRoomID = "!cBybDCkeRlSWfuaFvn:numtide.com" MXID = "@nix-community-matrix-bot:matrix.org" MXToken = "${config.sops.placeholder.nix-community-matrix-bot-token}" HTTPPort = 9088 HTTPAddress = "localhost" ''; sops.templates."config.toml".owner = "matrix-alertmanager-receiver"; users.users.matrix-alertmanager-receiver = { isSystemUser = true; group = "matrix-alertmanager-receiver"; }; users.groups.matrix-alertmanager-receiver = { }; systemd.services.matrix-alertmanager-receiver = { description = "Matrix Alertmanager Receiver"; after = [ "network.target" ]; wantedBy = [ "multi-user.target" ]; serviceConfig = { Type = "simple"; ExecStart = "${matrix-alertmanager-receiver}/bin/matrix-alertmanager-receiver -config ${config.sops.templates."config.toml".path}"; Restart = "always"; RestartSec = "10"; User = "matrix-alertmanager-receiver"; Group = "matrix-alertmanager-receiver"; }; }; }