Basculer le menu
Changer de menu des préférences
Basculer le menu personnel
Non connecté(e)
Votre adresse IP sera visible au public si vous faites des modifications.

« Moonlight web stream » : différence entre les versions

De Le Wiki de Lug
Ligne 20 : Ligne 20 :
     environment:
     environment:
       - WEBRTC_NAT_1TO1_HOST=<font color = blue>192.168.1.123</font> # pour webrtc ip accessible depuis le routeur ou machine local
       - WEBRTC_NAT_1TO1_HOST=<font color = blue>192.168.1.123</font> # pour webrtc ip accessible depuis le routeur ou machine local
      - WEBRTC_PORT_RANGE=<font color = green>40303:40403</font>
     volumes:
     volumes:
       - /opt/moonlightwebstream/server:/moonlight-web/server
       - /opt/moonlightwebstream/server:/moonlight-web/server

Version du 14 juin 2026 à 17:31

Source github

Installation version Docker

Source

# mkdir /opt/moonlightwebstream

On crée également le répertoire de données server avec les droits nécessaires au conteneur :

# mkdir /opt/moonlightwebstream/server
# chown -R 999:999 /opt/moonlightwebstream/server
# cd /opt/moonlightwebstream
# vi docker-compose.yml
 services:
  moonlight-web:
    image: mrcreativ3001/moonlight-web-stream:latest
    container_name: moonlight-web
    restart: unless-stopped
    ports:
      - "8080:8080"
      - "40000-40100:40000-40100/udp"
    environment:
      - WEBRTC_NAT_1TO1_HOST=192.168.1.123 # pour webrtc ip accessible depuis le routeur ou machine local
      - WEBRTC_PORT_RANGE=40303:40403
    volumes:
      - /opt/moonlightwebstream/server:/moonlight-web/server
# docker compose up -d

Configuration

# vi /opt/moonlightwebstream/server/config.json

Auhtentification

Au minimum renseigner les champs suivant :

        ...
        "username": "un_utilisateur",
        "credential": "un_mot_de_passe"
        ...

Paramètres forcés

Exemple avec une configuration retrogaming en 720p :

remplacer à la fin :

 "default_settings": null

Par :

    "default_settings": {
        // possible values: "left", "right", "up", "down"
        "sidebarEdge": "left",
        "bitrate": 10000,
        "packetSize": 2048,
        "fps": 60,
        "videoFrameQueueSize": 3,
        // possible values: "720p", "1080p", "1440p", "4k", "native", "custom"
        "videoSize": "720p",
        // only works if videoSize=custom
        //"videoSizeCustom": {
        //    "width": 1920,
        //    "height": 1080
        //},
        // possible values: "h264", "h265", "av1", "auto"
        "videoCodec": "h265",
        "forceVideoElementRenderer": false,
        "canvasRenderer": false,
        "playAudioLocal": true,
        "audioSampleQueueSize": 20,
        // possible values: "highres", "normal"
        "mouseScrollMode": "highres",
        "controllerConfig": {
            "invertAB": false,
            "invertXY": false,
            // possible values: null or a number, example: 60, 120
            "sendIntervalOverride": null
        },
        // possible values: "auto", "webrtc", "websocket"
        "dataTransport": "auto",
        "toggleFullscreenWithKeybind": false,
        // possible values: "standard", "old"
        "pageStyle": "standard"
    }

Mode de connexion

Il est possible de forcer le mode de transport utilisé par Moonlight Web Stream :

  • WebSocket : utilise la connexion HTTPS/WebSocket, plus simple à faire passer derrière un reverse proxy, mais potentiellement moins performant et plus sensible à la latence TCP.
  • WebRTC : utilise un transport temps réel, généralement en UDP, plus performant et avec moins de latence, mais nécessite que les ports UDP du service soient accessibles. ( Par défaut, la plage utilisée est 40000-40100/udp )
Exemple :
...
// possible values: "auto", "webrtc", "websocket"
         "dataTransport": "webrtc",
...

vhost

server {
    listen 443 ssl;
    server_name moonlight.tondomaine.com;

    ssl_certificate /etc/letsencrypt/live/moonlight.tondomaine.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/moonlight.tondomaine.com/privkey.pem;

    location / {
        proxy_pass http://192.168.1.123:8090;

        proxy_http_version 1.1;

        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto https;

        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";

        proxy_buffering off;
        proxy_request_buffering off;

        proxy_read_timeout 86400;
        proxy_send_timeout 86400;
    }
}