at master 754 B view raw
1{ 2 config, 3 lib, 4 pkgs, 5 ... 6}: 7 8let 9 cfg = config.programs.winbox; 10in 11{ 12 options.programs.winbox = { 13 enable = lib.mkEnableOption ("MikroTik Winbox"); 14 package = lib.mkPackageOption pkgs "winbox" { }; 15 16 openFirewall = lib.mkOption { 17 description = '' 18 Whether to open ports for the MikroTik Neighbor Discovery protocol. Required for Winbox neighbor discovery. 19 ''; 20 default = false; 21 type = lib.types.bool; 22 }; 23 }; 24 25 config = lib.mkIf cfg.enable { 26 environment.systemPackages = [ cfg.package ]; 27 networking.firewall = lib.mkIf cfg.openFirewall { 28 allowedUDPPorts = [ 5678 ]; 29 allowedUDPPortRanges = [ 30 { 31 from = 40000; 32 to = 50000; 33 } 34 ]; 35 }; 36 }; 37}