mirror of
https://github.com/gensokyo-zone/infrastructure.git
synced 2026-02-10 04:49:19 -08:00
31 lines
776 B
Nix
31 lines
776 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);
|
|
};
|
|
};
|
|
}
|