|
| 1 | +# RustDesk Server Programa |
| 2 | + |
| 3 | +[](https://github.com/rustdesk/rustdesk-server/actions/workflows/build.yaml) |
| 4 | + |
| 5 | +[**Download**](https://github.com/rustdesk/rustdesk-server/releases) |
| 6 | + |
| 7 | +[**Handleiding**](https://rustdesk.com/docs/nl/self-host/) |
| 8 | + |
| 9 | +[**FAQ**](https://github.com/rustdesk/rustdesk/wiki/FAQ) |
| 10 | + |
| 11 | +Zelf uw eigen RustDesk server hosten, het is gratis en open source. |
| 12 | + |
| 13 | +## Hoe handmatig opbouwen |
| 14 | + |
| 15 | +```bash |
| 16 | +cargo build --release |
| 17 | +``` |
| 18 | + |
| 19 | +In target/release worden drie uitvoerbare bestanden gegenereerd. |
| 20 | + |
| 21 | +- hbbs - RustDesk ID/Rendezvous server |
| 22 | +- hbbr - RustDesk relay server |
| 23 | +- rustdesk-utils - RustDesk CLI hulpprogramma's |
| 24 | + |
| 25 | +U kunt bijgewerkte binaries vinden op [releases](https://github.com/rustdesk/rustdesk-server/releases) pagina. |
| 26 | + |
| 27 | +Als u uw eigen server wilt ontwikkelen, is [rustdesk-server-demo](https://github.com/rustdesk/rustdesk-server-demo) misschien een betere en eenvoudigere start voor u dan deze repo. |
| 28 | + |
| 29 | +## Docker bestanden (images) |
| 30 | + |
| 31 | +Docker bestanden (images) worden automatisch gegenereerd en gepubliceerd bij elke github release. We hebben 2 soorten bestanden (images). |
| 32 | + |
| 33 | +### Klassiek bestand (image) |
| 34 | + |
| 35 | +Deze bestanden (images) zijn gebouwd voor `ubuntu-20.04` met als enige toevoeging de belangrijkste binaries (`hbbr` en `hbbs`). Ze zijn beschikbaar op [Docker hub](https://hub.docker.com/r/rustdesk/rustdesk-server/) met deze tags: |
| 36 | + |
| 37 | +| architectuur | image:tag | |
| 38 | +| --- | --- | |
| 39 | +| amd64 | `rustdesk/rustdesk-server:latest` | |
| 40 | +| arm64v8 | `rustdesk/rustdesk-server:latest-arm64v8` | |
| 41 | + |
| 42 | +U kunt deze bestanden (images) direct starten via `docker run` met deze commando's: |
| 43 | + |
| 44 | +```bash |
| 45 | +docker run --name hbbs --net=host -v "$PWD/data:/root" -d rustdesk/rustdesk-server:latest hbbs -r <relay-server-ip[:port]> |
| 46 | +docker run --name hbbr --net=host -v "$PWD/data:/root" -d rustdesk/rustdesk-server:latest hbbr |
| 47 | +``` |
| 48 | + |
| 49 | +of zonder --net=host, maar een directe P2P verbinding zal niet werken. |
| 50 | + |
| 51 | +Voor systemen die SELinux gebruiken is het vervangen van `/root` door `/root:z` nodig om de containers correct te laten draaien. Als alternatief kan SELinux containerscheiding volledig worden uitgeschakeld door de optie `--security-opt label=disable` toe te voegen. |
| 52 | + |
| 53 | +```bash |
| 54 | +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]> |
| 55 | +docker run --name hbbr -p 21117:21117 -p 21119:21119 -v "$PWD/data:/root" -d rustdesk/rustdesk-server:latest hbbr |
| 56 | +``` |
| 57 | + |
| 58 | +De `relay-server-ip` parameter is het IP adres (of dns naam) van de server waarop deze containers draaien. De **optionele** `port` parameter moet gebruikt worden als je een andere poort dan **21117** gebruikt voor `hbbr`. |
| 59 | + |
| 60 | +U kunt ook docker-compose gebruiken, met deze configuratie als sjabloon: |
| 61 | + |
| 62 | +```yaml |
| 63 | +version: '3' |
| 64 | + |
| 65 | +networks: |
| 66 | + rustdesk-net: |
| 67 | + external: false |
| 68 | + |
| 69 | +services: |
| 70 | + hbbs: |
| 71 | + container_name: hbbs |
| 72 | + ports: |
| 73 | + - 21115:21115 |
| 74 | + - 21116:21116 |
| 75 | + - 21116:21116/udp |
| 76 | + - 21118:21118 |
| 77 | + image: rustdesk/rustdesk-server:latest |
| 78 | + command: hbbs -r rustdesk.example.com:21117 |
| 79 | + volumes: |
| 80 | + - ./data:/root |
| 81 | + networks: |
| 82 | + - rustdesk-net |
| 83 | + depends_on: |
| 84 | + - hbbr |
| 85 | + restart: unless-stopped |
| 86 | + |
| 87 | + hbbr: |
| 88 | + container_name: hbbr |
| 89 | + ports: |
| 90 | + - 21117:21117 |
| 91 | + - 21119:21119 |
| 92 | + image: rustdesk/rustdesk-server:latest |
| 93 | + command: hbbr |
| 94 | + volumes: |
| 95 | + - ./data:/root |
| 96 | + networks: |
| 97 | + - rustdesk-net |
| 98 | + restart: unless-stopped |
| 99 | +``` |
| 100 | +
|
| 101 | +Bewerk regel 16 om te verwijzen naar uw relais-server (degene die luistert op poort 21117). U kunt ook de inhoudsregels (L18 en L33) bewerken indien nodig. |
| 102 | +
|
| 103 | +(docker-compose erkenning gaat naar @lukebarone en @QuiGonLeong) |
| 104 | +
|
| 105 | +## S6-overlay gebaseerde bestanden |
| 106 | +
|
| 107 | +Deze bestanden (images) zijn gebouwd tegen `busybox:stable` met toevoeging van de binaries (zowel hbbr als hbbs) en [S6-overlay](https://github.com/just-containers/s6-overlay). Ze zijn beschikbaar op [Docker hub](https://hub.docker.com/r/rustdesk/rustdesk-server-s6/) met deze tags: |
| 108 | + |
| 109 | +| architectuur | versie | image:tag | |
| 110 | +| --- | --- | --- | |
| 111 | +| multiarch | latest | `rustdesk/rustdesk-server-s6:latest` | |
| 112 | +| amd64 | latest | `rustdesk/rustdesk-server-s6:latest-amd64` | |
| 113 | +| i386 | latest | `rustdesk/rustdesk-server-s6:latest-i386` | |
| 114 | +| arm64v8 | latest | `rustdesk/rustdesk-server-s6:latest-arm64v8` | |
| 115 | +| armv7 | latest | `rustdesk/rustdesk-server-s6:latest-armv7` | |
| 116 | +| multiarch | 2 | `rustdesk/rustdesk-server-s6:2` | |
| 117 | +| amd64 | 2 | `rustdesk/rustdesk-server-s6:2-amd64` | |
| 118 | +| i386 | 2 | `rustdesk/rustdesk-server-s6:2-i386` | |
| 119 | +| arm64v8 | 2 | `rustdesk/rustdesk-server-s6:2-arm64v8` | |
| 120 | +| armv7 | 2 | `rustdesk/rustdesk-server-s6:2-armv7` | |
| 121 | +| multiarch | 2.0.0 | `rustdesk/rustdesk-server-s6:2.0.0` | |
| 122 | +| amd64 | 2.0.0 | `rustdesk/rustdesk-server-s6:2.0.0-amd64` | |
| 123 | +| i386 | 2.0.0 | `rustdesk/rustdesk-server-s6:2.0.0-i386` | |
| 124 | +| arm64v8 | 2.0.0 | `rustdesk/rustdesk-server-s6:2.0.0-arm64v8` | |
| 125 | +| armv7 | 2.0.0 | `rustdesk/rustdesk-server-s6:2.0.0-armv7` | |
| 126 | + |
| 127 | +Je wordt sterk aangeraden om het `multiarch` bestand (image) te gebruiken met de `major version` of `latest` tag. |
| 128 | + |
| 129 | +De S6-overlay fungeert als supervisor en houdt beide processen draaiende, dus met dit bestand (image) is het niet nodig om twee aparte draaiende containers te hebben. |
| 130 | + |
| 131 | +U kunt deze bestanden (images) direct starten via `docker run` met dit commando: |
| 132 | + |
| 133 | +```bash |
| 134 | +docker run --name rustdesk-server \ |
| 135 | + --net=host \ |
| 136 | + -e "RELAY=rustdeskrelay.example.com" \ |
| 137 | + -e "ENCRYPTED_ONLY=1" \ |
| 138 | + -v "$PWD/data:/data" -d rustdesk/rustdesk-server-s6:latest |
| 139 | +``` |
| 140 | + |
| 141 | +of zonder --net=host, maar een directe P2P verbinding zal niet werken. |
| 142 | + |
| 143 | +```bash |
| 144 | +docker run --name rustdesk-server \ |
| 145 | + -p 21115:21115 -p 21116:21116 -p 21116:21116/udp \ |
| 146 | + -p 21117:21117 -p 21118:21118 -p 21119:21119 \ |
| 147 | + -e "RELAY=rustdeskrelay.example.com" \ |
| 148 | + -e "ENCRYPTED_ONLY=1" \ |
| 149 | + -v "$PWD/data:/data" -d rustdesk/rustdesk-server-s6:latest |
| 150 | +``` |
| 151 | + |
| 152 | +Of u kunt een docker-compose bestand gebruiken: |
| 153 | + |
| 154 | +```yaml |
| 155 | +version: '3' |
| 156 | +
|
| 157 | +services: |
| 158 | + rustdesk-server: |
| 159 | + container_name: rustdesk-server |
| 160 | + ports: |
| 161 | + - 21115:21115 |
| 162 | + - 21116:21116 |
| 163 | + - 21116:21116/udp |
| 164 | + - 21117:21117 |
| 165 | + - 21118:21118 |
| 166 | + - 21119:21119 |
| 167 | + image: rustdesk/rustdesk-server-s6:latest |
| 168 | + environment: |
| 169 | + - "RELAY=rustdesk.example.com:21117" |
| 170 | + - "ENCRYPTED_ONLY=1" |
| 171 | + volumes: |
| 172 | + - ./data:/data |
| 173 | + restart: unless-stopped |
| 174 | +``` |
| 175 | + |
| 176 | +Voor dit container bestand (image) kunt u deze omgevingsvariabelen gebruiken, **naast** de variabelen in de volgende **ENV-variabelen** sectie: |
| 177 | + |
| 178 | +| variabele | optioneel | beschrijving | |
| 179 | +| --- | --- | --- | |
| 180 | +| RELAY | no | het IP-adres/DNS-naam van de machine waarop deze container draait | |
| 181 | +| ENCRYPTED_ONLY | yes | indien ingesteld op **"1"** wordt een niet-versleutelde verbinding niet geaccepteerd | |
| 182 | +| KEY_PUB | yes | het openbare deel van het key paar | |
| 183 | +| KEY_PRIV | yes | het private deel van het key paar | |
| 184 | + |
| 185 | +### Geheim beheer in S6-overlay gebaseerde bestanden (images) |
| 186 | + |
| 187 | +U kunt uiteraard het key paar bewaren in een docker volume, maar de optimale werkwijzen vertellen u om de keys niet op het bestandssysteem te schrijven; dus bieden we een paar opties. |
| 188 | + |
| 189 | +Bij het opstarten van de container wordt de aanwezigheid van het key paar gecontroleerd (`/data/id_ed25519.pub` en `/data/id_ed25519`) en als een van deze keys niet bestaat, wordt deze opnieuw aangemaakt vanuit ENV variabelen of docker secrets. |
| 190 | +Vervolgens wordt de geldigheid van het key paar gecontroleerd: indien publieke en private keys niet overeenkomen, stopt de container. |
| 191 | +Als je geen keys opgeeft, zal `hbbs` er een voor je genereren en op de standaard locatie plaatsen. |
| 192 | + |
| 193 | +#### Gebruik ENV om het key paar op te slaan |
| 194 | + |
| 195 | +U kunt docker omgevingsvariabelen gebruiken om de keys op te slaan. Volg gewoon deze voorbeelden: |
| 196 | + |
| 197 | +```bash |
| 198 | +docker run --name rustdesk-server \ |
| 199 | + --net=host \ |
| 200 | + -e "RELAY=rustdeskrelay.example.com" \ |
| 201 | + -e "ENCRYPTED_ONLY=1" \ |
| 202 | + -e "DB_URL=/db/db_v2.sqlite3" \ |
| 203 | + -e "KEY_PRIV=FR2j78IxfwJNR+HjLluQ2Nh7eEryEeIZCwiQDPVe+PaITKyShphHAsPLn7So0OqRs92nGvSRdFJnE2MSyrKTIQ==" \ |
| 204 | + -e "KEY_PUB=iEyskoaYRwLDy5+0qNDqkbPdpxr0kXRSZxNjEsqykyE=" \ |
| 205 | + -v "$PWD/db:/db" -d rustdesk/rustdesk-server-s6:latest |
| 206 | +``` |
| 207 | + |
| 208 | +```yaml |
| 209 | +version: '3' |
| 210 | +
|
| 211 | +services: |
| 212 | + rustdesk-server: |
| 213 | + container_name: rustdesk-server |
| 214 | + ports: |
| 215 | + - 21115:21115 |
| 216 | + - 21116:21116 |
| 217 | + - 21116:21116/udp |
| 218 | + - 21117:21117 |
| 219 | + - 21118:21118 |
| 220 | + - 21119:21119 |
| 221 | + image: rustdesk/rustdesk-server-s6:latest |
| 222 | + environment: |
| 223 | + - "RELAY=rustdesk.example.com:21117" |
| 224 | + - "ENCRYPTED_ONLY=1" |
| 225 | + - "DB_URL=/db/db_v2.sqlite3" |
| 226 | + - "KEY_PRIV=FR2j78IxfwJNR+HjLluQ2Nh7eEryEeIZCwiQDPVe+PaITKyShphHAsPLn7So0OqRs92nGvSRdFJnE2MSyrKTIQ==" |
| 227 | + - "KEY_PUB=iEyskoaYRwLDy5+0qNDqkbPdpxr0kXRSZxNjEsqykyE=" |
| 228 | + volumes: |
| 229 | + - ./db:/db |
| 230 | + restart: unless-stopped |
| 231 | +``` |
| 232 | + |
| 233 | +#### Gebruik Docker secrets om het key paar op te slaan |
| 234 | + |
| 235 | +U kunt ook docker secrets gebruiken om de keys op te slaan. |
| 236 | +Dit is handig als je **docker-compose** of **docker swarm** gebruikt. |
| 237 | +Volg deze voorbeelden: |
| 238 | + |
| 239 | +```bash |
| 240 | +cat secrets/id_ed25519.pub | docker secret create key_pub - |
| 241 | +cat secrets/id_ed25519 | docker secret create key_priv - |
| 242 | +docker service create --name rustdesk-server \ |
| 243 | + --secret key_priv --secret key_pub \ |
| 244 | + --net=host \ |
| 245 | + -e "RELAY=rustdeskrelay.example.com" \ |
| 246 | + -e "ENCRYPTED_ONLY=1" \ |
| 247 | + -e "DB_URL=/db/db_v2.sqlite3" \ |
| 248 | + --mount "type=bind,source=$PWD/db,destination=/db" \ |
| 249 | + rustdesk/rustdesk-server-s6:latest |
| 250 | +``` |
| 251 | + |
| 252 | +```yaml |
| 253 | +version: '3' |
| 254 | +
|
| 255 | +services: |
| 256 | + rustdesk-server: |
| 257 | + container_name: rustdesk-server |
| 258 | + ports: |
| 259 | + - 21115:21115 |
| 260 | + - 21116:21116 |
| 261 | + - 21116:21116/udp |
| 262 | + - 21117:21117 |
| 263 | + - 21118:21118 |
| 264 | + - 21119:21119 |
| 265 | + image: rustdesk/rustdesk-server-s6:latest |
| 266 | + environment: |
| 267 | + - "RELAY=rustdesk.example.com:21117" |
| 268 | + - "ENCRYPTED_ONLY=1" |
| 269 | + - "DB_URL=/db/db_v2.sqlite3" |
| 270 | + volumes: |
| 271 | + - ./db:/db |
| 272 | + restart: unless-stopped |
| 273 | + secrets: |
| 274 | + - key_pub |
| 275 | + - key_priv |
| 276 | +
|
| 277 | +secrets: |
| 278 | + key_pub: |
| 279 | + file: secrets/id_ed25519.pub |
| 280 | + key_priv: |
| 281 | + file: secrets/id_ed25519 |
| 282 | +``` |
| 283 | + |
| 284 | +## Hoe maak je een key paar |
| 285 | + |
| 286 | +Een key paar is nodig voor encryptie; u kunt het verstrekken, zoals eerder uitgelegd, maar u heeft een manier nodig om er een te maken. |
| 287 | + |
| 288 | +U kunt dit commando gebruiken om een key paar te genereren: |
| 289 | + |
| 290 | +```bash |
| 291 | +/usr/bin/rustdesk-utils genkeypair |
| 292 | +``` |
| 293 | + |
| 294 | +Als u het pakket `rustdesk-utils` niet op uw systeem hebt staan (of wilt), kunt u hetzelfde commando met docker uitvoeren: |
| 295 | + |
| 296 | +```bash |
| 297 | +docker run --rm --entrypoint /usr/bin/rustdesk-utils rustdesk/rustdesk-server-s6:latest genkeypair |
| 298 | +``` |
| 299 | + |
| 300 | +De uitvoer ziet er ongeveer zo uit: |
| 301 | + |
| 302 | +```text |
| 303 | +Public Key: 8BLLhtzUBU/XKAH4mep3p+IX4DSApe7qbAwNH9nv4yA= |
| 304 | +Secret Key: egAVd44u33ZEUIDTtksGcHeVeAwywarEdHmf99KM5ajwEsuG3NQFT9coAfiZ6nen4hfgNICl7upsDA0f2e/jIA== |
| 305 | +``` |
| 306 | + |
| 307 | +## .deb pakketten |
| 308 | + |
| 309 | +Voor elke binary zijn aparte .deb-pakketten beschikbaar, u kunt ze vinden in de [releases](https://github.com/rustdesk/rustdesk-server/releases). |
| 310 | +Deze pakketten zijn bedoeld voor de volgende distributies: |
| 311 | + |
| 312 | +- Ubuntu 22.04 LTS |
| 313 | +- Ubuntu 20.04 LTS |
| 314 | +- Ubuntu 18.04 LTS |
| 315 | +- Debian 11 bullseye |
| 316 | +- Debian 10 buster |
| 317 | + |
| 318 | +## ENV variabelen |
| 319 | + |
| 320 | +hbbs en hbbr kunnen worden geconfigureerd met deze ENV-variabelen. |
| 321 | +U kunt de variabelen zoals gebruikelijk opgeven of een `.env` bestand gebruiken. |
| 322 | + |
| 323 | +| variabele | binary | beschrijving | |
| 324 | +| --- | --- | --- | |
| 325 | +| ALWAYS_USE_RELAY | hbbs | indien ingesteld op **"Y"** wordt directe peer-verbinding niet toegestaan | |
| 326 | +| DB_URL | hbbs | path voor database bestand | |
| 327 | +| DOWNGRADE_START_CHECK | hbbr | vertraging (in seconden) voor downgrade-controle | |
| 328 | +| DOWNGRADE_THRESHOLD | hbbr | drempel van downgrade controle (bit/ms) | |
| 329 | +| KEY | hbbs/hbbr | indien ingesteld forceert dit het gebruik van een specifieke toets, indien ingesteld op **"_"** forceert dit het gebruik van een willekeurige toets | |
| 330 | +| LIMIT_SPEED | hbbr | snelheidslimiet (in Mb/s) | |
| 331 | +| PORT | hbbs/hbbr | luister-poort (21116 voor hbbs - 21117 voor hbbr) | |
| 332 | +| RELAY_SERVERS | hbbs | IP-adres/DNS-naam van de machines waarop hbbr draait (gescheiden door komma) | |
| 333 | +| RUST_LOG | all | debug-niveau instellen (error|warn|info|debug|trace) | |
| 334 | +| SINGLE_BANDWIDTH | hbbr | maximale bandbreedte voor een enkele verbinding (in Mb/s) | |
| 335 | +| TOTAL_BANDWIDTH | hbbr | maximale totale bandbreedte (in Mb/s) | |
0 commit comments