« Moonlight web stream » : différence entre les versions
Autres actions
Page créée avec « [https://github.com/MrCreativ3001/moonlight-web-stream Source] = Installation version Docker = [https://github.com/MrCreativ3001/moonlight-web-stream/blob/master/docker/README.md Source] # mkdir /opt/moonlightwebstream # cd /opt/moonlightwebstream # vi docker-compose.yml services: moonlight-web: image: mrcreativ3001/moonlight-web-stream:latest container_name: moonlight-web restart: unless-stopped ports: - "<font color = green>8... » |
|||
| (14 versions intermédiaires par le même utilisateur non affichées) | |||
| Ligne 1 : | Ligne 1 : | ||
[https://github.com/MrCreativ3001/moonlight-web-stream Source] | [https://github.com/MrCreativ3001/moonlight-web-stream Source github] | ||
= Installation version Docker = | == Installation version Docker == | ||
[https://github.com/MrCreativ3001/moonlight-web-stream/blob/master/docker/README.md Source] | [https://github.com/MrCreativ3001/moonlight-web-stream/blob/master/docker/README.md Source] | ||
# mkdir /opt/moonlightwebstream | # mkdir /opt/moonlightwebstream | ||
On crée également le répertoire de données <code>server</code > avec les droits nécessaires au conteneur : | |||
# mkdir /opt/moonlightwebstream/server | |||
# chown -R 999:999 /opt/moonlightwebstream/server | |||
# cd /opt/moonlightwebstream | # cd /opt/moonlightwebstream | ||
# vi docker-compose.yml | # vi docker-compose.yml | ||
| Ligne 14 : | Ligne 18 : | ||
- "<font color = green>8080:8080</font>" | - "<font color = green>8080:8080</font>" | ||
- "<font color = green>40000-40100:40000-40100/udp</font>" | - "<font color = green>40000-40100:40000-40100/udp</font>" | ||
environment: | |||
- 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>40000:40100</font> | |||
volumes: | volumes: | ||
- /opt/moonlightwebstream/server:/moonlight-web/server | - /opt/moonlightwebstream/server:/moonlight-web/server | ||
# docker compose up -d | # docker compose up -d | ||
= Configuration = | |||
== Configuration == | |||
Il est possible de forcer le mode de transport utilisé par Moonlight Web Stream : | |||
* '''WebSocket''' : utilise la connexion HTTPS/WebSocket. Ce mode est plus simple à faire passer derrière un reverse proxy, mais il peut être moins performant et plus sensible à la latence TCP. | |||
* '''WebRTC''' : utilise un transport temps réel, généralement en UDP. Ce mode est normalement plus performant et offre une latence plus faible, mais nécessite que les ports UDP du service soient accessibles. Par défaut, la plage utilisée est 40000-40100/udp. | |||
Le fichier de configuration se trouve ici : | |||
# vi /opt/moonlightwebstream/server/config.json | # vi /opt/moonlightwebstream/server/config.json | ||
== | |||
=== Authentification === | |||
Lors de la première connexion, il faut saisir un nom d’utilisateur et un mot de passe. Un compte administrateur est alors créé automatiquement. | |||
Ensuite, l’interface permet de créer des comptes utilisateurs et des rôles. Les fonctions restent assez limitées, mais il est possible de définir une configuration par défaut, d’interdire certains protocoles ou encore d’empêcher l’inscription de nouvelles instances Sunshine. | |||
= vhost = | === Configuration multi instances === | ||
==== Exemple docker compose ==== | |||
services: | |||
moonlight-web: | |||
image: mrcreativ3001/moonlight-web-stream:latest | |||
container_name: moonlight-web | |||
restart: unless-stopped | |||
ports: | |||
- "8090:8080" | |||
- "40000-40100:40000-40100/udp" | |||
environment: | |||
- WEBRTC_NAT_1TO1_HOST=<font color = blue>192.168.1.123</font> | |||
- WEBRTC_PORT_RANGE=40000:40100 | |||
volumes: | |||
- /opt/moonlightwebstream/server:/moonlight-web/server | |||
moonlight-web-2: | |||
image: mrcreativ3001/moonlight-web-stream:latest | |||
container_name: moonlight-web-2 | |||
restart: unless-stopped | |||
ports: | |||
- "8091:8080" | |||
- "40101-40201:40101-40201/udp" | |||
environment: | |||
- WEBRTC_NAT_1TO1_HOST=<font color = blue>192.168.1.123</font> | |||
- WEBRTC_PORT_RANGE=40101:40201 | |||
volumes: | |||
- /opt/moonlightwebstream/server2:/moonlight-web/server | |||
moonlight-web-3: | |||
image: mrcreativ3001/moonlight-web-stream:latest | |||
container_name: moonlight-web-3 | |||
restart: unless-stopped | |||
ports: | |||
- "8092:8080" | |||
- "40202-40302:40202-40302/udp" | |||
environment: | |||
- WEBRTC_NAT_1TO1_HOST=<font color = blue>192.168.1.123</font> | |||
- WEBRTC_PORT_RANGE=40202:40302 | |||
volumes: | |||
- /opt/moonlightwebstream/server3:/moonlight-web/server | |||
moonlight-web-4: | |||
image: mrcreativ3001/moonlight-web-stream:latest | |||
container_name: moonlight-web-4 | |||
restart: unless-stopped | |||
ports: | |||
- "8093:8080" | |||
- "40303-40403:40303-40403/udp" | |||
environment: | |||
- WEBRTC_NAT_1TO1_HOST=<font color = blue>192.168.1.123</font> | |||
- WEBRTC_PORT_RANGE=40303:40403 | |||
volumes: | |||
- /opt/moonlightwebstream/server4:/moonlight-web/server | |||
{{Méta bandeau | |||
| niveau = grave | |||
| icône = loupe | |||
| texte = Pour utiliser WebRTC, toute la plage de ports UDP configurée doit être redirigée vers le serveur. | |||
}} | |||
==== Fichier de configuration ==== | |||
On édite le fichier de configuration. Exemple avec l’instance numéro 2 : | |||
# vi /opt/moonlightwebstream/server2/config.json | |||
On modifie la plage de ports utilisée par WebRTC si nécessaire. Cette valeur est normalement définie automatiquement par la variable d’environnement du conteneur : | |||
<font color="grey">...</font> | |||
"port_range": { | |||
"min": <font color="blue">40101</font>, | |||
"max": <font color="blue">40201</font> | |||
}, | |||
<font color="grey">...</font> | |||
On change ensuite le nom de l’instance utilisé pour l’appairage : | |||
<font color="grey">...</font> | |||
"pair_device_name": "<font color="blue">roth2</font>" | |||
<font color="grey">...</font> | |||
On peut ensuite redémarrer le conteneur avant l’appairage : | |||
# docker restart moonlight-web-2 | |||
== vhost == | |||
server { | server { | ||
listen 443 ssl | listen 443 ssl; | ||
server_name <font color = blue>moonlight.tondomaine.com</font>; | server_name <font color = blue>moonlight.tondomaine.com</font>; | ||
| Ligne 34 : | Ligne 134 : | ||
ssl_certificate_key /etc/letsencrypt/live/<font color = blue>moonlight.tondomaine.com</font>/privkey.pem; | ssl_certificate_key /etc/letsencrypt/live/<font color = blue>moonlight.tondomaine.com</font>/privkey.pem; | ||
location / | location / { | ||
proxy_pass http://<font color = blue>192.168.123: | proxy_pass http://<font color = blue>192.168.1.123:8090</font>; | ||
proxy_http_version 1.1; | proxy_http_version 1.1; | ||
proxy_set_header Host $host; | 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-For $proxy_add_x_forwarded_for; | ||
proxy_set_header X-Forwarded-Proto https; | 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_read_timeout 86400; | ||
proxy_send_timeout 86400; | |||
} | } | ||
} | } | ||
Dernière version du 15 juin 2026 à 10:14
Installation version Docker
# 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=40000:40100
volumes:
- /opt/moonlightwebstream/server:/moonlight-web/server
# docker compose up -d
Configuration
Il est possible de forcer le mode de transport utilisé par Moonlight Web Stream :
- WebSocket : utilise la connexion HTTPS/WebSocket. Ce mode est plus simple à faire passer derrière un reverse proxy, mais il peut être moins performant et plus sensible à la latence TCP.
- WebRTC : utilise un transport temps réel, généralement en UDP. Ce mode est normalement plus performant et offre une latence plus faible, mais nécessite que les ports UDP du service soient accessibles. Par défaut, la plage utilisée est 40000-40100/udp.
Le fichier de configuration se trouve ici :
# vi /opt/moonlightwebstream/server/config.json
Authentification
Lors de la première connexion, il faut saisir un nom d’utilisateur et un mot de passe. Un compte administrateur est alors créé automatiquement.
Ensuite, l’interface permet de créer des comptes utilisateurs et des rôles. Les fonctions restent assez limitées, mais il est possible de définir une configuration par défaut, d’interdire certains protocoles ou encore d’empêcher l’inscription de nouvelles instances Sunshine.
Configuration multi instances
Exemple docker compose
services:
moonlight-web:
image: mrcreativ3001/moonlight-web-stream:latest
container_name: moonlight-web
restart: unless-stopped
ports:
- "8090:8080"
- "40000-40100:40000-40100/udp"
environment:
- WEBRTC_NAT_1TO1_HOST=192.168.1.123
- WEBRTC_PORT_RANGE=40000:40100
volumes:
- /opt/moonlightwebstream/server:/moonlight-web/server
moonlight-web-2:
image: mrcreativ3001/moonlight-web-stream:latest
container_name: moonlight-web-2
restart: unless-stopped
ports:
- "8091:8080"
- "40101-40201:40101-40201/udp"
environment:
- WEBRTC_NAT_1TO1_HOST=192.168.1.123
- WEBRTC_PORT_RANGE=40101:40201
volumes:
- /opt/moonlightwebstream/server2:/moonlight-web/server
moonlight-web-3:
image: mrcreativ3001/moonlight-web-stream:latest
container_name: moonlight-web-3
restart: unless-stopped
ports:
- "8092:8080"
- "40202-40302:40202-40302/udp"
environment:
- WEBRTC_NAT_1TO1_HOST=192.168.1.123
- WEBRTC_PORT_RANGE=40202:40302
volumes:
- /opt/moonlightwebstream/server3:/moonlight-web/server
moonlight-web-4:
image: mrcreativ3001/moonlight-web-stream:latest
container_name: moonlight-web-4
restart: unless-stopped
ports:
- "8093:8080"
- "40303-40403:40303-40403/udp"
environment:
- WEBRTC_NAT_1TO1_HOST=192.168.1.123
- WEBRTC_PORT_RANGE=40303:40403
volumes:
- /opt/moonlightwebstream/server4:/moonlight-web/server
Fichier de configuration
On édite le fichier de configuration. Exemple avec l’instance numéro 2 :
# vi /opt/moonlightwebstream/server2/config.json
On modifie la plage de ports utilisée par WebRTC si nécessaire. Cette valeur est normalement définie automatiquement par la variable d’environnement du conteneur :
...
"port_range": {
"min": 40101,
"max": 40201
},
...
On change ensuite le nom de l’instance utilisé pour l’appairage :
...
"pair_device_name": "roth2"
...
On peut ensuite redémarrer le conteneur avant l’appairage :
# docker restart moonlight-web-2
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;
}
}