Compare commits

...

2 commits

Author SHA1 Message Date
Jet
85ec8e01fe
fix: website to working webhooks version 2026-03-26 20:23:47 -07:00
Jet
802de6967f
fix: caddy override 2026-03-25 22:50:37 -07:00
4 changed files with 29 additions and 18 deletions

View file

@ -38,6 +38,7 @@
owner = "matrix-synapse"; owner = "matrix-synapse";
}; };
ntfy-admin-hash.file = ./secrets/ntfy-admin-hash.age; ntfy-admin-hash.file = ./secrets/ntfy-admin-hash.age;
webhook-secret.owner = "stalwart-mail";
}; };
# Bootloader # Bootloader
@ -146,6 +147,8 @@
services.jetpham-website = { services.jetpham-website = {
enable = true; enable = true;
tor.enable = true; tor.enable = true;
qaMailDomain = "jetpham.com";
qaReplyDomain = "jetpham.com";
}; };
# Allow Tailscale traffic # Allow Tailscale traffic

14
flake.lock generated
View file

@ -470,11 +470,11 @@
"nixpkgs": "nixpkgs_2" "nixpkgs": "nixpkgs_2"
}, },
"locked": { "locked": {
"lastModified": 1773803479, "lastModified": 1774581174,
"narHash": "sha256-GD6i1F2vrSxbsmbS92+8+x3DbHOJ+yrS78Pm4xigW4M=", "narHash": "sha256-258qgkMkYPkJ9qpIg63Wk8GoIbVjszkGGPU1wbVHYTk=",
"owner": "oxalica", "owner": "oxalica",
"repo": "rust-overlay", "repo": "rust-overlay",
"rev": "f17186f52e82ec5cf40920b58eac63b78692ac7c", "rev": "a313afc75b85fc77ac154bf0e62c36f68361fd0b",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -553,11 +553,11 @@
"rust-overlay": "rust-overlay_2" "rust-overlay": "rust-overlay_2"
}, },
"locked": { "locked": {
"lastModified": 1774078882, "lastModified": 1774581798,
"narHash": "sha256-0ABtMFWqKsESSX2E4Z+uY1VXCNb9PzZ/ke7HmpTkflE=", "narHash": "sha256-WimRZfiKOR8/yxxpmEx1kFP4IM/Ahq692fSvPLhxUek=",
"ref": "refs/heads/main", "ref": "refs/heads/main",
"rev": "ede986080a538eced16490e47c638398c2e4c49f", "rev": "38af26d959bf4934155d85f15345f0d83252dab9",
"revCount": 39, "revCount": 48,
"type": "git", "type": "git",
"url": "https://git.extremist.software/jet/website" "url": "https://git.extremist.software/jet/website"
}, },

View file

@ -1,18 +1,9 @@
{ config, pkgs, ... }: { config, pkgs, ... }:
let
caddyPkg = pkgs.callPackage "${pkgs.path}/pkgs/by-name/ca/caddy/package.nix" {
buildGo125Module = pkgs.buildGo126Module;
};
caddyWithPlugins = pkgs.callPackage "${pkgs.path}/pkgs/by-name/ca/caddy/plugins.nix" {
caddy = caddyPkg;
};
in
{ {
services.caddy = { services.caddy = {
enable = true; enable = true;
package = caddyWithPlugins { package = pkgs.caddy.withPlugins {
plugins = [ "github.com/mholt/caddy-ratelimit@v0.1.0" ]; plugins = [ "github.com/mholt/caddy-ratelimit@v0.1.0" ];
hash = "sha256-Ko4kJJiBUGX/2x6O+Q0f7hrf6r7YkVCQPRV04Adgedw="; hash = "sha256-Ko4kJJiBUGX/2x6O+Q0f7hrf6r7YkVCQPRV04Adgedw=";
}; };

View file

@ -45,11 +45,28 @@
user = "admin"; user = "admin";
secret = "%{file:/run/agenix/stalwart-admin}%"; secret = "%{file:/run/agenix/stalwart-admin}%";
}; };
session.hook."qa-webhook" = {
enable = "contains(recipients, 'qa@jetpham.com')";
url = "http://127.0.0.1:3003/api/webhook";
stages = [ "data" ];
auth = {
username = "qa-webhook";
secret = "%{file:${config.age.secrets.webhook-secret.path}}%";
};
options = {
"tempfail-on-error" = true;
"max-response-size" = 1048576;
};
};
}; };
}; };
# Allow Stalwart to read the ACME certificate procured for Caddy and the agenix secret # Allow Stalwart to read the ACME certificate procured for Caddy and the agenix secret
systemd.services.stalwart.serviceConfig.SupplementaryGroups = [ "acme" ]; systemd.services.stalwart.serviceConfig.SupplementaryGroups = [ "acme" ];
systemd.services.stalwart.serviceConfig.ReadOnlyPaths = [ "/run/agenix/stalwart-admin" ]; systemd.services.stalwart.serviceConfig.ReadOnlyPaths = [
"/run/agenix/stalwart-admin"
config.age.secrets.webhook-secret.path
];
} }