Sign inSign up

pmietlicki/rustdesk-web-client

By pmietlicki

•Updated about 10 hours ago

A Docker image for running rustdesk web client. Includes all dependencies and configurations.

Image
2

10K+

pmietlicki/rustdesk-web-client repository overview

⁠RustDesk Web Client — images Docker

Ce dépôt construit et exécute le client web RustDesk selon deux variantes clairement séparées.

VarianteImagePort interneConfiguration runtime
Courantepmietlicki/docker-rustdesk-web-client:latest80Proxy Nginx via BACKEND_HOST et PROTO
Héritée v1pmietlicki/docker-rustdesk-web-client:v15000Variables RustDesk injectées dans localStorage

La variante v1 reste disponible pour les utilisateurs qui ont besoin de fournir directement les serveurs rendez-vous, relay et API au démarrage du conteneur.

⁠Démarrage de la variante courante

Copiez la configuration d’exemple, puis adaptez au minimum le backend RustDesk :

cp config-examples.env .env
$EDITOR .env
docker compose up --build --detach

L’interface est ensuite disponible sur http://localhost:5000⁠.

Le conteneur Nginx n’expose que son port HTTP 80. Les connexions API et WebSocket sont relayées sur ce même port :

  • /api/ vers le port backend 21114 ;
  • /ws/id vers le port backend 21118 ;
  • /ws/relay vers le port backend 21119.

BACKEND_HOST doit être un nom d’hôte ou une adresse IP joignable depuis le conteneur, sans schéma ni port. Une IPv6 doit être placée entre crochets. PROTO accepte uniquement http ou https et décrit la connexion entre Nginx et le backend ; la terminaison TLS publique doit être assurée par un reverse proxy ou un Ingress.

Exécution directe de l’image publiée :

docker run --detach \
  --name rustdesk-web-client \
  --publish 5000:80 \
  --env BACKEND_HOST=rustdesk.example.com \
  --env PROTO=https \
  pmietlicki/docker-rustdesk-web-client:latest

⁠Variante v1

docker run --detach \
  --name rustdesk-web-v1 \
  --publish 5000:5000 \
  --env CUSTOM_RENDEZVOUS_SERVER=rustdesk.example.com:21116 \
  --env RELAY_SERVER=rustdesk.example.com:21117 \
  --env API_SERVER=api.example.com \
  --env KEY='votre-clé-publique' \
  pmietlicki/docker-rustdesk-web-client:v1
VariableDéfautDescription
CUSTOM_RENDEZVOUS_SERVERvideServeur rendez-vous avec son port
RELAY_SERVERvideServeur relay avec son port
API_SERVERapi.rustdesk.comServeur API
KEYvideClé publique RustDesk
PORT5000Port HTTP interne de la variante v1

Les valeurs sont sérialisées en JSON avant d’être écrites dans env-config.js, afin que les guillemets, antislashs et retours à la ligne ne puissent pas casser le JavaScript généré.

Construction locale de cette variante :

docker build --file v1/Dockerfile --tag rustdesk-web-client:v1-local .

⁠Construction locale

Le script charge automatiquement .env sans l’exécuter comme du code shell.

./build.sh config   # configuration effective
./build.sh image    # construire uniquement l’image
./build.sh build    # nettoyer, construire, démarrer et contrôler la santé
./build.sh status   # état Docker réel
./build.sh logs     # suivre les logs
./build.sh stop
./build.sh start
./build.sh clean
./build.sh compose  # même parcours via Docker Compose

Le build par défaut utilise MonsieurBiche/rustdesk-web-client, branche fix-build, verrouillée au commit indiqué dans RUSTDESK_EXPECTED_COMMIT. Une autre source peut être choisie avec RUSTDESK_REPO et RUSTDESK_TAG; RUSTDESK_COMMIT permet de verrouiller explicitement n’importe quelle source sur un SHA.

L’archive web_deps.tar.gz est lue depuis le checkout courant : un build d’un commit donné n’utilise donc plus silencieusement l’archive d’une autre révision de main.

⁠Configuration .env

Toutes les valeurs disponibles sont documentées dans config-examples.env⁠. Les variables déjà définies dans l’environnement appelant ont priorité sur celles du fichier .env.

Principales valeurs :

VariableDéfautUsage
WEB_PORT5000Port HTTP publié sur l’hôte
BACKEND_HOST127.0.0.1Backend des routes API/WebSocket
PROTOhttpProtocole du backend (http ou https)
RUSTDESK_REPOMonsieurBiche/rustdesk-web-clientDépôt source
RUSTDESK_TAGfix-buildBranche ou tag source
RUSTDESK_COMMITvideSHA explicite facultatif
ENABLE_WSStrueConversion des URL ws:// en wss:// pendant le build
FLUTTER_VERSION3.22.1Version Flutter utilisée pour compiler
RUST_VERSION1.97.0Toolchain Rust utilisée pour la cible WebAssembly

Attention : 127.0.0.1 désigne le conteneur web lui-même. Fournissez un autre hôte si le backend RustDesk tourne dans un autre conteneur ou sur une autre machine.

⁠Validation

Les contrôles locaux rapides sont :

bash -n build.sh v1/server/server.sh tests/*.sh
sh -n docker/nginx/entrypoint.sh
python3 -m unittest discover -s tests -p 'test_*.py' -v
tests/test_build_script.sh
tests/test_nginx_entrypoint.sh
docker compose config --quiet
docker build --check .

La CI exécute les mêmes contrôles, ainsi que ShellCheck et Hadolint.

⁠Kubernetes

L’exemple historique de déploiement de la variante v1 est conservé dans docs/KUBERNETES.md⁠. Il doit être adapté à l’Ingress, au stockage et aux secrets de chaque environnement.

⁠Dépannage

./build.sh status
docker compose ps
docker compose logs --tail=100 rustdesk-web
curl --fail http://127.0.0.1:5000/

Si les routes /api/ ou /ws/* échouent alors que l’interface se charge, vérifiez que BACKEND_HOST est résolu depuis le conteneur et que les ports RustDesk concernés sont accessibles sur le réseau Docker.

⁠Licence

Ce dépôt suit la licence AGPL-3.0 du projet RustDesk. Consultez LICENSE⁠ ainsi que les licences incluses dans les dépendances distribuées.

Tag summary

Content type

Image

Digest

sha256:da957e62f…

Size

98 MB

Last updated

about 10 hours ago

docker pull pmietlicki/rustdesk-web-client