aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--README-DE.md345
1 files changed, 345 insertions, 0 deletions
diff --git a/README-DE.md b/README-DE.md
new file mode 100644
index 0000000..dc177cc
--- /dev/null
+++ b/README-DE.md
@@ -0,0 +1,345 @@
+<p align="center">
+ <a href="#manuelles-erstellen">Erstellen</a> •
+ <a href="#docker-image">Docker</a> •
+ <a href="#s6-overlay-basierte-images">S6-Overlay</a> •
+ <a href="#ein-schlüsselpaar-erstellen">Schlüsselpaar</a> •
+ <a href="#debian-pakete">Debian-Pakete</a> •
+ <a href="#umgebungsvariablen">Umgebungsvariablen</a><br>
+ [<a href="README.md">English</a>] | [<a href="README-NL.md">Nederlands</a>]<br>
+</p>
+
+# RustDesk Server-Programm
+
+[![build](https://github.com/rustdesk/rustdesk-server/actions/workflows/build.yaml/badge.svg)](https://github.com/rustdesk/rustdesk-server/actions/workflows/build.yaml)
+
+[**Herunterladen**](https://github.com/rustdesk/rustdesk-server/releases)
+
+[**Handbuch**](https://rustdesk.com/docs/de/self-host/)
+
+[**FAQ**](https://github.com/rustdesk/rustdesk/wiki/FAQ)
+
+Hosten Sie Ihren eigenen RustDesk-Server selbst, er ist kostenlos und quelloffen.
+
+## Manuelles Erstellen
+
+```bash
+cargo build --release
+```
+
+In target/release werden drei ausführbare Dateien erzeugt.
+
+- hbbs - RustDesk ID/Rendezvous-Server
+- hbbr - RustDesk Relay-Server
+- rustdesk-utils - RustDesk CLI-Utilities
+
+[Hier](https://github.com/rustdesk/rustdesk-server/releases) finden Sie aktualisierte Binärdateien.
+
+Wenn Sie Ihren eigenen Server entwickeln wollen, könnte [rustdesk-server-demo](https://github.com/rustdesk/rustdesk-server-demo) ein besserer und einfacherer Start für Sie sein als dieses Repository.
+
+## Docker-Image
+
+Docker-Images werden automatisch generiert und bei jedem Github-Release veröffentlicht. Wir haben 2 Arten von Images.
+
+### Klassisches Image
+
+Diese Images sind mit `Ubuntu 20.04` gebaut, mit dem Zusatz der wichtigen Binärdateien (`hbbr` und `hbbs`). Sie sind auf [Docker hub](https://hub.docker.com/r/rustdesk/rustdesk-server/) mit diesen Tags verfügbar:
+
+| Architektur | Image:Tag |
+| --- | --- |
+| amd64 | `rustdesk/rustdesk-server:latest` |
+| arm64v8 | `rustdesk/rustdesk-server:latest-arm64v8` |
+
+Sie können diese Images direkt mit `docker run` mit diesen Befehlen starten:
+
+```bash
+docker run --name hbbs --net=host -v "$PWD/data:/root" -d rustdesk/rustdesk-server:latest hbbs -r <relay-server-ip[:port]>
+docker run --name hbbr --net=host -v "$PWD/data:/root" -d rustdesk/rustdesk-server:latest hbbr
+```
+
+Oder ohne `--net=host`, aber die P2P-Direktverbindung kann dann nicht funktionieren.
+
+Bei Systemen, die SELinux verwenden, muss `/root` durch `/root:z` ersetzt werden, damit die Container korrekt laufen. Alternativ kann die SELinux-Containertrennung durch Hinzufügen der Option `--security-opt label=disable` vollständig deaktiviert werden.
+
+```bash
+docker run --name hbbs -p 21115:21115 -p 21116:21116 -p 21116:21116/udp -p 21118:21118 -v "$PWD/data:/root" -d rustdesk/rustdesk-server:latest hbbs -r <relay-server-ip[:port]>
+docker run --name hbbr -p 21117:21117 -p 21119:21119 -v "$PWD/data:/root" -d rustdesk/rustdesk-server:latest hbbr
+```
+
+Der Parameter `relay-server-ip` ist die IP-Adresse (oder der DNS-Name) des Servers, auf dem diese Container laufen. Der **optionale** Parameter `port` muss verwendet werden, wenn Sie einen anderen Port als **21117** für `hbbr` verwenden.
+
+Sie können auch Docker Compose verwenden, wobei diese Konfiguration als Vorlage dient:
+
+```yaml
+version: '3'
+
+networks:
+ rustdesk-net:
+ external: false
+
+services:
+ hbbs:
+ container_name: hbbs
+ ports:
+ - 21115:21115
+ - 21116:21116
+ - 21116:21116/udp
+ - 21118:21118
+ image: rustdesk/rustdesk-server:latest
+ command: hbbs -r rustdesk.example.com:21117
+ volumes:
+ - ./data:/root
+ networks:
+ - rustdesk-net
+ depends_on:
+ - hbbr
+ restart: unless-stopped
+
+ hbbr:
+ container_name: hbbr
+ ports:
+ - 21117:21117
+ - 21119:21119
+ image: rustdesk/rustdesk-server:latest
+ command: hbbr
+ volumes:
+ - ./data:/root
+ networks:
+ - rustdesk-net
+ restart: unless-stopped
+```
+
+Bearbeiten Sie Zeile 16 so, dass sie auf Ihren Relay-Server verweist (den, der am Port 21117 lauscht). Sie können auch die Zeilen für die Volumes (Zeile 18 und 33) bearbeiten, wenn Sie dies wünschen.
+
+(Die Anerkennung für Docker Compose geht an @lukebarone und @QuiGonLeong.)
+
+## S6-Overlay-basierte Images
+
+Diese Images sind mit `busybox:stable` gebaut, mit dem Zusatz Binärdateien (sowohl hbbr als auch hbbs) und [S6-overlay](https://github.com/just-containers/s6-overlay). Sie sind auf [Docker hub](https://hub.docker.com/r/rustdesk/rustdesk-server-s6/) mit diesen Tags verfügbar:
+
+| Architektur | Version | Image:Tag |
+| --- | --- | --- |
+| multiarch | neueste | `rustdesk/rustdesk-server-s6:latest` |
+| amd64 | neueste | `rustdesk/rustdesk-server-s6:latest-amd64` |
+| i386 | neueste | `rustdesk/rustdesk-server-s6:latest-i386` |
+| arm64v8 | neueste | `rustdesk/rustdesk-server-s6:latest-arm64v8` |
+| armv7 | neueste | `rustdesk/rustdesk-server-s6:latest-armv7` |
+| multiarch | 2 | `rustdesk/rustdesk-server-s6:2` |
+| amd64 | 2 | `rustdesk/rustdesk-server-s6:2-amd64` |
+| i386 | 2 | `rustdesk/rustdesk-server-s6:2-i386` |
+| arm64v8 | 2 | `rustdesk/rustdesk-server-s6:2-arm64v8` |
+| armv7 | 2 | `rustdesk/rustdesk-server-s6:2-armv7` |
+| multiarch | 2.0.0 | `rustdesk/rustdesk-server-s6:2.0.0` |
+| amd64 | 2.0.0 | `rustdesk/rustdesk-server-s6:2.0.0-amd64` |
+| i386 | 2.0.0 | `rustdesk/rustdesk-server-s6:2.0.0-i386` |
+| arm64v8 | 2.0.0 | `rustdesk/rustdesk-server-s6:2.0.0-arm64v8` |
+| armv7 | 2.0.0 | `rustdesk/rustdesk-server-s6:2.0.0-armv7` |
+
+Es wird dringend empfohlen, das Image `multiarch` entweder mit dem Tag `major version` oder `latest` zu verwenden.
+
+Das S6-Overlay fungiert als Supervisor und hält beide Prozesse am Laufen, sodass bei diesem Image keine zwei separaten Container benötigt werden.
+
+Sie können diese Images direkt mit `docker run` mit diesem Befehl starten:
+
+```bash
+docker run --name rustdesk-server \
+ --net=host \
+ -e "RELAY=rustdeskrelay.example.com" \
+ -e "ENCRYPTED_ONLY=1" \
+ -v "$PWD/data:/data" -d rustdesk/rustdesk-server-s6:latest
+```
+
+oder ohne `--net=host`, aber die P2P-Direktverbindung kann dann nicht funktionieren.
+
+```bash
+docker run --name rustdesk-server \
+ -p 21115:21115 -p 21116:21116 -p 21116:21116/udp \
+ -p 21117:21117 -p 21118:21118 -p 21119:21119 \
+ -e "RELAY=rustdeskrelay.example.com" \
+ -e "ENCRYPTED_ONLY=1" \
+ -v "$PWD/data:/data" -d rustdesk/rustdesk-server-s6:latest
+```
+
+Oder Sie können eine Docker Compose-Datei verwenden:
+
+```yaml
+version: '3'
+
+services:
+ rustdesk-server:
+ container_name: rustdesk-server
+ ports:
+ - 21115:21115
+ - 21116:21116
+ - 21116:21116/udp
+ - 21117:21117
+ - 21118:21118
+ - 21119:21119
+ image: rustdesk/rustdesk-server-s6:latest
+ environment:
+ - "RELAY=rustdesk.example.com:21117"
+ - "ENCRYPTED_ONLY=1"
+ volumes:
+ - ./data:/data
+ restart: unless-stopped
+```
+
+Für dieses Container-Image können Sie diese Umgebungsvariablen verwenden, **zusätzlich** zu den im Abschnitt **Umgebungsvariablen** angegebenen Variablen:
+
+| Variable | optional | Beschreibung |
+| --- | --- | --- |
+| RELAY | nein | IP-Adresse/DNS-Name des Rechners, auf dem dieser Container läuft |
+| ENCRYPTED_ONLY | ja | Wenn auf **1** gesetzt, wird eine unverschlüsselte Verbindung nicht akzeptiert |
+| KEY_PUB | ja | Öffentlicher Teil des Schlüsselpaares |
+| KEY_PRIV | ja | Privater Teil des Schlüsselpaares |
+
+### Verwaltung von Geheimnissen in S6-Overlay-basierten Images
+
+Sie können das Schlüsselpaar natürlich in einem Docker-Volume aufbewahren, aber empfehlenswert ist, die Schlüssel nicht in das Dateisystem zu schreiben.
+
+Beim Start des Containers wird das Vorhandensein des Schlüsselpaares geprüft (`/data/id_ed25519.pub` und `/data/id_ed25519`). Wenn einer dieser Schlüssel nicht existiert, wird er aus den Umgebungsvariablen oder den Docker-Geheimnissen neu erstellt.
+Dann wird die Gültigkeit des Schlüsselpaares überprüft: Wenn öffentlicher und privater Schlüssel nicht übereinstimmen, wird der Container angehalten.
+Wenn Sie keine Schlüssel angeben, erzeugt `hbbs` einen für Sie und legt ihn am Standardspeicherort ab.
+
+#### Umgebungsvariablen zum Speichern des Schlüsselpaars verwenden
+
+Sie können Docker-Umgebungsvariablen verwenden, um die Schlüssel zu speichern. Folgen Sie einfach diesen Beispielen:
+
+```bash
+docker run --name rustdesk-server \
+ --net=host \
+ -e "RELAY=rustdeskrelay.example.com" \
+ -e "ENCRYPTED_ONLY=1" \
+ -e "DB_URL=/db/db_v2.sqlite3" \
+ -e "KEY_PRIV=FR2j78IxfwJNR+HjLluQ2Nh7eEryEeIZCwiQDPVe+PaITKyShphHAsPLn7So0OqRs92nGvSRdFJnE2MSyrKTIQ==" \
+ -e "KEY_PUB=iEyskoaYRwLDy5+0qNDqkbPdpxr0kXRSZxNjEsqykyE=" \
+ -v "$PWD/db:/db" -d rustdesk/rustdesk-server-s6:latest
+```
+
+```yaml
+version: '3'
+
+services:
+ rustdesk-server:
+ container_name: rustdesk-server
+ ports:
+ - 21115:21115
+ - 21116:21116
+ - 21116:21116/udp
+ - 21117:21117
+ - 21118:21118
+ - 21119:21119
+ image: rustdesk/rustdesk-server-s6:latest
+ environment:
+ - "RELAY=rustdesk.example.com:21117"
+ - "ENCRYPTED_ONLY=1"
+ - "DB_URL=/db/db_v2.sqlite3"
+ - "KEY_PRIV=FR2j78IxfwJNR+HjLluQ2Nh7eEryEeIZCwiQDPVe+PaITKyShphHAsPLn7So0OqRs92nGvSRdFJnE2MSyrKTIQ=="
+ - "KEY_PUB=iEyskoaYRwLDy5+0qNDqkbPdpxr0kXRSZxNjEsqykyE="
+ volumes:
+ - ./db:/db
+ restart: unless-stopped
+```
+
+#### Docker-Geheimnisse zum Speichern des Schlüsselpaars verwenden
+
+Sie können alternativ auch Docker-Geheimnisse verwenden, um die Schlüssel zu speichern.
+Dies ist nützlich, wenn Sie **Docker Compose** oder **Docker Swarm** verwenden.
+Folgen Sie einfach diesem Beispiel:
+
+```bash
+cat secrets/id_ed25519.pub | docker secret create key_pub -
+cat secrets/id_ed25519 | docker secret create key_priv -
+docker service create --name rustdesk-server \
+ --secret key_priv --secret key_pub \
+ --net=host \
+ -e "RELAY=rustdeskrelay.example.com" \
+ -e "ENCRYPTED_ONLY=1" \
+ -e "DB_URL=/db/db_v2.sqlite3" \
+ --mount "type=bind,source=$PWD/db,destination=/db" \
+ rustdesk/rustdesk-server-s6:latest
+```
+
+```yaml
+version: '3'
+
+services:
+ rustdesk-server:
+ container_name: rustdesk-server
+ ports:
+ - 21115:21115
+ - 21116:21116
+ - 21116:21116/udp
+ - 21117:21117
+ - 21118:21118
+ - 21119:21119
+ image: rustdesk/rustdesk-server-s6:latest
+ environment:
+ - "RELAY=rustdesk.example.com:21117"
+ - "ENCRYPTED_ONLY=1"
+ - "DB_URL=/db/db_v2.sqlite3"
+ volumes:
+ - ./db:/db
+ restart: unless-stopped
+ secrets:
+ - key_pub
+ - key_priv
+
+secrets:
+ key_pub:
+ file: secrets/id_ed25519.pub
+ key_priv:
+ file: secrets/id_ed25519
+```
+
+## Ein Schlüsselpaar erstellen
+
+Für die Verschlüsselung wird ein Schlüsselpaar benötigt, das Sie bereitstellen können, aber Sie benötigen eine Möglichkeit, es zu erstellen.
+
+Mit diesem Befehl können Sie ein Schlüsselpaar erzeugen:
+
+```bash
+/usr/bin/rustdesk-utils genkeypair
+```
+
+Wenn Sie das Paket `rustdesk-utils` nicht auf Ihrem System installiert haben (oder dies nicht wollen), können Sie den gleichen Befehl mit Docker aufrufen:
+
+```bash
+docker run --rm --entrypoint /usr/bin/rustdesk-utils rustdesk/rustdesk-server-s6:latest genkeypair
+```
+
+Die Ausgabe sieht dann etwa so aus:
+
+```text
+Public Key: 8BLLhtzUBU/XKAH4mep3p+IX4DSApe7qbAwNH9nv4yA=
+Secret Key: egAVd44u33ZEUIDTtksGcHeVeAwywarEdHmf99KM5ajwEsuG3NQFT9coAfiZ6nen4hfgNICl7upsDA0f2e/jIA==
+```
+
+## Debian-Pakete
+
+Für jede Binärdatei stehen separate Debian-Pakete zur Verfügung, die Sie in [Releases](https://github.com/rustdesk/rustdesk-server/releases) finden können.
+Diese Pakete sind für die folgenden Distributionen gedacht:
+
+- Ubuntu 22.04 LTS
+- Ubuntu 20.04 LTS
+- Ubuntu 18.04 LTS
+- Debian 11 Bullseye
+- Debian 10 Buster
+
+## Umgebungsvariablen
+
+hbbs und hbbr können mit diesen Umgebungsvariablen konfiguriert werden.
+Sie können die Variablen wie üblich angeben oder eine `.env`-Datei verwenden.
+
+| Variable | Binärdatei | Beschreibung |
+| --- | --- | --- |
+| ALWAYS_USE_RELAY | hbbs | Wenn auf **Y** gesetzt, wird eine direkte Verbindung nicht zugelassen. |
+| DB_URL | hbbs | Pfad für die Datenbankdatei |
+| DOWNGRADE_START_CHECK | hbbr | Verzögerung (in Sekunden) vor der Downgrade-Prüfung |
+| DOWNGRADE_THRESHOLD | hbbr | Schwellenwert der Downgrade-Prüfung (Bit/ms)) |
+| KEY | hbbs/hbbr | Wenn gesetzt, wird die Verwendung eines bestimmten Schlüssels erzwungen. Wenn auf **_** gesetzt, wird die Verwendung eines beliebigen Schlüssels erzwungen. |
+| LIMIT_SPEED | hbbr | Höchstgeschwindigkeit (in Mb/s) |
+| PORT | hbbs/hbbr | Lauschender Port (21116 für hbbs - 21117 für hbbr) |
+| RELAY_SERVERS | hbbs | IP-Adresse/DNS-Name der Rechner, auf denen hbbr läuft (durch Komma getrennt) |
+| RUST_LOG | all | Debug-Level einstellen (error\|warn\|info\|debug\|trace) |
+| SINGLE_BANDWIDTH | hbbr | Maximale Bandbreite für eine einzelne Verbindung (in Mb/s) |
+| TOTAL_BANDWIDTH | hbbr | Maximale Gesamtbandbreite (in Mb/s) |