all repos — nixfiles @ 16f0177c723b27c97c59e196fbd42cb599d768a7

System and user configuration, managed by nix and home-manager

dev: enable custom error pages for searchix

Alan Pearce
commit

16f0177c723b27c97c59e196fbd42cb599d768a7

parent

7e25c93e451d2c84ee4161191778b90e1ac667a7

2 files changed, 129 insertions(+), 79 deletions(-)

changed files
M system/marvin.nixsystem/marvin.nix
@@ -12,6 +12,11 @@ <personal/modules/darwin/caddy>
srvos.modules.darwin.desktop ]; + local.web = { + enable = true; + projectRoot = "/Users/alan/projects"; + }; + services.caddy = { user = "root"; group = "wheel";
M system/settings/dev.nixsystem/settings/dev.nix
@@ -1,90 +1,135 @@
-{ ... }: { - services.caddy = { - enable = true; - virtualHosts = - let - local_tls = '' - tls { - issuer internal { - ca local - } - } - ''; - in - { - "localhost" = { - logFormat = "output discard"; - extraConfig = '' - ${local_tls} - acme_server { - allow { - domains *.test *.localhost +{ config +, lib +, pkgs +, ... +}: +with lib; + +let + cfg = config.local.web; +in +{ + options.local.web = { + enable = mkEnableOption "Local configuration of caddy"; + + projectRoot = mkOption { + default = "/home/alan/projects"; + type = types.str; + description = "Where projects are stored"; + }; + }; + + config = mkIf cfg.enable { + services.caddy = { + enable = true; + virtualHosts = + let + local_tls = '' + tls { + issuer internal { + ca local } } ''; - }; - # need to test forwarding behaviour - "alanpearce.localhost" = { - logFormat = "output discard"; - serverAliases = [ - # remember to update /etc/hosts - "alanpearce.test" - ]; - extraConfig = '' - ${local_tls} - reverse_proxy http://alanpearce.localhost:8080 { - transport http { - dial_timeout 1s - compression off + in + { + "localhost" = { + logFormat = "output discard"; + extraConfig = '' + ${local_tls} + acme_server { + allow { + domains *.test *.localhost + } + } + ''; + }; + # need to test forwarding behaviour + "alanpearce.localhost" = { + logFormat = "output discard"; + serverAliases = [ + # remember to update /etc/hosts + "alanpearce.test" + ]; + extraConfig = '' + ${local_tls} + reverse_proxy http://alanpearce.localhost:8080 { + transport http { + dial_timeout 1s + compression off + } + } + ''; + }; + "elgit.localhost" = { + logFormat = "output discard"; + extraConfig = '' + ${local_tls} + reverse_proxy http://127.0.0.1:5555 { + transport http { + dial_timeout 1s + compression off + } + } + ''; + }; + "barkeep.localhost" = { + logFormat = "output discard"; + extraConfig = '' + ${local_tls} + reverse_proxy http://localhost:8081 { + transport http { + dial_timeout 1s + compression off + } + } + ''; + }; + "searchix.localhost" = { + logFormat = "output discard"; + extraConfig = '' + root ${cfg.projectRoot}/alanpearce.eu/searchix/frontend/ + handle /static/* { + file_server } - } - ''; - }; - "elgit.localhost" = { - logFormat = "output discard"; - extraConfig = '' - ${local_tls} - reverse_proxy http://127.0.0.1:5555 { - transport http { - dial_timeout 1s - compression off + handle_errors { + rewrite * /error.html + templates + file_server } - } - ''; - }; - "searchix.localhost" = { - logFormat = "output discard"; - extraConfig = '' - reverse_proxy http://localhost:3000 { - transport http { - dial_timeout 1s - compression off + handle { + reverse_proxy http://localhost:3000 { + transport http { + dial_timeout 1s + compression off + } + } } - } - ''; - }; - "perplexica-backend.localhost" = { - logFormat = "output discard"; - extraConfig = '' - reverse_proxy http://localhost:8339 { - transport http { - dial_timeout 1s - compression off + ''; + }; + "perplexica-backend.localhost" = { + logFormat = "output discard"; + extraConfig = '' + reverse_proxy http://localhost:8339 { + transport http { + dial_timeout 1s + compression off + } } - } - ''; - }; - "perplexica.localhost" = { - logFormat = "output discard"; - extraConfig = '' - reverse_proxy http://localhost:8338 { - transport http { - dial_timeout 1s - compression off + ''; + }; + "perplexica.localhost" = { + logFormat = "output discard"; + extraConfig = '' + reverse_proxy http://localhost:8338 { + transport http { + dial_timeout 1s + compression off + } } - } - ''; + ''; + }; }; - }; + }; }; }