summaryrefslogtreecommitdiff
path: root/os/srv/sunshine.nix
diff options
context:
space:
mode:
Diffstat (limited to 'os/srv/sunshine.nix')
-rw-r--r--os/srv/sunshine.nix41
1 files changed, 41 insertions, 0 deletions
diff --git a/os/srv/sunshine.nix b/os/srv/sunshine.nix
new file mode 100644
index 0000000..f1d4300
--- /dev/null
+++ b/os/srv/sunshine.nix
@@ -0,0 +1,41 @@
+{
+ config,
+ lib,
+ pkgs,
+ username,
+ ...
+}:
+let
+ cfgSunshine = config.os.srv.sunshine;
+ cfgMoonlight = config.os.srv.moonlight;
+in
+{
+ options.os.srv = {
+ sunshine.enable = lib.mkEnableOption "enables sunshine streaming server";
+ moonlight.enable = lib.mkEnableOption "enables moonlight streaming client";
+ };
+
+ config = lib.mkMerge [
+ (lib.mkIf cfgSunshine.enable {
+ services.sunshine = {
+ enable = true;
+ capSysAdmin = true;
+ openFirewall = true;
+ };
+
+ hardware.uinput.enable = true;
+
+ users.users.${username}.extraGroups = [
+ "video"
+ "input"
+ "render"
+ ];
+ })
+
+ (lib.mkIf cfgMoonlight.enable {
+ environment.systemPackages = [
+ pkgs.moonlight-qt
+ ];
+ })
+ ];
+}