{
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
}
}
'';
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://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
}
}
'';
};
"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 = ''
handle_errors {
rewrite * /error.html
templates
file_server
}
handle {
reverse_proxy http://localhost:3000 {
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
}
}
'';
};
"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
}
}
'';
};
};
};
};
}
system/settings/dev.nix (view raw)