mirror of
https://github.com/rustdesk/doc.rustdesk.com.git
synced 2025-01-06 06:20:09 +01:00
177 lines
4.9 KiB
Markdown
177 lines
4.9 KiB
Markdown
---
|
|
title: Web
|
|
weight: 23
|
|
---
|
|
|
|
### Auf Linux erstellen
|
|
|
|
Führen Sie die folgenden Schritte unter Linux oder Mac aus (funktioniert auch unter Windows, allerdings müssen Sie einige Befehle leicht abändern, z. B. `wget` in `curl.exe -O`):
|
|
|
|
```sh
|
|
git clone https://github.com/JelleBuning/rustdesk.git
|
|
cd rustdesk
|
|
git switch fix_build
|
|
cd flutter/web/js
|
|
|
|
# Zuerst protoc installieren, siehe https://google.github.io/proto-lens/installing-protoc.html
|
|
npm install ts-proto
|
|
# Funktioniert nur mit vite ≤ 2.8, siehe https://github.com/vitejs/vite/blob/main/docs/guide/build.md#chunking-strategy
|
|
npm install vite@2.8
|
|
|
|
# Für die Erstellung von yarn erforderlich
|
|
npm install yarn -g
|
|
npm install typescript -g
|
|
npm install protoc -g
|
|
|
|
yarn build
|
|
|
|
cd ..
|
|
|
|
# Für Details zum YUV-Konverter siehe https://github.com/rustdesk/rustdesk/issues/364#issuecomment-1023562050
|
|
wget https://github.com/rustdesk/doc.rustdesk.com/releases/download/console/web_deps.tar.gz
|
|
# In den aktuellen Ordner entpacken
|
|
tar xzf web_deps.tar.gz
|
|
|
|
cd ..
|
|
|
|
# Viel Glück!
|
|
flutter run -d chrome
|
|
```
|
|
|
|
### Version auf Linux erstellen
|
|
|
|
Wenn Sie den Webclient hosten wollen, sollten Sie eine Version erstellen, bevor Sie ihn auf einem Webserver ausführen.
|
|
Führen Sie dazu die oben beschriebenen Schritte aus, mit Ausnahme des Befehls `flutter run -d chrome`. Fahren Sie mit den folgenden Befehlen fort:
|
|
|
|
```sh
|
|
flutter build web --release
|
|
cd build/web
|
|
# Sie können jeden beliebigen Server verwenden, hier nur ein Beispiel
|
|
python -m http.server 8000
|
|
```
|
|
|
|
Um die Erstellung auf HTTPS zu konfigurieren, empfehlen wir, dieser [Anleitung](https://medium.com/flutter-community/how-to-host-flutter-using-nginx-a71bcb11d96) zu folgen.
|
|
|
|
> Derzeit sind YUV-Konverter und VP9 der Engpass.
|
|
|
|
### Mit Docker erstellen
|
|
|
|
Führen Sie die folgenden Schritte unter Linux oder Mac aus:
|
|
- Beginnen Sie mit der Installation von flutter für [Linux](https://docs.flutter.dev/get-started/install/linux#install-flutter-manually) oder [macOS](https://docs.flutter.dev/get-started/install/macos).
|
|
- Flutter-App lokal einrichten:
|
|
|
|
```sh
|
|
git clone https://github.com/JelleBuning/rustdesk.git
|
|
cd rustdesk
|
|
git switch fix_build
|
|
cd flutter/web/js
|
|
|
|
# Zuerst protoc installieren, siehe https://google.github.io/proto-lens/installing-protoc.html
|
|
npm install ts-proto
|
|
# Funktioniert nur mit vite ≤ 2.8, siehe https://github.com/vitejs/vite/blob/main/docs/guide/build.md#chunking-strategy
|
|
npm install vite@2.8
|
|
|
|
# Für die Erstellung von yarn erforderlich
|
|
npm install yarn -g
|
|
npm install typescript -g
|
|
npm install protoc -g
|
|
|
|
yarn build
|
|
```
|
|
|
|
- Erstellen Sie ein `Dockerfile` im Ordner `flutter` mit folgendem Inhalt:
|
|
|
|
```Dockerfile
|
|
# Betriebssystem und Abhängigkeiten installieren
|
|
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
|
|
|
|
# Flutter SDK vom GitHub-Repository herunterladen
|
|
RUN git clone https://github.com/flutter/flutter.git /usr/local/flutter
|
|
|
|
# Flutter-Umgebungspfad einstellen
|
|
ENV PATH="/usr/local/flutter/bin:/usr/local/flutter/bin/cache/dart-sdk/bin:${PATH}"
|
|
|
|
# flutter doctor ausführen
|
|
RUN flutter doctor
|
|
|
|
# flutter web aktivieren
|
|
RUN flutter channel master
|
|
RUN flutter upgrade
|
|
RUN flutter config --enable-web
|
|
|
|
# Dateien in den Container kopieren und erstellen
|
|
RUN mkdir /app/
|
|
# Die Web-App kann nicht aus dem Dockerfile gebaut werden.
|
|
# Stattdessen wird sie lokal gebaut und "flutter build web" wird auskommentiert.
|
|
COPY . /app/
|
|
WORKDIR /app/
|
|
# RUN flutter build web
|
|
|
|
# Erfassung des offenen Ports
|
|
EXPOSE 5000
|
|
|
|
# Startskript des Servers ausführbar machen und den Webserver starten
|
|
RUN ["chmod", "+x", "/app/server/server.sh"]
|
|
|
|
ENTRYPOINT [ "/app/server/server.sh"]
|
|
```
|
|
|
|
- Legen Sie den Ordner `server` unter `flutter` an.
|
|
- Erstellen Sie eine Datei `server.sh` im Ordner `flutter/server` mit folgendem Inhalt:
|
|
|
|
```sh
|
|
#!/bin/bash
|
|
|
|
# Port festlegen
|
|
PORT=5000
|
|
|
|
# Anhalten aller Programme, die derzeit auf dem eingestellten Port laufen
|
|
echo 'Vorbereitung des Ports' $PORT '...'
|
|
fuser -k 5000/tcp
|
|
|
|
# Ordner wechseln
|
|
cd build/web/
|
|
|
|
# Server starten
|
|
echo 'Server startet auf Port' $PORT '...'
|
|
python3 -m http.server $PORT
|
|
```
|
|
|
|
- Das Docker-Image erstellen:
|
|
|
|
```sh
|
|
docker build -t rustdesk-web-client .
|
|
```
|
|
|
|
- Das Docker-Image ausführen:
|
|
|
|
```sh
|
|
docker run -p 5000:5000 rustdesk-web-client
|
|
```
|
|
|
|
- Öffnen Sie Ihren Browser und gehen Sie zu `localhost:5000`, um die Webanwendung zu sehen.
|
|
|
|
### RustDesk-Webclient mit vorhandenem Docker-Image
|
|
|
|
Wenn Sie das Docker-Image nicht selbst erstellen möchten, können Sie das Image auf [Docker Hub](https://hub.docker.com/r/keyurbhole/flutter_web_desk) verwenden.
|
|
|
|
- Das Image ziehen:
|
|
|
|
```sh
|
|
docker pull keyurbhole/flutter_web_desk
|
|
```
|
|
|
|
- Das Docker-Image ausführen:
|
|
|
|
```sh
|
|
docker run -p 5000:5000 keyurbhole/flutter_web_desk
|
|
```
|
|
|
|
- Öffnen Sie Ihren Browser und gehen Sie zu `localhost:5000`, um die Webanwendung zu sehen.
|