--- title: Games on Whales created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, gaming, game-streaming, sunshinedeck, docker, bash] confidence: high contested: false sources: [https://selfh.st/apps/?search=Games+on+Whales] --- # Games on Whales 🐳 > Wrapper Docker pour Moonlight/Sunshine qui transforme un serveur Linux en plateforme de streaming de jeux gaming AAA Ă  la Steam Remote Play / NVIDIA GameStream, en HTML5 ou client natif. | MĂ©tadonnĂ©e | Valeur | | :--- | :--- | | **Site web** | https://games-on-whales.github.io | | **GitHub** | https://github.com/games-on-whales/gow | | **License** | MIT | | **Langage** | Bash / Docker | | **Étoiles** | 126 | | **DerniĂšre MAJ** | 2025 | | **CatĂ©gorie** | [[cat-gaming]] | ## Description Games on Whales (GoW) est un projet open source qui rĂ©pond Ă  une question simple : « et si mon serveur headless Linux, sans Ă©cran, sans clavier ni GPU gaming Ă  demeure, pouvait faire tourner mes jeux AAA et les streamer vers n'importe quel client lĂ©ger, partout dans le monde ? » Il encapsule **Sunshine** (serveur de streaming GameStream/Apollo open source, fork de NVIDIA GameStream) et un ensemble de daemons Linux dans des conteneurs Docker spĂ©cialisĂ©s, pilotĂ©s par un superviseur Bash. L'architecture sĂ©pare proprement les responsabilitĂ©s. Un conteneur `base` virtualise une session X11/Wayland avec Xvfb ou un GPU rĂ©el via `/dev/dri` (Intel/AMD/NVIDIA). Un conteneur `sunshine` expose le serveur de streaming sur le rĂ©seau et gĂšre l'appairage des clients Moonlight. Un conteneur `wolf` (optionnel) prend en charge l'input mapping (clavier, souris, manette) et le forwarding audio via PulseAudio/PipeWire. Enfin des conteneurs applicatifs lancent les jeux : Steam, Heroic (Epic/GOG), Bottles, Lutris, ou des binaires natifs. Chaque conteneur peut ĂȘtre dĂ©marrĂ©/arrĂȘtĂ© individuellement via l'API gRPC exposĂ©e par le superviseur. L'output peut ĂȘtre consommĂ© aussi bien par le client Moonlight natif (Windows, macOS, Linux, Android, iOS, TV, Steam Deck) que par un client web HTML5 basĂ© sur WebRTC (projet `wolf-ui`). Cela permet de jouer depuis un navigateur sans rien installer, y compris depuis un Chromebook ou un iPad. La latence, en local LAN, descend sous les 20 ms avec encodage matĂ©riel (NVENC, VAAPI, QSV) ; en WAN, elle dĂ©pend de la bande passante et de l'encoder choisi (H.264, HEVC, AV1). ## Installation ### Docker Compose (mĂ©thode officielle) ```yaml version: "3.8" services: gow: image: gamesonwhales/gow:latest container_name: gow privileged: true restart: unless-stopped network_mode: host # requis pour streaming basse latence volumes: - /var/run/docker.sock:/var/run/docker.sock - /tmp/.X11-unix:/tmp/.X11-unix - ./config:/config - ./games:/games devices: - /dev/dri:/dev/dri # GPU Intel/AMD # NVIDIA : installer nvidia-container-toolkit et dĂ©commenter # - /dev/nvidia0:/dev/nvidia0 # - /dev/nvidiactl:/dev/nvidiactl # - /dev/nvidia-uvm:/dev/nvidia-uvm environment: - PUID=1000 - PGID=1000 - TZ=Europe/Paris - ENABLE_VNC=true - SUNSHINE_PASSWORD=changeme ``` ### PrĂ©requis Linux ```bash # Ubuntu 24.04 sudo apt install -y docker.io docker-compose-v2 nvidia-driver-550 nvidia-container-toolkit sudo usermod -aG docker $USER # Lier le socket X sudo chmod 777 /tmp/.X11-unix # Activer les cgroups v2 (requis par Sunshine) sudo grubby --update-kernel=ALL --args="systemd.unified_cgroup_hierarchy=1" ``` ### Installation bare-metal Le dĂ©pĂŽt propose un script d'amorçage qui installe systemd, configure les cgroups et dĂ©ploie les conteneurs ; cependant la voie **Docker Compose est recommandĂ©e** pour l'isolation, la portabilitĂ© et la mise Ă  jour. ## Configuration Le fichier `config/gow.conf` (ou variables d'environnement) contrĂŽle : - **GPU** : choix VAAPI (Intel/AMD), NVENC (NVIDIA), ou software x264. VĂ©rifier via `vainfo` ou `nvidia-smi` cĂŽtĂ© hĂŽte. - **Encoder** : H.264 (compatibilitĂ© max), HEVC (H.265, meilleurs dĂ©bits), AV1 (NVIDIA RTX 40+, Intel Arc). - **RĂ©solution / framerate** : 720p60, 1080p60, 1440p120, 4K60 selon GPU et bande passante. - **Bitrate** : adaptatif de 5 Ă  150 Mbps. - **Audio** : PulseAudio/PipeWire sink virtuel, bitrate opus, son surround 5.1/7.1. - **Input** : auto-mapping clavier/souris, support manette Xbox/PS5/DualSense, gyro, touchpad. - **Sessions** : Sunshine permet multi-utilisateurs avec mots de passe et pin appairage. - **Wake-on-LAN** : rĂ©veil du serveur Ă  la connexion d'un client. L'API gRPC exposĂ©e par GoW permet de lister, lancer, arrĂȘter, suspendre des sessions et d'inspecter les mĂ©triques Prometheus. Un dashboard Web UI (projet `wolf-ui`) affiche l'Ă©tat en temps rĂ©el, la liste des clients connectĂ©s et un bouton « Play » par jeu. ## Alternatives ### Open Source - **Sunshine** standalone — sans wrapper Docker, configuration manuelle Sunshine. - **Moonlight** — client (non serveur) open source pour GameStream/Sunshine. - **Steam Remote Play** — fonctionnalitĂ© intĂ©grĂ©e Ă  Steam, bridĂ©e au catalogue Steam. - **Parsec** (gratuit pour usage personnel) — fermĂ© mais populaire, faible latence. - **Neko** — navigateur distant + apps, plus orientĂ© collaboration que gaming. - **Selkies-GStreamer** — Ă©quivalent Google, base sur GStreamer WebRTC. - **Wolf (projet upstream)** — version Rust/WebAssembly du client, intĂ©grĂ© Ă  GoW. ### PropriĂ©taires - **NVIDIA GeForce NOW** — cloud gaming louĂ©, pas auto-hĂ©bergĂ©. - **Xbox Cloud Gaming (xCloud)** — Microsoft, pas auto-hĂ©bergĂ©. - **Amazon Luna** — cloud gaming Amazon, pas auto-hĂ©bergĂ©. - **Boosteroid**, **Shadow PC** — VM gaming distantes. ## SĂ©curitĂ© Games on Whales donne un accĂšs distant quasi-total Ă  votre machine (clavier/souris/manette) — la surface d'attaque est Ă©levĂ©e : - **Authentification forte Sunshine** : activer le pin Ă  4 chiffres + mot de passe utilisateur, jamais dĂ©sactiver. - **TLS** : Sunshine supporte HTTPS via certificat Let's Encrypt (acme.sh ou Caddy en reverse proxy). En LAN un certificat auto-signĂ© est acceptable, mais en WAN TLS est **obligatoire** (WebRTC et Sunshine chiffrent dĂ©jĂ  en SRTP/DTLS, le TLS ajoute l'authentification du serveur). - **Fail2ban** sur les ports Sunshine (47984, 47989, 47990, 47998, 48010) contre les scans d'appairage. - **WireGuard/Tailscale** : prĂ©fĂ©rez un VPN maillĂ© Ă  une exposition publique, surtout pour les sessions de bureau Ă  distance. - **Pare-feu** : n'ouvrir que les ports Sunshine vers l'IP du client (ou un sous-rĂ©seau VPN). - **Sandbox conteneurs** : limiter `capabilities` (uniquement `SYS_ADMIN` pour Sunshine), dĂ©sactiver le rĂ©seau en `--internal` pour les conteneurs de jeu et n'exposer que Sunshine en `network_mode: host`. - **Mises Ă  jour** : Sunshine et GoW publient frĂ©quemment des correctifs de sĂ©curitĂ© ; automatiser avec Watchtower ou Renovate. - **DĂ©sactiver le VNC** (`ENABLE_VNC=false`) en production, sauf pour debug local. ## Ressources - Site officiel : https://games-on-whales.github.io - GitHub : https://github.com/games-on-whales/gow - Wiki : https://github.com/games-on-whales/gow/wiki - Discord : https://discord.gg/Y8dNbWuT3q - Sunshine (upstream) : https://github.com/LizardByte/Sunshine - Moonlight (client) : https://moonlight-stream.org - Wiki Arch — Game streaming : https://wiki.archlinux.org/title/Game_streaming ## Pages LiĂ©es - [[cat-gaming]] - [[recettes-docker-compose]] - [[app-sunshine]] - [[app-traefik]] - [[app-wireguard]] - [[app-jellyfin]]