❄️ Dotfiles for our NixOS system configuration.

feat(services): ntfy

Chloe 5f6e2b05 7581e774

Changed files
+63
secrets
services
+14
secrets/ntfy.age
···
+
-----BEGIN AGE ENCRYPTED FILE-----
+
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IGN2U2dKQSArMEN0
+
R2FMSkM5Uk05Nk85MXUzZnV2QWcxeHZSU3RCcHl2dDdxb1hFYnhnCnhPWXJHRm9H
+
NHN2WnpRSUFCdWEyRzdyUThBNFZHc0R5ZjlKbzA5TmZmemMKLT4gc3NoLWVkMjU1
+
MTkgMUNUOTd3IFE5aFM2MUV6SGVURzZTWlh3MFhORkJQd0FPSmlTaG5SQTFndDJQ
+
RHhBMmMKZVhEY0x6S2VvZnhMQmxld2dCTDZHNW9oVndpV25DQWh1eTVmT1JicTkz
+
bwotPiBzc2gtZWQyNTUxOSBlUDNUdFEgVUI5WlhhQnJaZmpXWEJ6S3E2THdmbnJo
+
dHpEdVgrYUVjR2FOdWhJSVlsNAplMUsxbnE2WG1hMk92M1BHWnMzVUFna1Vmd2RT
+
Q3RZYVp0SUh3VWdmTDZzCi0+IC9jLWdyZWFzZQpNYnNrWmFIYnFMa1JBVEQ2Rk10
+
NEZ6K1NxL2F0U3RRWXF6RUJ0WkhzNDJhayttNzBLSUJyYXJZYzJuVQotLS0gRmRx
+
cXVJdkdXUjhXOW1hK0toMm5WRFdoUCtBMVlBRnVaUWhmaCtUdGt4TQqZB0kDYJca
+
nqsFpM/1suAzZW2UcaIgZyErWtztrZtt6xZZubI4jSbtk/DpNDXheDeP/AF8XH2B
+
Dlk0cvzyv2DSMW30N3QqGsg2Kmhb
+
-----END AGE ENCRYPTED FILE-----
+1
secrets/secrets.nix
···
"caddy.age".publicKeys = keys;
"glance.age".publicKeys = keys;
"lanyard.age".publicKeys = keys;
+
"ntfy.age".publicKeys = keys;
}
+1
services/default.nix
···
./glance
./bluesky-pds
./lanyard
+
./ntfy
];
}
+47
services/ntfy/default.nix
···
+
{ config, ... }:
+
+
{
+
age.secrets.ntfy = {
+
file = ../../secrets/ntfy.age;
+
mode = "600";
+
};
+
+
services.ntfy-sh = {
+
enable = true;
+
user = "ntfy";
+
group = "ntfy";
+
+
settings = {
+
base-url = "https://notify.sappho.systems";
+
behind-proxy = true;
+
listen-http = "7070";
+
+
cache-file = "/var/lib/ntfy/cache.db";
+
attachment-cache-dir = "/var/lib/ntfy/attachments";
+
attachment-total-size-limit = "2G";
+
attachment-file-size-limit = "100M";
+
attachment-expiry-duration = "20h";
+
+
enable-login = true;
+
auth-file = "/var/lib/ntfy/auth.db";
+
auth-default-access = "deny-all";
+
+
web-push-public-key = "BHJ3WXz88sWJHp-7d3O5zhkUT1yiTHQlRyWYFbmQbOJU4b5pDIhwL7hqJKXTIbCp0UFc-SfR5Rc08P8wP9abt7A";
+
web-push-private-key = "${config.age.secrets.ntfy.path}";
+
web-push-file = "/var/lib/ntfy/webpush.db";
+
web-push-email-address = "chloe@sapphic.moe";
+
};
+
};
+
+
services.caddy.virtualHosts."notify.sappho.systems" = {
+
listenAddresses = [ "::" ];
+
extraConfig = ''
+
import common
+
import tls_cloudflare
+
reverse_proxy http://127.0.0.1:7070
+
'';
+
};
+
+
# Firewall
+
settings.firewall.allowedTCPPorts = [ 7070 ];
+
}