diff options
author | Lassulus <github@lassul.us> | 2021-03-07 14:22:16 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-03-07 14:22:16 +0100 |
commit | f38b9b258f3f4db5ecf7dd27a7d5b48f23202843 (patch) | |
tree | 80d3ac64e0d6d40cb8ef34d5ba56e6ba2841bf7d /nixos/modules | |
parent | aed658c6f20714bac2cbd1a480c8203e105eb305 (diff) | |
parent | be9d37e2f08386b880329d18d1e16c0be3d78ca1 (diff) |
Merge pull request #113714 from ilian/steam-firewall
nixos/steam: Add port forwarding options
Diffstat (limited to 'nixos/modules')
-rw-r--r-- | nixos/modules/programs/steam.nix | 32 |
1 files changed, 31 insertions, 1 deletions
diff --git a/nixos/modules/programs/steam.nix b/nixos/modules/programs/steam.nix index 6b805c374a017..ff4deba2bf0ae 100644 --- a/nixos/modules/programs/steam.nix +++ b/nixos/modules/programs/steam.nix @@ -12,7 +12,25 @@ let else [ package32 ] ++ extraPackages32; }; in { - options.programs.steam.enable = mkEnableOption "steam"; + options.programs.steam = { + enable = mkEnableOption "steam"; + + remotePlay.openFirewall = mkOption { + type = types.bool; + default = false; + description = '' + Open ports in the firewall for Steam Remote Play. + ''; + }; + + dedicatedServer.openFirewall = mkOption { + type = types.bool; + default = false; + description = '' + Open ports in the firewall for Source Dedicated Server. + ''; + }; + }; config = mkIf cfg.enable { hardware.opengl = { # this fixes the "glXChooseVisual failed" bug, context: https://github.com/NixOS/nixpkgs/issues/47932 @@ -27,6 +45,18 @@ in { hardware.steam-hardware.enable = true; environment.systemPackages = [ steam steam.run ]; + + networking.firewall = lib.mkMerge [ + (mkIf cfg.remotePlay.openFirewall { + allowedTCPPorts = [ 27036 ]; + allowedUDPPortRanges = [ { from = 27031; to = 27036; } ]; + }) + + (mkIf cfg.dedicatedServer.openFirewall { + allowedTCPPorts = [ 27015 ]; # SRCDS Rcon port + allowedUDPPorts = [ 27015 ]; # Gameplay traffic + }) + ]; }; meta.maintainers = with maintainers; [ mkg20001 ]; |