20 hostname = config.networking.hostName;
22 hostname == "van-vc2" ||
25 www-urls = config.lib.wwwURLs or { };
27 get-url = url-or-attrs:
28 if ! isAttrs url-or-attrs then url-or-attrs
29 else url-or-attrs.url;
31 get-cfg = url-or-attrs:
32 if ! isAttrs url-or-attrs then ""
36 if k == "url" then acc
37 else acc + "${k} ${v};\n"
42 services.nginx = maybe' {
43 enable = trace "Nginx for www.func.xyz Enabled" true;
44 virtualHosts."www.func.xyz" = {
48 (location: url-or-attrs:
49 nameValuePair location {
50 proxyPass = "${get-url url-or-attrs}$is_args$args";
53 proxy_ssl_trusted_certificate ${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt;
54 proxy_ssl_session_reuse on;
55 proxy_ssl_server_name on;
56 proxy_set_header Host $host;
57 proxy_set_header X-Real-IP $remote_addr;
58 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
59 proxy_set_header X-Forwarded-Proto $scheme;
60 proxy_set_header X-Forwarded-Host $host;
61 proxy_set_header X-Forwarded-Server $host;
63 '' + get-cfg url-or-attrs;
68 security.acme = maybe' {
71 "www.func.xyz".email = "thomas.cat@func.xyz";