Sunshine - Installation GLF

1. Ouvrir le terminal


2. Créer le fichier sunshine.nix

sudo nano /etc/nixos/customConfig/sunshine.nix
Code à recopier (Vous avez un bouton à droite du code pour copier le bloc en entier.)
{ config, pkgs, ... }:

let
  username = "TON-USER"; # <-- ton utilisateur Linux
in
{
  # Session ouverte au boot : obligatoire pour Sunshine (service utilisateur)
  services.displayManager.autoLogin = {
    enable = true;
    user = username;
  };

  # Découverte du PC par Moonlight sur le LAN
  services.avahi = {
    enable = true;
    nssmdns4 = true;
    publish = {
      enable = true;
      addresses = true;
      userServices = true;
    };
  };

  services.sunshine = {
    enable = true;
    autoStart = true;
    capSysAdmin = true; 
    openFirewall = true;
  };

  # Ne pas lancer Sunshine sur la session GDM (conflit de ports sinon)
  systemd.user.services.sunshine.unitConfig.ConditionUser = username;

  # Souris : profil flat (meilleur ressenti sous Moonlight)
  programs.dconf.profiles.user.databases = [{
    settings."org/gnome/desktop/peripherals/mouse" = {
      accel-profile = "flat";
    };
  }];

  users.users.${username}.extraGroups = [ "input" ];
}

Coller le contenu de sunshine.nix.
Remplacer username = "TON-USER" par ton utilisateur Linux.

Ctrl + X -> O -> Entrée


3. Modifier default.nix

sudo nano /etc/nixos/customConfig/default.nix

Dans imports :

./sunshine.nix

Ctrl + X -> O -> Entrée


4. Ports - Nix Firewall Manager

Ajouter 2 règles, puis Sauvegarder et Reconstruire :

Règle 1 - Nom : Sunshine-TCP  |  Protocole : TCP
           Ports : 47984, 47989, 47990, 48010

Règle 2 - Nom : Sunshine-UDP  |  Protocole : UDP
           Ports : 47998, 47999, 48000, 48002, 48010


5. Rebuild

glf-update && reboot

6. Premier lancement

  • Sur le PC : https://localhost:47990 ou cliquer sur l’icône Sunshine sur le bureau → créer le compte admin
  • Installer Moonlight sur le client
  • Le PC apparaît tout seul, sinon Add Host + IP du PC
  • Appairer dans Moonlight avec le PIN

Option - Wake-on-LAN

BIOS : Wake on LAN → Enabled

sudo nano /etc/nixos/customConfig/wake-on-lan.nix
{ config, pkgs, ... }:

{
  networking = {
    interfaces.enp42s0.wakeOnLan.enable = true; # <-- ton interface réseau
    firewall.allowedUDPPorts = [ 9 ];
  };
}

Coller wake-on-lan.nix. Adapter enp42s0 (ip link show).

Dans default.nix :

./wake-on-lan.nix
glf-update && reboot

Dans Moonlight : MAC de l’interface (ip link show enp42s0).
Wi-Fi maison uniquement (pas 4G).

Tutoriel plus détaillé ici : Wake-On-Lan - Instalation GLF


Désinstallation

Retirer les imports dans default.nix, puis :

glf-update && reboot
rm -rf ~/.config/sunshine

Supprimer aussi les 2 règles dans Nix Firewall Manager.