1{ lib, ... }:
2{
3 options = {
4 tls = lib.mkOption {
5 type = lib.types.enum [
6 "tls"
7 "no-tls"
8 ];
9 default = "tls";
10 description = ''
11 Enable or disable TLS. If true (enabled) the key and
12 certificate must be configured for nghttpx.
13
14 Please see https://nghttp2.org/documentation/nghttpx.1.html#cmdoption-nghttpx-f
15 for more detail.
16 '';
17 };
18
19 sni-fwd = lib.mkOption {
20 type = lib.types.bool;
21 default = false;
22 description = ''
23 When performing a match to select a backend server, SNI host
24 name received from the client is used instead of the request
25 host. See --backend option about the pattern match.
26
27 Please see https://nghttp2.org/documentation/nghttpx.1.html#cmdoption-nghttpx-f
28 for more detail.
29 '';
30 };
31
32 api = lib.mkOption {
33 type = lib.types.bool;
34 default = false;
35 description = ''
36 Enable API access for this frontend. This enables you to
37 dynamically modify nghttpx at run-time therefore this feature
38 is disabled by default and should be turned on with care.
39
40 Please see https://nghttp2.org/documentation/nghttpx.1.html#cmdoption-nghttpx-f
41 for more detail.
42 '';
43 };
44
45 healthmon = lib.mkOption {
46 type = lib.types.bool;
47 default = false;
48 description = ''
49 Make this frontend a health monitor endpoint. Any request
50 received on this frontend is responded to with a 200 OK.
51
52 Please see https://nghttp2.org/documentation/nghttpx.1.html#cmdoption-nghttpx-f
53 for more detail.
54 '';
55 };
56
57 proxyproto = lib.mkOption {
58 type = lib.types.bool;
59 default = false;
60 description = ''
61 Accept PROXY protocol version 1 on frontend connection.
62
63 Please see https://nghttp2.org/documentation/nghttpx.1.html#cmdoption-nghttpx-f
64 for more detail.
65 '';
66 };
67 };
68}