at 24.11-pre 1.4 kB view raw
1{ config, lib, ... }: 2 3let 4 inherit (lib) 5 mkEnableOption 6 mkIf 7 mkOption 8 optionalAttrs 9 ; 10 11 inherit (lib.types) str; 12 13 cfg = config.services.netbird.server; 14in 15 16{ 17 meta = { 18 maintainers = with lib.maintainers; [ thubrecht ]; 19 doc = ./server.md; 20 }; 21 22 # Import the separate components 23 imports = [ 24 ./coturn.nix 25 ./dashboard.nix 26 ./management.nix 27 ./signal.nix 28 ]; 29 30 options.services.netbird.server = { 31 enable = mkEnableOption "Netbird Server stack, comprising the dashboard, management API and signal service"; 32 33 enableNginx = mkEnableOption "Nginx reverse-proxy for the netbird server services."; 34 35 domain = mkOption { 36 type = str; 37 description = "The domain under which the netbird server runs."; 38 }; 39 }; 40 41 config = mkIf cfg.enable { 42 services.netbird.server = { 43 dashboard = { 44 inherit (cfg) enable domain enableNginx; 45 46 managementServer = "https://${cfg.domain}"; 47 }; 48 49 management = 50 { 51 inherit (cfg) enable domain enableNginx; 52 } 53 // (optionalAttrs cfg.coturn.enable { 54 turnDomain = cfg.domain; 55 turnPort = config.services.coturn.tls-listening-port; 56 }); 57 58 signal = { 59 inherit (cfg) enable domain enableNginx; 60 }; 61 62 coturn = { 63 inherit (cfg) domain; 64 }; 65 }; 66 }; 67}