dotfiles/modules/services/caddy.nix

34 lines
625 B
Nix
Raw Normal View History

2022-10-02 15:24:25 +00:00
{ config, pkgs, lib, ... }:
let
in {
options = {
caddyRoutes = lib.mkOption {
type = lib.types.listOf lib.types.attrs;
description = "Caddy JSON routes for http servers";
2022-10-02 15:24:25 +00:00
};
};
config = {
services.caddy = {
enable = true;
adapter = "''"; # Required to enable JSON
configFile = pkgs.writeText "Caddyfile" (builtins.toJSON {
apps.http.servers.main = {
listen = [ ":443" ];
routes = config.caddyRoutes;
};
});
2022-10-02 15:24:25 +00:00
};
2022-10-03 12:19:29 +00:00
networking.firewall.allowedTCPPorts = [ 80 443 ];
networking.firewall.allowedUDPPorts = [ 443 ];
2022-10-02 15:24:25 +00:00
};
}