infrastructure/nixos/access/fluidd.nix
2024-08-09 12:10:10 -07:00

55 lines
1.2 KiB
Nix

{
config,
gensokyo-zone,
lib,
...
}: let
inherit (gensokyo-zone.lib) domain;
inherit (lib.modules) mkDefault;
name.shortServer = mkDefault "print";
upstreamName = "fluidd'access";
serverName = "print.local.${domain}";
# TODO: serverName = "@fluidd_internal";
in {
config.services.nginx = {
upstreams'.${upstreamName} = {
host = serverName;
servers.service = {
accessService = {
name = "nginx";
system = "logistics";
port = "proxied";
# XXX: logistics doesn't listen on v6
getAddressFor = "getAddress4For";
};
};
};
virtualHosts = let
copyFromVhost = mkDefault "fluidd";
locations = {
"/" = {
proxy = {
enable = true;
websocket.enable = true;
};
};
};
in {
fluidd = {
inherit name locations;
proxy.upstream = mkDefault upstreamName;
vouch.enable = mkDefault true;
};
fluidd'local = {
inherit name locations;
ssl.cert = {
inherit copyFromVhost;
};
proxy = {
inherit copyFromVhost;
};
local.enable = mkDefault true;
};
};
};
}