summaryrefslogtreecommitdiffstats
path: root/nixos
diff options
context:
space:
mode:
authorLassulus <github@lassul.us>2021-03-07 14:22:16 +0100
committerGitHub <noreply@github.com>2021-03-07 14:22:16 +0100
commitf38b9b258f3f4db5ecf7dd27a7d5b48f23202843 (patch)
tree80d3ac64e0d6d40cb8ef34d5ba56e6ba2841bf7d /nixos
parentaed658c6f20714bac2cbd1a480c8203e105eb305 (diff)
parentbe9d37e2f08386b880329d18d1e16c0be3d78ca1 (diff)
Merge pull request #113714 from ilian/steam-firewall
nixos/steam: Add port forwarding options
Diffstat (limited to 'nixos')
-rw-r--r--nixos/modules/programs/steam.nix32
1 files changed, 31 insertions, 1 deletions
diff --git a/nixos/modules/programs/steam.nix b/nixos/modules/programs/steam.nix
index 6b805c374a01..ff4deba2bf0a 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 ];