diff options
author | Alan Pearce | 2024-06-27 13:00:47 +0200 |
---|---|---|
committer | Alan Pearce | 2024-06-27 13:00:47 +0200 |
commit | e44b42f082aee425459182711649283986ef5e46 (patch) | |
tree | 5cc586470dbc0a2ddaec2f0ee207067df8709f88 /modules/darwin/caddy/vhost-options.nix | |
parent | 1cd639cd24a6095359d496fb8a90d9b45f3203d7 (diff) | |
download | nix-packages-e44b42f082aee425459182711649283986ef5e46.tar.lz nix-packages-e44b42f082aee425459182711649283986ef5e46.tar.zst nix-packages-e44b42f082aee425459182711649283986ef5e46.zip |
darwin/caddy: init module
Diffstat (limited to 'modules/darwin/caddy/vhost-options.nix')
-rw-r--r-- | modules/darwin/caddy/vhost-options.nix | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/modules/darwin/caddy/vhost-options.nix b/modules/darwin/caddy/vhost-options.nix new file mode 100644 index 0000000..c092f2d --- /dev/null +++ b/modules/darwin/caddy/vhost-options.nix @@ -0,0 +1,77 @@ +{ cfg }: +{ config, lib, name, ... }: +let + inherit (lib) literalExpression mkOption types; +in +{ + options = { + + hostName = mkOption { + type = types.str; + default = name; + description = "Canonical hostname for the server."; + }; + + serverAliases = mkOption { + type = with types; listOf str; + default = [ ]; + example = [ "www.example.org" "example.org" ]; + description = '' + Additional names of virtual hosts served by this virtual host configuration. + ''; + }; + + listenAddresses = mkOption { + type = with types; listOf str; + description = '' + A list of host interfaces to bind to for this virtual host. + ''; + default = [ ]; + example = [ "127.0.0.1" "::1" ]; + }; + + useACMEHost = mkOption { + type = types.nullOr types.str; + default = null; + description = '' + A host of an existing Let's Encrypt certificate to use. + This is mostly useful if you use DNS challenges but Caddy does not + currently support your provider. + + *Note that this option does not create any certificates, nor + does it add subdomains to existing ones – you will need to create them + manually using [](#opt-security.acme.certs).* + ''; + }; + + logFormat = mkOption { + type = types.lines; + default = '' + output file ${cfg.logDir}/access-${config.hostName}.log + ''; + defaultText = '' + output file ''${config.services.caddy.logDir}/access-''${hostName}.log + ''; + example = literalExpression '' + mkForce ''' + output discard + '''; + ''; + description = '' + Configuration for HTTP request logging (also known as access logs). See + <https://caddyserver.com/docs/caddyfile/directives/log#log> + for details. + ''; + }; + + extraConfig = mkOption { + type = types.lines; + default = ""; + description = '' + Additional lines of configuration appended to this virtual host in the + automatically generated `Caddyfile`. + ''; + }; + + }; +} |