mirror of
https://github.com/gensokyo-zone/infrastructure.git
synced 2026-02-09 20:39:18 -08:00
34 lines
788 B
Nix
34 lines
788 B
Nix
{
|
|
lib,
|
|
...
|
|
}: let
|
|
inherit (lib.modules) mkIf;
|
|
inherit (lib.options) mkOption mkEnableOption;
|
|
wsModule = { config, ... }: {
|
|
options = with lib.types; {
|
|
proxy.websocket.enable = mkEnableOption "websocket proxy";
|
|
};
|
|
config = mkIf config.proxy.websocket.enable {
|
|
extraConfig = ''
|
|
proxy_http_version 1.1;
|
|
proxy_set_header Upgrade $http_upgrade;
|
|
proxy_set_header Connection "upgrade";
|
|
'';
|
|
};
|
|
};
|
|
hostModule = { config, ... }: {
|
|
imports = [ wsModule ];
|
|
|
|
options = with lib.types; {
|
|
locations = mkOption {
|
|
type = attrsOf (submodule wsModule);
|
|
};
|
|
};
|
|
};
|
|
in {
|
|
options = with lib.types; {
|
|
services.nginx.virtualHosts = mkOption {
|
|
type = attrsOf (submodule hostModule);
|
|
};
|
|
};
|
|
}
|