❄️ Dotfiles for our NixOS system configuration.
1{ config, pkgs, ... }:
2
3{
4 age.secrets.caddy = {
5 file = ../../secrets/caddy.age;
6 mode = "600";
7 };
8
9 services.caddy = {
10 enable = true;
11 package = pkgs.caddy.withPlugins {
12 plugins = [ "github.com/caddy-dns/cloudflare@v0.2.1" ];
13 hash = "sha256-iRzpN9awuEFsc7hqKzOMNiCFFEv833xhd4LM+VFQedI=";
14 };
15 environmentFile = config.age.secrets.caddy.path;
16 globalConfig = ''
17 email chloe@sapphic.moe
18 '';
19 extraConfig = ''
20 (tls_cloudflare) {
21 tls {
22 dns cloudflare {env.CF_API_TOKEN}
23 resolvers 8.8.8.8 1.1.1.1
24 }
25 }
26 (common) {
27 encode zstd gzip
28 }
29 '';
30 logFormat = ''
31 level info
32 format json
33 '';
34 };
35
36 settings.firewall.allowedTCPPorts = [
37 80
38 443
39 ];
40
41 settings.firewall.allowedUDPPorts = [ 443 ];
42}