diff --git a/hosts/muon/configuration.nix b/hosts/muon/configuration.nix index 913077b..f50e264 100644 --- a/hosts/muon/configuration.nix +++ b/hosts/muon/configuration.nix @@ -31,6 +31,7 @@ in { mods.theme.scheme = "woodland"; mods.theme.wallpaper = ./wallpaper.png; mods.openvpn.enable = true; + mods.containers.steam.enable = true; services.xserver.windowManager.i3.enable = true; diff --git a/modules/nixos/server/containers/default.nix b/modules/nixos/server/containers/default.nix index c77ad70..b2644c8 100644 --- a/modules/nixos/server/containers/default.nix +++ b/modules/nixos/server/containers/default.nix @@ -1,4 +1,4 @@ -{ pkgs, lib, ... }: { +{ pkgs, lib, config, ... }: { options.mods.containers = { enable = lib.mkEnableOption { default = false; @@ -10,12 +10,16 @@ ./steam.nix ]; - config = lib.mkIf config.mods.container.enable { + config = lib.mkIf config.mods.containers.enable { networking.nat = { enable = true; internalInterfaces = ["ve-+"]; externalInterface = "enp0s31f6"; }; networking.networkmanager.unmanaged = [ "interface-name:ve-*" ]; + + environment.systemPackages = with pkgs; [ + xorg.xhost + ]; }; } diff --git a/modules/nixos/server/containers/steam.nix b/modules/nixos/server/containers/steam.nix index b3fac82..b9f9c09 100644 --- a/modules/nixos/server/containers/steam.nix +++ b/modules/nixos/server/containers/steam.nix @@ -1,4 +1,4 @@ -{ pkgs, lib, ... }: { +{ pkgs, lib, config, ... }: { options.mods.containers.steam = { enable = lib.mkEnableOption { default = false; @@ -6,21 +6,84 @@ }; }; - config = lib.mkIf config.mods.container.steam.enable { + config = lib.mkIf config.mods.containers.steam.enable { mods.containers.enable = true; + environment.systemPackages = with pkgs; [ + x2goclient + guacamole-client + remmina + ]; + containers.steam = { privateNetwork = true; - hostAddress = "192.168.1.107"; - localAddress = "192.168.1.57"; + hostAddress = "192.168.100.10"; + localAddress = "192.168.100.11"; + + bindMounts = { + "/home/steam/.steam/steam/steamapps/common/SMITE" = { + hostPath = "/mnt/bulk/SteamLibrary/steamapps/common/SMITE"; + isReadOnly = true; + }; + "/home/steam/.steam/steam/steamapps/shadercache/386360" = { + hostPath = "/mnt/bulk/SteamLibrary/steamapps/shadercache/386360"; + isReadOnly = true; + }; + "/home/steam/.steam/steam/steamapps/appmanifest_386360.acf" = { + hostPath = "/mnt/bulk/SteamLibrary/steamapps/appmanifest_386360.acf"; + isReadOnly = true; + }; + }; + config = { config, pkgs, lib, ... }: { - + nixpkgs.config.allowUnfreePredicate = pkg: + builtins.elem (lib.getName pkg) [ + "steam" + "steam-original" + "steam-run" + ]; + programs.steam = { enable = true; remotePlay.openFirewall = true; }; + environment.systemPackages = with pkgs; [ + xterm + glxinfo + guacamole-server + wget + bottles + ]; + + services.xserver.enable = true; + services.xserver.displayManager.sddm.enable = true; + services.xserver.desktopManager.plasma5.enable = true; + + services.xrdp.enable = true; + services.xrdp.defaultWindowManager = "startplasma-x11"; + services.xrdp.openFirewall = true; + + hardware.opengl = { + enable = true; + driSupport = true; + driSupport32Bit = true; + }; + + services.x2goserver.enable = true; + programs.ssh.forwardX11 = true; + services.openssh = { + enable = true; + settings.X11Forwarding = true; + }; + + users.users.steam = { + isNormalUser = true; + extraGroups = [ "wheel" ]; + initialPassword = "changeme"; + }; + system.stateVersion = "23.11"; }; };