This commit is contained in:
flowey
2026-09-22 11:11:33 -05:00
parent 363a02f865
commit 2a343542cd
4 changed files with 45 additions and 41 deletions
+4
View File
@@ -53,6 +53,10 @@ in
systemd.services.gitea.serviceConfig.FailureAction = "exit-force"; systemd.services.gitea.serviceConfig.FailureAction = "exit-force";
}; };
net.expose.tcp = [ 3000 ]; net.expose.tcp = [ 3000 ];
miscProperties.nginx = {
domain = "git.floweytf.com";
port = 3000;
};
}; };
ci-runner = ci-runner =
+3
View File
@@ -150,6 +150,9 @@ mkContainer {
net.access = [ { to = "@internet"; } ]; net.access = [ { to = "@internet"; } ];
svc.autoStart = true; svc.autoStart = true;
miscProperties.nginx = {
domain = "mail.floweytf.com";
};
net.forward.tcp = [ net.forward.tcp = [
25 25
993 993
+4
View File
@@ -38,4 +38,8 @@ mkContainer {
environment.JAVA_OPTS = "-Xmx128M"; environment.JAVA_OPTS = "-Xmx128M";
}; };
net.expose.tcp = [ 8080 ]; net.expose.tcp = [ 8080 ];
miscProperties.nginx = {
domain = "maven.floweytf.com";
port = 8080;
};
} }
+22 -29
View File
@@ -7,7 +7,7 @@
... ...
}: }:
let let
inherit (dsl) mkContainer; inherit (dsl) mkContainer collectContainers;
inherit (hostInfo.paths) data; inherit (hostInfo.paths) data;
mkNginxConfig = mkNginxConfig =
@@ -40,9 +40,6 @@ let
defaultLoc = lib.optionalAttrs (upstream != null) { defaultLoc = lib.optionalAttrs (upstream != null) {
"/" = { "/" = {
proxyWebsockets = websockets; proxyWebsockets = websockets;
# avoid startup error when containers aren't registered yet
# proxyPass is left unset for that reason, so recommendedProxySettings
# won't auto-include its headers here - set them manually to match
extraConfig = '' extraConfig = ''
set $backend "${upstream.container.name}:${toString upstream.port}"; set $backend "${upstream.container.name}:${toString upstream.port}";
proxy_pass http://$backend; proxy_pass http://$backend;
@@ -157,24 +154,19 @@ let
up = container: port: { inherit container port; }; up = container: port: { inherit container port; };
nginxSetup = discovered = collectContainers "nginx" containers;
hostAddr:
mkNginxConfig { discoveredVhosts = map (
email = "floweydev@gmail.com"; { container, data }:
resolver = hostAddr; { inherit (data) domain; }
vhosts = [ // lib.optionalAttrs (data ? port) { upstream = up container data.port; }
{ // lib.optionalAttrs (data ? websockets) { inherit (data) websockets; }
domain = "devenv.floweytf.com"; // lib.optionalAttrs (data ? redirect) { inherit (data) redirect; }
upstream = up containers.devenv 8080; // lib.optionalAttrs (data ? listenHttp) { inherit (data) listenHttp; }
} // lib.optionalAttrs (data ? extraLocations) { inherit (data) extraLocations; }
{ ) discovered;
domain = "maven.floweytf.com";
upstream = up containers.maven 8080; extraVhosts = [
}
{
domain = "git.floweytf.com";
upstream = up containers.git 3000;
}
{ {
domain = "utils.floweytf.com"; domain = "utils.floweytf.com";
redirect = false; redirect = false;
@@ -186,20 +178,21 @@ let
}; };
}; };
} }
{
# no upstream, vhost only exists for certs
domain = "mail.floweytf.com";
}
]; ];
};
upstreamContainers = map (e: e.container) (lib.filter ({ data, ... }: data ? port) discovered);
in in
let let
setup = nginxSetup hostAddr; setup = mkNginxConfig {
email = "floweydev@gmail.com";
resolver = hostAddr;
vhosts = discoveredVhosts ++ extraVhosts;
};
c = mkContainer { c = mkContainer {
inherit name; inherit name;
net.access = setup.access ++ [ { to = "@internet"; } ]; net.access = setup.access ++ [ { to = "@internet"; } ];
svc.autoStart = true; svc.autoStart = true;
svc.depends = lib.attrVals [ "devenv" "maven" "git" ] containers; svc.depends = upstreamContainers;
net.forward.tcp = [ net.forward.tcp = [
80 80
443 443