1{ config, lib, pkgs, ... }:
2
3let
4 cfg = config.programs.winbox;
5in
6{
7 options.programs.winbox = {
8 enable = lib.mkEnableOption ("MikroTik Winbox");
9 package = lib.mkPackageOption pkgs "winbox" { };
10
11 openFirewall = lib.mkOption {
12 description = ''
13 Whether to open ports for the MikroTik Neighbor Discovery protocol. Required for Winbox neighbor discovery.
14 '';
15 default = false;
16 type = lib.types.bool;
17 };
18 };
19
20 config = lib.mkIf cfg.enable {
21 environment.systemPackages = [ cfg.package ];
22 networking.firewall.allowedUDPPorts = lib.optionals cfg.openFirewall [ 5678 ];
23 };
24}