system/settings/dev.nix (view raw)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 | {
config,
lib,
...
}:
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
}
}
'';
in
{
"localhost" = {
logFormat = "output discard";
extraConfig = ''
${local_tls}
acme_server {
allow {
domains *.test *.localhost
}
}
'';
};
"alin.localhost" = {
logFormat = "output discard";
serverAliases = [
"alin.test"
"alanpearce.test"
"alanpearce.localhost"
];
extraConfig = ''
${local_tls}
reverse_proxy http://localhost:8080 {
transport http {
dial_timeout 1s
compression off
}
}
'';
};
"elgit.localhost" = {
logFormat = "output discard";
extraConfig = ''
${local_tls}
reverse_proxy http://localhost:5555 {
transport http {
dial_timeout 1s
compression off
}
}
'';
};
"searchix.localhost" = {
logFormat = "output discard";
extraConfig = ''
handle_errors {
rewrite * /error.html
templates
file_server
}
handle {
reverse_proxy http://localhost:3000 {
transport http {
dial_timeout 1s
compression off
}
}
}
'';
};
"auth.localhost" = {
logFormat = "output discard";
extraConfig = ''
reverse_proxy http://localhost:8082
'';
};
"xhain.localhost" = {
logFormat = "output discard";
extraConfig = ''
root * /Users/alan/projects/github.com/xHain-hackspace/xhain-website/public/
file_server
'';
};
"hugo.localhost" = {
logFormat = "output discard";
extraConfig = ''
reverse_proxy http://localhost:1313 {
transport http {
dial_timeout 1s
compression off
}
}
'';
};
};
};
};
}
|