Merge branch 'master' into master

This commit is contained in:
RustDesk 2023-07-16 11:04:38 +08:00 committed by GitHub
commit 0e33143c14
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
20 changed files with 91 additions and 93 deletions

View File

@ -1,8 +1,8 @@
---
title: Build
title: Build
weight: 1
---
Check out [build.py](https://github.com/rustdesk/rustdesk/blob/master/build.py) for packaging desktop version.
{{% children depth="3" showhidden="true" %}}
{{% children depth="3" showhidden="true" %}}

View File

@ -1,5 +1,5 @@
---
title: Docker
title: Docker
weight: 30
---
@ -33,4 +33,4 @@ Or, if you're running a release executable:
target/release/rustdesk
```
Please ensure that you are running these commands from the root of the RustDesk repository, otherwise the application may be unable to find the required resources. Also note that other cargo subcommands such as `install` or `run` are not currently supported via this method as they would install or run the program inside the container instead of the host.
Please ensure that you are running these commands from the root of the RustDesk repository, otherwise the application may be unable to find the required resources. Also note that other cargo subcommands such as `install` or `run` are not currently supported via this method as they would install or run the program inside the container instead of the host.

View File

@ -15,7 +15,7 @@ weight: 40
### Solution
Use a browser to download `https://chromium.googlesource.com/libyuv/libyuv/+archive/287158925b0e03ea4499a18b4e08478c5781541b.tar.gz`, then move it into `vcpkg/downloads` and reinstall.
Use a browser to download `https://chromium.googlesource.com/libyuv/libyuv/+archive/287158925b0e03ea4499a18b4e08478c5781541b.tar.gz`, then move it into `vcpkg/downloads` and reinstall.
@ -44,7 +44,7 @@ Maybe the author used `git force push` and the previous commit was overwritten.
### Solution
`cargo update`, force the package to be updated
`cargo update`, force the package to be updated.
@ -58,11 +58,11 @@ thread 'main' panicked at 'Failed to find package: VcpkgNotFound("No vcpkg insta
### Solution
Add `VCPKG_ROOT` environment variable, or run with `VCPKG_ROOT=<vcpkg_dir> cargo run`
Add `VCPKG_ROOT` environment variable, or run with `VCPKG_ROOT=<vcpkg_dir> cargo run`.
## clang not installed, or LIBCLANG_PATH not set
## clang not installed, or LIBCLANG_PATH not set
### Error
@ -72,4 +72,4 @@ thread 'main' panicked at 'Unable to find libclang: "couldn't find any valid sha
### Solution
Install [llvm](https://releases.llvm.org/download.html), Add the `LIBCLANG_PATH` environment variable as `llvm_install_dir/bin`
Install [LLVM](https://releases.llvm.org/download.html), add the `LIBCLANG_PATH` environment variable as `llvm_install_dir/bin`.

View File

@ -1,5 +1,5 @@
---
title: iOS
title: iOS
weight: 23
---

View File

@ -5,7 +5,7 @@ weight: 10
## Dependencies
Desktop versions use [sciter](https://sciter.com/) for GUI, please download sciter dynamic library yourself.
Desktop versions use [Sciter](https://sciter.com/) for GUI, please download Sciter dynamic library yourself.
[Windows](https://raw.githubusercontent.com/c-smile/sciter-sdk/master/bin.win/x64/sciter.dll) |
[Linux](https://raw.githubusercontent.com/c-smile/sciter-sdk/master/bin.lnx/x64/libsciter-gtk.so) |
@ -54,7 +54,7 @@ export VCPKG_ROOT=$HOME/vcpkg
vcpkg/vcpkg install libvpx libyuv opus aom
```
### Fix libvpx (For Fedora)
### Fix libvpx (for Fedora)
```sh
cd vcpkg/buildtrees/libvpx/src

View File

@ -27,7 +27,7 @@ yarn build
cd ..
# About details of yuv converter, check this https://github.com/rustdesk/rustdesk/issues/364#issuecomment-1023562050
# 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
@ -52,7 +52,7 @@ python -m http.server 8000
To configure the build on HTTPS we would recommend following the instructions from the following [source](https://medium.com/flutter-community/how-to-host-flutter-using-nginx-a71bcb11d96).
> Currently, yuv converter and vp9 are the bottleneck.
> Currently, YUV converter and VP9 are the bottleneck.
## How to build with Docker
@ -143,13 +143,13 @@ echo 'Server starting on port' $PORT '...'
python3 -m http.server $PORT
```
- Build the docker image:
- Build the Docker image:
```sh
docker build -t rustdesk-web-client .
```
- Run the docker image:
- Run the Docker image:
```sh
docker run -p 5000:5000 rustdesk-web-client
@ -159,7 +159,7 @@ docker run -p 5000:5000 rustdesk-web-client
### 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](https://hub.docker.com/r/keyurbhole/flutter_web_desk).
If you do not want to build the Docker image yourself, you can use the image I built and uploaded to [Docker Hub](https://hub.docker.com/r/keyurbhole/flutter_web_desk).
- Pull the image:

View File

@ -12,14 +12,15 @@ The command line commands here must be run in git-bash not command prompt or you
### C++ build environment
Download [msvc](https://visualstudio.microsoft.com/) and install.
Select `Windows` as Developer machine OS and check `C++`, then download Visual Studo Community version and install. The installation may take a while.
Select `Windows` as Developer machine OS and check `C++`, then download Visual Studio Community version and install. The installation may take a while.
### Rust develop environment
Download [rustup-init.exe](https://static.rust-lang.org/rustup/dist/x86_64-pc-windows-msvc/rustup-init.exe) and run it as administrator to install `rust`.
### vcpkg
Go to the folder you want to clone vcpkg and use [git-bash](https://git-scm.com/download/win) to run the following commands download `vcpkg`, install 64bit version of `libvpx`, `libyuv` and `opus`.
Go to the folder you want to clone vcpkg and use [git-bash](https://git-scm.com/download/win) to run the following commands, download `vcpkg`, install 64-bit version of `libvpx`, `libyuv` and `opus`.
If you don't have `git` installed, get `git` [here](https://git-scm.com/download/win).
```shell
@ -32,21 +33,20 @@ If you don't have `git` installed, get `git` [here](https://git-scm.com/download
vcpkg/vcpkg install libvpx:x64-windows-static libyuv:x64-windows-static opus:x64-windows-static aom:x64-windows-static
```
Add System environment variable `VCPKG_ROOT`=`<path>\vcpkg`. The `<path>` should be the location you chose above to clone `vcpkg`.
Add System environment variable `VCPKG_ROOT`=`<path>\vcpkg`. The `<path>` should be the location you choose above to clone `vcpkg`.
![](/docs/en/dev/build/windows/images/env.png)
### sciter
### Sciter
Desktop versions use [sciter](https://sciter.com/) for GUI, please download [sciter.dll](https://raw.githubusercontent.com/c-smile/sciter-sdk/master/bin.win/x64/sciter.dll)
Desktop versions use [Sciter](https://sciter.com/) for GUI, please download [sciter.dll](https://raw.githubusercontent.com/c-smile/sciter-sdk/master/bin.win/x64/sciter.dll)
### llvm
### LLVM
rust-bindgen depends on clang, download [llvm](https://github.com/llvm/llvm-project/releases) and install, add System environment variable `LIBCLANG_PATH`=`<llvm_install_dir>/bin`.
rust-bindgen depends on clang, download [LLVM](https://github.com/llvm/llvm-project/releases) and install, add System environment variable `LIBCLANG_PATH`=`<llvm_install_dir>/bin`.
You can download 15.02 of the LLVM binaries here: [64-bit](https://github.com/llvm/llvm-project/releases/download/llvmorg-15.0.2/LLVM-15.0.2-win64.exe) / [32-bit](https://github.com/llvm/llvm-project/releases/download/llvmorg-15.0.2/LLVM-15.0.2-win32.exe)
## Build
### Default

View File

@ -1,10 +1,9 @@
---
title: Control your Android
title: Control your Android
weight: 2
---
### Share screen/files of your Android phone
------
Starting from version 1.1.9, the Android client has added the functions of sharing the phone screen and sharing the file system of the phone.
@ -12,7 +11,6 @@ Starting from version 1.1.9, the Android client has added the functions of shari
- Android 10 or above is required to share the internal audio of the mobile phone system
- iOS does not yet support screen sharing
#### **Request permissions and start services**
Click on `Share Screen` from the bottom navigation bar
@ -21,8 +19,8 @@ Configure various permissions as needed. Every time you start RustDesk, you need
![](/docs/en/manual/mobile/images/server_off_en.jpg?width=300px)
| Permissions | Description |
| --------------- | --------------------------------------------------------- |
| Permissions | Description |
| -- | -- |
| Screen Capture | Whether to enable screen capture sharing permission, the monitoring service will be enabled at the same time as startup |
| Input Control* | Whether to allow the controller to control the input of the mobile phone, such as virtual touch screen operation with the mouse |
| File transfer* | Whether to enable file transfer permission, after startup, you can remotely control the file system of this phone |
@ -32,7 +30,7 @@ Configure various permissions as needed. Every time you start RustDesk, you need
Above * represents special permissions. To obtain such permissions, you need to jump to the Android system settings page to obtain them manually. The details are as follows
{{% /notice %}}
#### **Special Permission Request- File**
#### **Special Permission Request - File**
| Requesting Android file permissions will automatically jump to the system settings page |
| :---------------: |
@ -40,7 +38,7 @@ Above * represents special permissions. To obtain such permissions, you need to
#### **Special Permission Request - mouse input**
| Step 1 Find "Installed Services" | Step 2 Start RustDesk Input |
| --------------- | -------------------------------------------------------- |
| -- | -- |
| ![](/docs/en/manual/mobile/images/get_input1_en.jpg?width=300px) | ![](/docs/en/manual/mobile/images/get_input2_en.jpg?width=300px) |
{{% notice note %}}
@ -63,7 +61,7 @@ If the `file transfer` permission is enabled, it can also accept file control re
After the service is started, a unique ID and random password will be automatically obtained for this device. Other devices can control the phone through the ID and password, or manually confirm when a new request is received.
| Before starting the service | After starting the service |
| --------------- | -------------------------------------------------------- |
| -- | -- |
| ![](/docs/en/manual/mobile/images/server_off_en.jpg?width=300px) | ![](/docs/en/manual/mobile/images/server_on_en.jpg?width=300px) |
{{% notice note %}}
@ -79,5 +77,5 @@ After the service is started, a unique ID and random password will be automatica
##### Mobile terminal
| You can stop the service or close the specified connection at any time | You can receive or initiate chats |
| --------------- | -------------------------------------------------------- |
| ![](/docs/en/manual/mobile/images/server_on_en.jpg?width=300px) | ![](/docs/en/manual/mobile/images/android_server2_en.jpg?width=300px) |
| -- | -- |
| ![](/docs/en/manual/mobile/images/server_on_en.jpg?width=300px) | ![](/docs/en/manual/mobile/images/android_server2_en.jpg?width=300px) |

View File

@ -1,5 +1,5 @@
---
title: Linux
title: Linux
weight: 4
---
@ -12,7 +12,7 @@ weight: 4
sudo apt install -fy ./rustdesk-<version>.deb
```
#### CentOS/Fedora (>=18)
#### CentOS/Fedora (>= 18)
```sh
sudo yum localinstall ./rustdesk-<version>.rpm
@ -31,9 +31,9 @@ sudo zypper install --allow-unsigned-rpm ./rustdesk-<version>-suse.rpm
```
### ~~X11 Required~~
~~RustDesk does not support wayland yet; you need switch to X11 manually.~~
~~RustDesk does not support Wayland yet; you need switch to X11 manually.~~
RustDesk now has experimental Wayland support. You may need to download the nightly version to enable this feature.
RustDesk now has experimental Wayland support. You may need to download the [nightly version](https://github.com/rustdesk/rustdesk/releases/tag/nightly) to enable this feature.
#### Display Server

View File

@ -30,18 +30,18 @@ Please follow this
It seems no quick fix, we need to fix together with our Flutter version.
{{% /notice %}}
To capture screen, you need to grant `RustDesk` **accessibility** permission and **screen recording** permission. RustDesk will guide you to the settings window.
To capture screen, you need to grant `RustDesk` **Accessibility** permission and **Screen Recording** permission. RustDesk will guide you to the settings window.
| RustDesk window | Settings window |
| ---- | ---- |
| ![](/docs/en/manual/mac/images/acc.png) | ![](/docs/en/manual/mac/images/acc3.png?v2) |
If you have enabled it in the settings window, but RustDesk still warns. Please Remove RustDesk from the settings windows by the `-` button, and click on `+` button, select RustDesk in `/Applications`.
If you have enabled it in the settings window, but RustDesk still warns. Please remove RustDesk from the settings windows by the `-` button, and click on `+` button, select RustDesk in `/Applications`.
| `-` and `+` button | Select RustDesk |
| ---- | ---- |
| ![](/docs/en/manual/mac/images/acc2.png) | ![](/docs/en/manual/mac/images/add.png?v2) |
Please copy above steps for **screen recording** permission.
Please copy above steps for **Screen Recording** permission.
![](/docs/en/manual/mac/images/screen.png?v2)

View File

@ -1,5 +1,5 @@
---
title: Mobile
title: Mobile
weight: 1
---
@ -56,7 +56,7 @@ Long press or tap the menu on the right to select `File Transfer`
2. Click `ID/Relay Server`.
3. Enter your ID Server hostname/IP Address in the `ID Server` field. Leave `Relay Server` and `API Server` blank, and enter your public key (optional, required for encryption) in the `Key` field. Press **OK** to save your settings. It will automatically switch to the specified server.
You can also configure it by scanning a QR code. To generate the QR Code, use the following format (change the `host` and `key` values to your own):
You can also configure it by scanning a QR Code. To generate the QR Code, use the following format (change the `host` and `key` values to your own):
```nolang
config={"host": "xxx", "key": "xxx"}

View File

@ -1,5 +1,5 @@
---
title: Self-host
title: Self-host
weight: 5
pre: "<b>2. </b>"
chapter: true
@ -7,7 +7,7 @@ chapter: true
### Chapter 2
# Self-host
# Self-host
Please join our [Discord](https://discord.com/invite/nDceKgxnkV) if you would like to talk with us about self-hosting your own [open source RustDesk server](https://github.com/rustdesk/rustdesk-server).

View File

@ -14,7 +14,7 @@ You need to have Linux installed, script is tested working with CentOS Linux 7/8
#### How to Install the server
Please setup your firewall on your server prior to running the script.
Make sure you have got access via ssh or otherwise setup prior setting up the firewall. The example commands for UFW (Debian based) are:
Make sure you have got access via SSH or otherwise setup prior setting up the firewall. The example commands for UFW (Debian based) are:
```
ufw allow proto tcp from YOURIP to any port 22
```
@ -39,7 +39,7 @@ There is also an update script on [Techahold's](https://github.com/techahold/rus
Please [Download](https://github.com/rustdesk/rustdesk-server/releases/latest) deb files yourself and install with `apt-get -f install <filename>.deb` or `dpkg -i <filename>.deb`.
## Install your own server with docker(-compose)
## Install your own server with Docker (Compose)
### Requirements
You need to have Docker/Podman installed to run a rustdesk-server as a docker container
@ -120,20 +120,20 @@ The tutorial below is based on Linux build.
There are two executables and a folder:
- `hbbs` - RustDesk ID/Rendezvous server
- `hbbr` - RustDesk relay server
- `hbbr` - RustDesk Relay server
They are built on CentOS Linux 7, tested on CentOS Linux 7/8 and Ubuntu 18/20.
#### Server Requirements
The hardware requirements are very low; the minimum configuration of a basic cloud server is enough, and the CPU and memory requirements are minimal. You can also use a Raspberry Pi or something similar. Regarding the network size, if the TCP hole punching direct connection fails, the relay traffic will be consumed. The traffic of a relay connection is between 30k-3M/s (1920x1080 screen) depending on the resolution settings and screen update. If it is only for office work demand, the traffic is around 100K/s.
The hardware requirements are very low; the minimum configuration of a basic cloud server is enough, and the CPU and memory requirements are minimal. You can also use a Raspberry Pi or something similar. Regarding the network size, if the TCP hole punching direct connection fails, the relay traffic will be consumed. The traffic of a relay connection is between 30 K/s and 3 M/s (1920x1080 screen) depending on the resolution settings and screen update. If it is only for office work demand, the traffic is around 100 K/s.
### STEP 2: Run hbbs and hbbr on your server
We suggest you use [pm2](https://pm2.keymetrics.io/) for managing your service.
We suggest you use [PM2](https://pm2.keymetrics.io/) for managing your service.
#### Option 1
Run hbbs/hbbr without pm2
Run hbbs/hbbr without PM2
```bash
./hbbs -r <relay-server-ip[:port]>
@ -141,7 +141,7 @@ Run hbbs/hbbr without pm2
```
#### Option 2
Run hbbs/hbbr with pm2
Run hbbs/hbbr with PM2.
```bash
pm2 start hbbs -- -r <relay-server-ip[:port]>
@ -150,7 +150,7 @@ pm2 start hbbr
<a name="demo"></a>
{{% notice note %}}
pm2 requires Node.js v16+, if you fail to run pm2 (e.g. you can not see `hbbs`/`hbbr` in `pm2 list`), please download and install the Node.js LTS version from https://nodejs.org. If you want to make `hbbs`/`hbbr` auto-run after reboot, please check out `pm2 save` and `pm2 startup`. More about [pm2](https://pm2.keymetrics.io/docs/usage/quick-start/). Another good tool for your logs is [pm2-logrotate](https://github.com/keymetrics/pm2-logrotate).
PM2 requires Node.js v16+, if you fail to run PM2 (e.g. you can not see `hbbs`/`hbbr` in `pm2 list`), please download and install the Node.js LTS version from https://nodejs.org. If you want to make `hbbs`/`hbbr` auto-run after reboot, please check out `pm2 save` and `pm2 startup`. More about [PM2](https://pm2.keymetrics.io/docs/usage/quick-start/). Another good tool for your logs is [pm2-logrotate](https://github.com/keymetrics/pm2-logrotate).
The `-r` parameter of `hbbs` is not mandatory, it is just convenient for you not to specify a relay server on the controlled client side. You do not need to specify port if you are using default 21117 port. The relay server specified by the client has a higher priority than this.
{{% /notice %}}
@ -220,7 +220,7 @@ If you want to prohibit users without the key from establishing non-encrypted co
./hbbr -k _
```
If you want to change the key, remove the `id_ed25519` and `id_ed25519.pub` files and restart `hbbs`/`hbbr``hbbs` will generate a new key pair.
If you want to change the key, remove the `id_ed25519` and `id_ed25519.pub` files and restart `hbbs`/`hbbr`, `hbbs` will generate a new key pair.
{{% notice note %}}
If you are using docker-compose and keys don't exist, the start of containers will create different keys in hbbs and hbbr folders.

View File

@ -13,7 +13,7 @@ Features:
## Log in
As mentioned earlier, the default port of the web console is 21114. Enter `http://<hbbs host>:21114` in the browser to enter the console page, as shown in the following figure (hbbs runs on the ip 192.168.1.143 server):
As mentioned earlier, the default port of the web console is 21114. Enter `http://<hbbs host>:21114` in the browser to enter the console page, as shown in the following figure (hbbs runs on the IP 192.168.1.143 server):
![](/docs/en/self-host/pro/console/images/console-login.png)
If you need https support, please install a web server such as `Nginx`.
@ -26,4 +26,4 @@ Non-administrator users can also login to browser their device and logs, change
## Windows EXE
For Windows clients, you can leave out the custom server configuration and put the configuration information in the `RustDesk.exe` filename instead. As shown above, please go to the console welcome page and click on `Windows EXE`. **`Client >=1.1.9 Required`**。
For Windows clients, you can leave out the custom server configuration and put the configuration information in the `rustdesk.exe` filename instead. As shown above, please go to the console welcome page and click on `Windows EXE`. **`Client >=1.1.9 Required`**。

View File

@ -17,11 +17,11 @@ What it does:
- Install some dependencies
- Setup UFW firewall if available
- Create a working directory /var/lib/rustdesk-server and log directory /var/log/rustdesk-server
- Create a working directory /var/lib/rustdesk-server and a log directory /var/log/rustdesk-server
- Installs executables into /usr/bin
- Download and extract RustDesk Pro Services to the above folder (service names are rustdesk-hbbs.service and rustdesk-hbbr.service)
- Create systemd services for hbbs and hbbr
- If you chose Domain, it will install Nginx and certbot, allowing the API to be available on port 443 (https) and get an SSL certificate over port 80, this will autorenew
- If you choose Domain, it will install Nginx and Certbot, allowing the API to be available on port 443 (https) and get an SSL certificate over port 80, it is automatically renewed
## Upgrade
@ -45,8 +45,8 @@ What it does:
- Disable and removes the old services
- Install some dependencies
- Setup UFW firewall if available
- Create a Folder /var/lib/rustdesk-server and copy the certs here
- Create a folder /var/lib/rustdesk-server and copy the certs here
- Delete /var/log/rustdesk and create /var/log/rustdesk-server
- Download and extract RustDesk Pro Services to the above folder
- Create systemd services for hbbs and hbbr (service names are rustdesk-hbbs.service and rustdesk-hbbr.service)
- If you chose Domain, it will install Nginx and certbot, allowing the API to be available on port 443 (https) and get an SSL certificate over port 80, this will autorenew.
- If you chose Domain, it will install Nginx and certbot, allowing the API to be available on port 443 (https) and get an SSL certificate over port 80, this will autorenew.

View File

@ -5,7 +5,7 @@ weight: 15
## Buy license
Please get your license from [https://rustdesk.com/pricing.html](https://rustdesk.com/pricing.html), enter a valid email address in the Stripe checkout page. The license (and the invoice in a seperate mail) will be sent to your email once payment is done successfully.
Please get your license from [https://rustdesk.com/pricing.html](https://rustdesk.com/pricing.html), enter a valid email address in the Stripe checkout page. The license (and the invoice in a separate mail) will be sent to your email once payment is done successfully.
![](/docs/en/self-host/pro/license/images/stripe.jpg)

View File

@ -3,14 +3,14 @@ title: Permission Control
weight: 15
---
## Device access permissions
There are two ways to associate a device with a user:
- Via console device page
- Log in to the specified user account on the client side
The following two situations will prevent the device from being accessed:
- Make device `disabled` in console devices page
- Make device `disable` in console devices page
- Make user `disable` in console user page
The associated device can only be accessed by the devices of the same user or user group, or in correct cross-group settings.

View File

@ -11,9 +11,9 @@ Strategy is a tool for RustDesk administrators to update the security options of
RustDesk provides a default strategy that administrators can modify, or they can create a new strategy or `Duplicate` an existing one. When creating a new strategy, administrators can `Rename`, `Delete`, or `Edit Devices`. When duplicating a strategy, administrators can modify it based on the existing strategy.
| Default Strategy | Other Strategies |
| Default Strategy | Other Strategies |
| :--------------: | :------------: |
| ![](/docs/en/self-host/pro/strategy/images/default_strategy.png) | ![](/docs/en/self-host/pro/strategy/images/other_strategy.png) |
| ![](/docs/en/self-host/pro/strategy/images/default_strategy.png) | ![](/docs/en/self-host/pro/strategy/images/other_strategy.png) |
### Enable and Disable Strategies
@ -25,9 +25,9 @@ Each device can only be managed by one strategy. Administrators can change the m
In the device management interface, the left-hand area is used to filter devices, and the devices selected in the right-hand column will be managed by the current strategy. Devices that are not logged in will be displayed in the `-` group.
| User Group | Unbinded Devices |
| User Group | Unbinded Devices |
| :--------------: | :------------: |
| ![](/docs/en/self-host/pro/strategy/images/edit_devices_group.png) | ![](/docs/en/self-host/pro/strategy/images/edit_devices_unbinded.png) |
| ![](/docs/en/self-host/pro/strategy/images/edit_devices_group.png) | ![](/docs/en/self-host/pro/strategy/images/edit_devices_unbinded.png) |
### Strategy Synchronization

View File

@ -9,55 +9,55 @@ This tutorial is based on latest DSM v6.
Open package manager and install docker
| | |
| --------------- | -------------------------------------------------------- |
![](/docs/en/self-host/synology/images/package-manager.png) | ![](/docs/en/self-host/synology/images/docker.png)
| | |
| -- | -- |
| ![](/docs/en/self-host/synology/images/package-manager.png) | ![](/docs/en/self-host/synology/images/docker.png) |
### Install RustDesk Server
| Search rustdesk-server in Docker's registry and install by double click | Installed rustdesk-server image, double click to create rustdesk-server container |
| --------------- | -------------------------------------------------------- |
![](/docs/en/self-host/synology/images/pull-rustdesk-server.png) | ![](/docs/en/self-host/synology/images/rustdesk-server-installed.png)
| Search rustdesk-server in Docker's registry and install by double click | Installed rustdesk-server image, double click to create rustdesk-server container |
| -- | -- |
| ![](/docs/en/self-host/synology/images/pull-rustdesk-server.png) | ![](/docs/en/self-host/synology/images/rustdesk-server-installed.png) |
### Create hbbs container
As mentioned above, double click on rustdesk-server image to create new container, set it name to `hbbs`.
![](/docs/en/self-host/synology/images/hbbs.png)
![](/docs/en/self-host/synology/images/hbbs.png)
Click on above "Advanced Settings".
- Enable auto-restart
![](/docs/en/self-host/synology/images/auto-restart.png)
![](/docs/en/self-host/synology/images/auto-restart.png)
- Enable "Use the same network as Docker host", for more about host net, please [check](/docs/en/self-host/install/#net-host)
![](/docs/en/self-host/synology/images/host-net.png)
![](/docs/en/self-host/synology/images/host-net.png)
- Mount a host directory (e.g. `Shared/test/`) to `/root`, hbbs will generate some files (including the `key` file) in this directory
| Mount | Files generated in the host directory |
|-- | -- |
![](/docs/en/self-host/synology/images/mount.png?width=500px) | ![](/docs/en/self-host/synology/images/mounted-dir.png?width=300px)
| -- | -- |
| ![](/docs/en/self-host/synology/images/mount.png?width=500px) | ![](/docs/en/self-host/synology/images/mounted-dir.png?width=300px) |
- Set command
{{% notice note %}}
Synology's OS is Debian based, so host net (--net=host) works fine, we do not need to map ports with `-p` option.
`192.168.16.98` is an intranet ip used here for demonstration only, please set it to a public ip when you deploy.
`192.168.16.98` is an intranet IP used here for demonstration only, please set it to a public IP when you deploy.
{{% /notice %}}
![](/docs/en/self-host/synology/images/hbbs-cmd.png?v2)
![](/docs/en/self-host/synology/images/hbbs-cmd.png?v2)
- Done
![](/docs/en/self-host/synology/images/hbbs-config.png)
![](/docs/en/self-host/synology/images/hbbs-config.png)
### Create hbbr container
Please repeat above `hbbs` steps, but change container name to `hbbr` and command to `hbbr`.
![](/docs/en/self-host/synology/images/hbbr-config.png)
![](/docs/en/self-host/synology/images/hbbr-config.png)
### hbbr/hbbs containers
@ -65,5 +65,5 @@ Please repeat above `hbbs` steps, but change container name to `hbbr` and comman
| Double click on container and check log | Double confirm hbbs/hbbr using host network |
|-- | -- |
![](/docs/en/self-host/synology/images/log.png?width=500px) | ![](/docs/en/self-host/synology/images/network-types.png?width=500px)
| -- | -- |
| ![](/docs/en/self-host/synology/images/log.png?width=500px) | ![](/docs/en/self-host/synology/images/network-types.png?width=500px) |

View File

@ -1,10 +1,10 @@
---
title: Windows & pm2 or NSSM
title: Windows & PM2 or NSSM
weight: 20
---
## A cross roads
You now either have two choices, you can either use pm2 (easier) or NSSM (a bit harder) to start the RustDesk server
You now either have two choices, you can either use PM2 (easier) or NSSM (a bit harder) to start the RustDesk server
There are some benefits to using NSSM:
- Backwards compatibility with older Windows (Windows Server 2008R2/Windows 7 and earlier although untested).
- Ideal for Windows Server
@ -12,7 +12,7 @@ There are some benefits to using NSSM:
- Running both binaries as Services.
- Standalone (no dependency on Node.js)
While the benefits of pm2 include:
While the benefits of PM2 include:
- Good idea if you run the server on the same computer as your main work computer
- You logon regularly to the user that created the rustdesk startup entry
- More user friendly
@ -64,27 +64,27 @@ nssm install <Desired hbbr servicename> <RustDesk hbbr binary path> <RustDesk hb
```
**Start services**
After successful installation of services, they need to be started.
```cmd
nssm start <Desired hbbs servicename>
nssm start <Desired hbbr servicename>
```
**Done!**
(The method above has been tested on Windows Server Core 2022 Standard).
## or
## Installing using pm2
## Installing using PM2
### Install Node.js
Please [download](https://nodejs.org/dist/v16.14.2/node-v16.14.2-x86.msi) and install Node.js.
Node.js is the runtime environment of pm2, so you need to install Node.js first。
Node.js is the runtime environment of PM2, so you need to install Node.js first。
### Install pm2
### Install PM2
Enter belows in `cmd.exe`, press the <kbd>Enter</kbd> key for each line, and run them line by line.