mirror of
https://github.com/rustdesk/doc.rustdesk.com.git
synced 2025-01-21 05:28:35 +01:00
ae30923abb
Adding step by step instructions for building the web client in docker
4.0 KiB
4.0 KiB
title | weight |
---|---|
Web | 23 |
How to build on Linux
Run below on Linux or Mac (works on Windows too, however you may need to slightly modify some commands, e.g. change wget
to curl.exe -O
):
git clone https://github.com/rustdesk/rustdesk
cd rustdesk
git checkout 3e8f7ed36df60045fc98f1cc989151548442a141
cd flutter/web/js
# install protoc first http://google.github.io/proto-lens/installing-protoc.html
npm install ts-proto
# only works with vite<=2.8, see: https://github.com/vitejs/vite/blob/main/docs/guide/build.md#chunking-strategy
npm install vite@2.8
# required for yarn build
npm install yarn -g
npm install typescript -g
npm install protoc -g
yarn build
cd ..
# about details of yuv converter, check this https://github.com/rustdesk/rustdesk/issues/364#issuecomment-1023562050
wget https://github.com/rustdesk/doc.rustdesk.com/releases/download/console/web_deps.tar.gz
# decompress to the current directory
tar xzf web_deps.tar.gz
cd ..
# Good Luck!
flutter run -d chrome
Currently, yuv converter and vp9 are the bottleneck
How to build with Docker
Run below on Linux or Mac
git clone https://github.com/JelleBuning/rustdesk.git
cd rustdesk
git switch fix_build
cd flutter/web/js
# install protoc first http://google.github.io/proto-lens/installing-protoc.html
npm install ts-proto
# only works with vite<=2.8, see: https://github.com/vitejs/vite/blob/main/docs/guide/build.md#chunking-strategy
npm install vite@2.8
# required for yarn build
npm install yarn -g
npm install typescript -g
npm install protoc -g
yarn build
- Create a
Dockerfile
with the following content underflutter
directory:
# Install Operating system and dependencies
FROM ubuntu:20.04
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update
RUN apt-get install -y curl git wget unzip libgconf-2-4 gdb libstdc++6 libglu1-mesa fonts-droid-fallback lib32stdc++6 python3 clang cmake ninja-build pkg-config libgtk-3-dev
RUN apt-get clean
# download Flutter SDK from Flutter Github repo
RUN git clone https://github.com/flutter/flutter.git /usr/local/flutter
# Set flutter environment path
ENV PATH="/usr/local/flutter/bin:/usr/local/flutter/bin/cache/dart-sdk/bin:${PATH}"
# Run flutter doctor
RUN flutter doctor
# Enable flutter web
RUN flutter channel master
RUN flutter upgrade
RUN flutter config --enable-web
# Copy files to container and build
RUN mkdir /app/
# I was unable to build web app from dockerfile
# so instead I built it locally and commented the "flutter build web" in this file
COPY . /app/
WORKDIR /app/
# RUN flutter build web
# Record the exposed port
EXPOSE 5000
# make server startup script executable and start the web server
RUN ["chmod", "+x", "/app/server/server.sh"]
ENTRYPOINT [ "/app/server/server.sh"]
- Create
server
directory underflutter
- Create a
server.sh
file with the following content underflutter/server
directory:
#!/bin/bash
# Set the port
PORT=5000
# Stop any program currently running on the set port
echo 'preparing port' $PORT '...'
fuser -k 5000/tcp
# switch directories
cd build/web/
# Start the server
echo 'Server starting on port' $PORT '...'
python3 -m http.server $PORT
- Build the docker image
docker build -t rustdesk-web-client .
- Run the docker image
docker run -p 5000:5000 rustdesk-web-client
- Open your browser and go to
localhost:5000
to see the web app
Rustdesk Web Client using existing Docker image
If you do not want to build the docker image yourself, you can use the image I built and uploaded to Docker Hub
- Pull the image
docker pull keyurbhole/flutter_web_desk
- Run the image
docker run -p 5000:5000 keyurbhole/flutter_web_desk
- Open your browser and go to
localhost:5000
to see the web app