Jump to content

Sunshine: Difference between revisions

Improve nixos configuration
(import from old wiki)
 
(Improve nixos configuration)
Line 3: Line 3:
== Install ==
== Install ==
To install Sunshine and enable to for use you will need to open up network ports as shown here:{{file|/etc/nixos/configuration.nix|nix|<nowiki>
To install Sunshine and enable to for use you will need to open up network ports as shown here:{{file|/etc/nixos/configuration.nix|nix|<nowiki>
networking.firewall = {
{ pkgs, ... }: {
   enable = true;
   environment.systemPackages = [
  allowedTCPPorts = [ 47984 47989 47990 48010 ];
     pkgs.sunshine
  allowedUDPPortRanges = [
     pkgs.moonlight-qt #for testing purposes.
     { from = 47998; to = 48000; }
     { from = 8000; to = 8010; }
   ];
   ];
};
  networking.firewall = {
    enable = true;
    allowedTCPPorts = [ 47984 47989 47990 48010 ];
    allowedUDPPortRanges = [
      { from = 47998; to = 48000; }
      { from = 8000; to = 8010; }
    ];
  };
  # Prevents this error:
  # Fatal: You must run [sudo setcap cap_sys_admin+p $(readlink -f sunshine)] for KMS display capture to work!
  security.wrappers.sunshine = {
    owner = "root";
    group = "root";
    capabilities = "cap_sys_admin+p";
    source = "${pkgs.sunshine}/bin/sunshine";
  };
  # Needed for network discovery
  services.avahi.enable = true;
  services.avahi.publish.enable = true;
  services.avahi.publish.userServices = true;
}
</nowiki>}}
</nowiki>}}


== Connecting to the host ==
== Connecting to the host ==
Before moving forward I would strongly recommend restarting the computer and making sure you start Sunshine once you reboot.
 
Sunshine needs to be started with the <pre>sunshine</pre> command.


You may have to manually add the host running Sunshine to your Moonlight client. This, thankfully, is not hard to do.
You may have to manually add the host running Sunshine to your Moonlight client. This, thankfully, is not hard to do.
Line 23: Line 42:


If this doesn’t work you should double check the port in the Sunshine’s WebGUI. You can access this from the Host PC in a web browser <code>localhost:47990</code>
If this doesn’t work you should double check the port in the Sunshine’s WebGUI. You can access this from the Host PC in a web browser <code>localhost:47990</code>
If this doesn’t work, make sure Sunshine is actually running. You can do this by running <code>sunshine</code> in a terminal.
== Troubleshooting ==
If once you run Sunshine you may see a lot of error messages. Some of these don’t necessarily prevent Sunshine from working, for ones that do the following section hopes to solve those problems.
=== Error: Failed to gain CAP_SYS_ADMIN ===
This can be fixed by using the code as follows:{{file|/etc/nixos/configuration.nix|nix|<nowiki>
security.wrappers.sunshine = {
        owner = "root";
        group = "root";
        capabilities = "cap_sys_admin+p";
        source = "${pkgs.sunshine}/bin/sunshine";
};</nowiki>}}
=== Error: avahi::entry_group_new() failed: Not permitted ===
The following lines can help with this:{{file|/etc/nixos/configuration.nix|nix|<nowiki>
services.avahi.publish.enable = true;
services.avahi.publish.userServices = true;</nowiki>}}


== Attribution ==
== Attribution ==
A substantial amount of the above came from [https://www.reddit.com/r/NixOS/comments/1bq2bx4/beginners_guide_to_sunshine_gamedesktop_streaming/ this fairly wonderful guide] posted to Reddit:
A substantial amount of the above came from [https://www.reddit.com/r/NixOS/comments/1bq2bx4/beginners_guide_to_sunshine_gamedesktop_streaming/ this fairly wonderful guide] posted to Reddit: