Code Monkey home page Code Monkey logo

rustdesk-server-pro's Introduction

RustDesk - Your remote desktop
ServersBuildDockerStructureSnapshot
[Українська] | [česky] | [中文] | [Magyar] | [Español] | [فارسی] | [Français] | [Deutsch] | [Polski] | [Indonesian] | [Suomi] | [മലയാളം] | [日本語] | [Nederlands] | [Italiano] | [Русский] | [Português (Brasil)] | [Esperanto] | [한국어] | [العربي] | [Tiếng Việt] | [Dansk] | [Ελληνικά] | [Türkçe]
We need your help to translate this README, RustDesk UI and RustDesk Doc to your native language

Chat with us: Discord | Twitter | Reddit

ko-fi

Yet another remote desktop software, written in Rust. Works out of the box, no configuration required. You have full control of your data, with no concerns about security. You can use our rendezvous/relay server, set up your own, or write your own rendezvous/relay server.

image

RustDesk welcomes contribution from everyone. See CONTRIBUTING.md for help getting started.

FAQ

BINARY DOWNLOAD

NIGHTLY BUILD

Get it on F-Droid

Dependencies

Desktop versions use Flutter or Sciter (deprecated) for GUI, this tutorial is for Sciter only, since it is easier and more friendly to start. Check out our CI for building Flutter version.

Please download Sciter dynamic library yourself.

Windows | Linux | macOS

Raw steps to build

  • Prepare your Rust development env and C++ build env

  • Install vcpkg, and set VCPKG_ROOT env variable correctly

    • Windows: vcpkg install libvpx:x64-windows-static libyuv:x64-windows-static opus:x64-windows-static aom:x64-windows-static
    • Linux/macOS: vcpkg install libvpx libyuv opus aom
  • run cargo run

How to build on Linux

Ubuntu 18 (Debian 10)

sudo apt install -y zip g++ gcc git curl wget nasm yasm libgtk-3-dev clang libxcb-randr0-dev libxdo-dev \
        libxfixes-dev libxcb-shape0-dev libxcb-xfixes0-dev libasound2-dev libpulse-dev cmake make \
        libclang-dev ninja-build libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev

openSUSE Tumbleweed

sudo zypper install gcc-c++ git curl wget nasm yasm gcc gtk3-devel clang libxcb-devel libXfixes-devel cmake alsa-lib-devel gstreamer-devel gstreamer-plugins-base-devel xdotool-devel

Fedora 28 (CentOS 8)

sudo yum -y install gcc-c++ git curl wget nasm yasm gcc gtk3-devel clang libxcb-devel libxdo-devel libXfixes-devel pulseaudio-libs-devel cmake alsa-lib-devel

Arch (Manjaro)

sudo pacman -Syu --needed unzip git cmake gcc curl wget yasm nasm zip make pkg-config clang gtk3 xdotool libxcb libxfixes alsa-lib pipewire

Install vcpkg

git clone https://github.com/microsoft/vcpkg
cd vcpkg
git checkout 2023.04.15
cd ..
vcpkg/bootstrap-vcpkg.sh
export VCPKG_ROOT=$HOME/vcpkg
vcpkg/vcpkg install libvpx libyuv opus aom

Fix libvpx (For Fedora)

cd vcpkg/buildtrees/libvpx/src
cd *
./configure
sed -i 's/CFLAGS+=-I/CFLAGS+=-fPIC -I/g' Makefile
sed -i 's/CXXFLAGS+=-I/CXXFLAGS+=-fPIC -I/g' Makefile
make
cp libvpx.a $HOME/vcpkg/installed/x64-linux/lib/
cd

Build

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source $HOME/.cargo/env
git clone https://github.com/rustdesk/rustdesk
cd rustdesk
mkdir -p target/debug
wget https://raw.githubusercontent.com/c-smile/sciter-sdk/master/bin.lnx/x64/libsciter-gtk.so
mv libsciter-gtk.so target/debug
VCPKG_ROOT=$HOME/vcpkg cargo run

How to build with Docker

Begin by cloning the repository and building the Docker container:

git clone https://github.com/rustdesk/rustdesk
cd rustdesk
docker build -t "rustdesk-builder" .

Then, each time you need to build the application, run the following command:

docker run --rm -it -v $PWD:/home/user/rustdesk -v rustdesk-git-cache:/home/user/.cargo/git -v rustdesk-registry-cache:/home/user/.cargo/registry -e PUID="$(id -u)" -e PGID="$(id -g)" rustdesk-builder

Note that the first build may take longer before dependencies are cached, subsequent builds will be faster. Additionally, if you need to specify different arguments to the build command, you may do so at the end of the command in the <OPTIONAL-ARGS> position. For instance, if you wanted to build an optimized release version, you would run the command above followed by --release. The resulting executable will be available in the target folder on your system, and can be run with:

target/debug/rustdesk

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 might not be able 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.

File Structure

Screenshots

Connection Manager

Connected to a Windows PC

File Transfer

TCP Tunneling

rustdesk-server-pro's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

rustdesk-server-pro's Issues

Update.sh doesn't seem to be working [1.1.8>1.1.9]

When trying to upgrade my instance, it will show the following script output. But after the update there are no changes to the web interface like OIDC custom are not available. The scripts seems to not be able to make the changes, I'm also allowed to run the script again, and I know from my testing before that it should say that it's up-to-date, but after running it again it will try the update again with the same output as below.

Also, all files in the folder where the update should take place date from "Jul 12 09:21", which seems to give the impression that no files are touched at all by the script.

Environment details:

  • Ubuntu 22.04 clean install (from yesterday)
  • Clean installed with the pro install script
  • No additional software is installed
  • Everything else apart from updating works as expected

What have I tried:

  • Rebooting after updating
  • Stopping services before updating (read the script afterwards and I see that this should happen automatically)
Upgrading RustDesk Server
--2023-08-22 07:45:27--  https://github.com/rustdesk/rustdesk-server-pro/releases/download/1.1.8/rustdesk-server-linux-amd64.zip
Resolving github.com (github.com)... 140.82.121.3
Connecting to github.com (github.com)|140.82.121.3|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://objects.githubusercontent.com/github-production-release-asset-2e65be/661775559/83192376-eb22-40d3-b2a8-980b19963b2c?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20230822%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20230822T074527Z&X-Amz-Expires=300&X-Amz-Signature=9098e7bc409bccccfde7bbbd224c9b935cfc0aef287b55ec3ddf5e94df8a9905&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=661775559&response-content-disposition=attachment%3B%20filename%3Drustdesk-server-linux-amd64.zip&response-content-type=application%2Foctet-stream [following]
--2023-08-22 07:45:27--  https://objects.githubusercontent.com/github-production-release-asset-2e65be/661775559/83192376-eb22-40d3-b2a8-980b19963b2c?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20230822%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20230822T074527Z&X-Amz-Expires=300&X-Amz-Signature=9098e7bc409bccccfde7bbbd224c9b935cfc0aef287b55ec3ddf5e94df8a9905&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=661775559&response-content-disposition=attachment%3B%20filename%3Drustdesk-server-linux-amd64.zip&response-content-type=application%2Foctet-stream
Resolving objects.githubusercontent.com (objects.githubusercontent.com)... 185.199.110.133, 185.199.111.133, 185.199.108.133, ...
Connecting to objects.githubusercontent.com (objects.githubusercontent.com)|185.199.110.133|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 16629883 (16M) [application/octet-stream]
Saving to: ‘rustdesk-server-linux-amd64.zip’

rustdesk-server-linux-amd64.zip        100%[==========================================================================>]  15.86M  46.7MB/s    in 0.3s

2023-08-22 07:45:27 (46.7 MB/s) - ‘rustdesk-server-linux-amd64.zip’ saved [16629883/16629883]

Archive:  rustdesk-server-linux-amd64.zip
  inflating: amd64/hbbr
  inflating: amd64/hbbs
  inflating: amd64/rustdesk-utils
   creating: amd64/static/
  inflating: amd64/static/816.ca880588.async.js
  inflating: amd64/static/p__AuditList__ConsoleAuditList.e949f4c8.async.js
  inflating: amd64/static/p__Settings__Smtp.b482bbff.async.js
 extracting: amd64/static/favicon.png
   creating: amd64/static/welcome/
  inflating: amd64/static/welcome/index.html
  inflating: amd64/static/p__Settings__Others.2f7da6f2.async.js
  inflating: amd64/static/9.84d70f76.async.js
  inflating: amd64/static/p__Settings__Oidc.9bd5dbde.chunk.css
  inflating: amd64/static/p__user__UnsubscribeEmail.456ae89b.chunk.css
   creating: amd64/static/devices/
  inflating: amd64/static/devices/index.html
  inflating: amd64/static/465.dd7f644f.async.js
  inflating: amd64/static/p__Welcome.904bff57.chunk.css
  inflating: amd64/static/p__user__Verify.4d086e87.async.js
  inflating: amd64/static/p__DeviceList.87abda28.async.js
   creating: amd64/static/account/
  inflating: amd64/static/account/index.html
   creating: amd64/static/account/settings/
  inflating: amd64/static/account/settings/index.html
   creating: amd64/static/user/
   creating: amd64/static/user/unsubscribe-email/
  inflating: amd64/static/user/unsubscribe-email/index.html
   creating: amd64/static/user/verify/
  inflating: amd64/static/user/verify/index.html
  inflating: amd64/static/user/index.html
   creating: amd64/static/user/login/
  inflating: amd64/static/user/login/index.html
  inflating: amd64/static/p__Settings__License.5ece32d7.async.js
   creating: amd64/static/audit/
   creating: amd64/static/audit/console/
  inflating: amd64/static/audit/console/index.html
   creating: amd64/static/audit/alarm/
  inflating: amd64/static/audit/alarm/index.html
   creating: amd64/static/audit/connect/
  inflating: amd64/static/audit/connect/index.html
  inflating: amd64/static/audit/index.html
   creating: amd64/static/audit/file/
  inflating: amd64/static/audit/file/index.html
  inflating: amd64/static/6.90fed4b5.async.js
  inflating: amd64/static/335.14fab4de.async.js
  inflating: amd64/static/p__Settings__License.d10d6521.chunk.css
  inflating: amd64/static/p__account__Settings.b387c239.chunk.css
  inflating: amd64/static/p__Settings__Smtp.d10d6521.chunk.css
  inflating: amd64/static/p__Welcome.69d31ab5.async.js
  inflating: amd64/static/t__plugin-layout__Layout.8eb2abb5.chunk.css
 extracting: amd64/static/CNAME
   creating: amd64/static/icons/
 extracting: amd64/static/icons/icon-192x192.png
 extracting: amd64/static/icons/icon-128x128.png
  inflating: amd64/static/icons/icon-512x512.png
  inflating: amd64/static/322.19193898.async.js
  inflating: amd64/static/433.7e1c6463.async.js
  inflating: amd64/static/p__Settings__Relay.9892fa8f.async.js
  inflating: amd64/static/logo.svg
  inflating: amd64/static/276.87e92a5f.async.js
  inflating: amd64/static/p__GroupList.6ed4aa69.async.js
  inflating: amd64/static/592.d85064cf.async.js
  inflating: amd64/static/335.e9b4a6b1.chunk.css
  inflating: amd64/static/p__Settings__Others.d10d6521.chunk.css
  inflating: amd64/static/812.b1a0e7aa.chunk.css
  inflating: amd64/static/p__AuditList__ConnAuditList.d157df4f.async.js
  inflating: amd64/static/t__plugin-layout__Layout.034546fc.async.js
  inflating: amd64/static/p__Settings__Keypair.7899601d.async.js
  inflating: amd64/static/p__Settings__Oidc.68baa8bb.async.js
  inflating: amd64/static/p__UserList.8633c57d.chunk.css
  inflating: amd64/static/476.96f3276c.async.js
  inflating: amd64/static/p__Settings__Strategy.48185e94.async.js
  inflating: amd64/static/index.html
  inflating: amd64/static/umi.6f65cec1.js
  inflating: amd64/static/p__user__UnsubscribeEmail.3c34411e.async.js
  inflating: amd64/static/p__AuditList__AlarmAuditList.f25b7cad.async.js
  inflating: amd64/static/umi.2d512454.css
  inflating: amd64/static/p__Settings__Ldap.d10d6521.chunk.css
  inflating: amd64/static/p__user__Verify.4846462c.chunk.css
   creating: amd64/static/settings/
   creating: amd64/static/settings/others/
  inflating: amd64/static/settings/others/index.html
   creating: amd64/static/settings/lic/
  inflating: amd64/static/settings/lic/index.html
   creating: amd64/static/settings/strategy/
  inflating: amd64/static/settings/strategy/index.html
   creating: amd64/static/settings/ldap/
  inflating: amd64/static/settings/ldap/index.html
   creating: amd64/static/settings/smtp/
  inflating: amd64/static/settings/smtp/index.html
   creating: amd64/static/settings/oidc/
  inflating: amd64/static/settings/oidc/index.html
  inflating: amd64/static/settings/index.html
   creating: amd64/static/settings/key/
  inflating: amd64/static/settings/key/index.html
   creating: amd64/static/settings/relay/
  inflating: amd64/static/settings/relay/index.html
  inflating: amd64/static/p__user__Login.b08d8400.async.js
  inflating: amd64/static/p__Settings__Ldap.f5529033.async.js
  inflating: amd64/static/p__AuditList__FileAuditList.9aaba64e.async.js
   creating: amd64/static/groups/
  inflating: amd64/static/groups/index.html
  inflating: amd64/static/p__Settings__Strategy.bab8a2d2.chunk.css
   creating: amd64/static/users/
  inflating: amd64/static/users/index.html
  inflating: amd64/static/33.9d320ff0.async.js
  inflating: amd64/static/p__DeviceList.8633c57d.chunk.css
  inflating: amd64/static/p__account__Settings.880540a3.async.js
  inflating: amd64/static/asset-manifest.json
  inflating: amd64/static/p__Settings__Keypair.d10d6521.chunk.css
  inflating: amd64/static/812.4a6c2a69.async.js
  inflating: amd64/static/p__user__Login.97869eba.chunk.css
RustDesk Relay not ready yet...
Updates are complete
root@livesupport:~#```

[BUG] - 2FA

Hey,

RUSTDESK PRO 1.1.9 : Personnal Licence

Since 2FA (SMTP with OVH) is enable, i have this message :
If wait 2-3 min, its same.. 👎🏻
image

If wait little bit more we have a message that we have a problem with the protocol version
And when user enter wrong pass, we have no alarm/alert and no log.
image

Config of user :
image

Config of SMTP :
image

Thanks for help !

Custom OIDC is undebuggable

When trying to log in using custom OIDC, I get this message:
image

This says pretty much nothing and doesn't help at all with debugging. RUST_LOG=debug adds no relevant information apart from reqwest (I assume) and h2 printing what they do.

I also find it weird that it's not possible to map the OIDC fields to RustDesk-internal ones. As there is no mapping, I have no idea at all what field it would use (I don't expect any field to have less than 4 characters).

Source Code?

Please explain this situation:

rustdesk-server-pro is a clone plus a bit more features from rustdesk-server,

and rustdesk-server is licensed under APGL-3.0 so the rustdesk-server-pro also needs to be open source in my mind,
as the sources of rustdesk-server are distributed by rustdesk-server-pro

image
https://choosealicense.com/licenses/agpl-3.0/

image
https://fossa.com/blog/open-source-software-licenses-101-agpl-license/

image
https://snyk.io/learn/agpl-license/

So if a customer buy a license it is distributed outside of your organisation,
and the customer and/or his users can access server-side application which is normally public facing,
so customer can expect source code, or did i miss something?

Awaiting your explanation?

handshakeException handshake error in window client

Bug Description

errors:

Unknown Error: HandshakeException: Handshake error in client(OS Error: CERTIFICATE_VERIFY_FAILED: unable to get local issuer certificate)

I want to connect a three server, when I login in windows client, i receive a error below, but this error is not present in macOS, maybe there is a bug in rustdesk inner or my environment bug?

3506b70c6bb9f3aed6261ce44596b0a1

How to Reproduce

  1. Setup rustdesk v1.2.1 in windows
  2. setting - network - unlock network setting - add a custom server with:

ID server: rd-1.natfrp.cloud
API server: https://api.natfrp.com/rd
key: uUnb9eVVNZskn4xjkflCTKbO1CVCax4dg+nw9C26gkQ=

  1. Account - login - input any thing

Expected Behavior

login successfully without error.

Operating system(s) on local side and remote side

Windows11

RustDesk Version(s) on local side and remote side

1.2.1 -> 1.2.1

Screenshots

3506b70c6bb9f3aed6261ce44596b0a1

Additional Context

No response

[FEATURE] - Report PDF / MAIL for QoS

Hey,

For my business we need to report in PDF or CSV with connection and time elapsed, the top device remote and all detail.
We can already see on log, but if we can export with a specific range of date or a specific device/user, with beautiful chart...

Also, if customer put a feedback to see it in log.. ;)

Thanks for reply ! (it my last post ;))

Issues with Docker

Every time the docker container is updated/changed/recreated it is requiring me to unbind the license and rebind. this has been reported by 2 users now

RustDesk Pro - installation automation

As the title suggests, looking for best ideas to include some form of installation automation for the masses.
NOTE: for the Pro version.

I would propose without having much experience;
Parameter based install options that can be thrown out via PowerShell or GPO etc.
Parameters should/could be stored in a central config file that can be queried at install
EDIT: To allow a variable based username to show up in the Device List via Web Console would be great (so at install, can specify %username% for a Windows variable at least)

Other thoughts / better ideas welcomed please, but a bare bones option to those without any package installers like Puppet, Chocolatey and so on would be beneficial.

Umlauts in the address book

In the address book, when new entries are created, no umlauts can be used, as they are not considered or applied. I think this is a problem of UTF-8

[FEATURE] - API on other port ?

Hey,

I would like to publish my rustdesk for customers but i would like to close the web console to local network.
So it will be interesting to change the API port to 21113 for example ?

Thanks !

Address book tag sorting

The sorting in the address book for the keywords does not work correctly. When new keywords are created, the keywords in the list are not sorted.

image


  • we will add an option for this, though default is not sorted.

Permanent Password - RustDesk Client

How can you set a permanent password for the clients in the future using a PowerShell script?

I manage my clients with RMM software and do a lot with PowerShell scripts.

Also updating the client software.

[FEATURE] Many update request http

Hello,

I am reaching out to you because we have a self-hosted RustDesk server.
I have noticed that the RustDesk server sends an average of 5000 HTTP requests to a single machine to check if it is active.
Is it possible to adjust the latency of these requests? If not, is this something that could be considered in the future?

Thank you in advance for your response.
log_rustdesk

[BUG] - Can't connect on device on same group

Hey,

When I have 2 devices on the same group, if I want to login on the second device, I have this:

image

But if I detach the group from the device I want to connect to (sepecific group to default group), I can connect to it.

Thanks

Some questions and problems

Hello,

If you want, I'll let you create multiple issues for all the different requests below.
I purchased Rustdesk Pro (personal).

  • STRATEGY: Who does the default strategy apply to? If it's for equipment without a group, it doesn't work when modified default strategy.
  • STRATEGY: Creating a strategy: when we include a group in it, if a new equipment arrives in that group, the strategy is not applied even though it belongs to the group. It is necessary to manually check the equipment in the strategy. It should be done automatically as soon as we add it to the group.
  • Created STRATEGY: Even though we add an equipment to the strategy, it doesn't apply, it doesn't work.
  • EQUIPMENT: When an equipment arrives, it should be possible to assign a default group and user instead of User: - and Group: -.
  • GLOBAL: Being able to connect to a public Rustdesk ID not hosting it on our servers while remaining connected to our hosted server.
  • GLOBAL: Auto-configuration and QR code don't work, or maybe I don't understand how they work. I tried renaming the EXE file as indicated on the web interface, but it doesn't work. Similarly, with a smartphone running iOS and Android, I scanned the QR code, but it doesn't lead to anything.
  • API: What does it consist of? Does its port work with TCP/UDP? Both?
  • LOG: Does it use a specific port? Personally, since upgrading to the license, I don't have any connection or file transfer logs. I only have those from the console. I tried putting all the equipment in the same group, but no logs appear.
  • SMTP: I can't configure my SMTP (with OVH) with port 465 or 25. It might be worth considering allowing SSL/TLS?
  • GROUPS: If we allow Group A to access Group B, Group A cannot access Group B. However, if I remove my equipment from Group B, Group A can access it.
  • GLOBAL: As an admin, we can't modify our own assigned group. If we create a secondary admin, we can modify it.

Thank you for reading. If necessary, I can provide screenshots and logs.
Best regards,

Apash

Device-List in RustDeskPro

Hello everyone,

  • I would like to be able to add a column with the notes entered when displaying the devices in the future.
  • It would also be nice if you could select the user via a dropdown box when editing a device.

image

SMTP issues

there have been afew reports of email issues, I have tried to setup gmail which requires "Access for less secure apps" enabled and also office 365, Gmail I at least get an error that makes sense office 365 just doesnt seem to connect (typical microsoft). It would be worth (if easy enough) to have options of SSL/TLS/None and also to not enforce usernames/passwords so direct send can be used https://learn.microsoft.com/en-us/exchange/mail-flow-best-practices/how-to-set-up-a-multifunction-device-or-application-to-send-email-using-microsoft-365-or-office-365#option-2-send-mail-directly-from-your-printer-or-application-to-microsoft-365-or-office-365-direct-send

Log-List - RustDeskPro

In the log list, only the ID and not the name of the host or the note stored is displayed. It's hard to understand just by having the ID to identify which device it is


  • device name added, it is hostname by default, but you can also edit in device page.

Missing file in Windows Setup

Hi,

I tried to install Rustdesk-Server-Pro for Windows.
The setup process runs fine, but after installation is complete,
the file "rustdesk_server.exe" is missing in the install folder "C:\Program Files\RustDeskServer"

Any help would be nice :-)

macOS automatic deploy / config script

Can someone with more knowledge cast their eyes over this script and let me know if it's any use to the project?

It appears to work at my end but a second opinion is always good :) Can you see any glaring problems?


# Updated
#!/bin/bash


# Check if the script is being run as root
if [[ $EUID -ne 0 ]]; then
	echo "This script must be run as root."
	exit 1
fi


cd /tmp/

# Download the rustdesk.dmg file
wget https://github.com/rustdesk/rustdesk/releases/download/1.2.1/rustdesk-1.2.1-x86_64.dmg

# Specify the path to the rustdesk.dmg file
dmg_file="/tmp/rustdesk-1.2.1-x86_64.dmg"

# Specify the mount point for the DMG (temporary directory)
mount_point="/Volumes/RustDesk"

# Mount the DMG file to the specified mount point
hdiutil attach "$dmg_file" -mountpoint "$mount_point"

# Check if the mounting was successful
if [ $? -eq 0 ]; then
	# Move the contents of the mounted DMG to the /Applications folder
	mv "$mount_point/RustDesk.app" "/Applications/"
	
	# Unmount the DMG file
	hdiutil detach "$mount_point"
	
	echo "RustDesk has been moved to /Applications."
else
	echo "Failed to mount the RustDesk DMG. Installation aborted."
	exit 1
fi


# Install rustdesk (*** Does not deal with Screen Recording, Accessibility and Input Monitoring permissions ***)
/Applications/RustDesk.app/Contents/MacOS/RustDesk

# Run the rustdesk command with --get-id and store the output in the rustdesk_id variable
cd /Applications/RustDesk.app/Contents/MacOS/
rustdesk_id=$(./RustDesk --get-id)

# Check if the rustdesk_id is not empty
if [ -n "$rustdesk_id" ]; then
	echo "RustDesk ID: $rustdesk_id"
else
	echo "Failed to get RustDesk ID."
fi


# Kill all processes named rustdesk
pkill rustdesk

# Check if any processes were killed
if [ $? -eq 0 ]; then
	echo "All rustdesk processes have been killed."
else
	echo "No rustdesk processes found."
fi


# Assign the value "XYZ" to the password variable
rustdesk_password="XYZ"

# Echo the value of the password variable
echo "Password: $rustdesk_password"

# Apply new password to RustDesk
/Applications/RustDesk.app/Contents/MacOS/RustDesk --password $rustdesk_password -wait


# Kill all processes named rustdesk
pkill RustDesk

# Check if any processes were killed
if [ $? -eq 0 ]; then
	echo "All rustdesk processes have been killed."
else
	echo "No rustdesk processes found."
fi


# Set the RustDesk2.toml file path
loggedin_user=$( scutil <<< "show State:/Users/ConsoleUser" | awk '/Name :/ && ! /loginwindow/ { print $3 }' )
file_path="/Users/$loggedin_user/Library/Preferences/com.carriez.RustDesk/RustDesk2.toml"

# Ensure the directory structure exists
mkdir -p "$(dirname "$file_path")"

# Remove exisiting RustDesk2.toml file
cd "/Users/$loggedin_user/Library/Preferences/com.carriez.RustDesk"
mv -f RustDesk2.toml RustDesk2.toml.old


# Write the data to the file
cat <<EOF > "$file_path"
rendezvous_server = "server_name"
nat_type = "1"
serial = "0"
custom-rendezvous-server = "server_url"
key = "public_key_value"
relay-server = "server_url"
api-server = "https://server_url"

EOF

echo "Data has been written to $file_path"


echo "File RustDesk2.toml has been created with the following content:"
cat RustDesk2.toml


# Start RustDesk
cd "/Applications/RustDesk.app/Contents/MacOS"
./RustDesk




Ability to use rustdesk from any server

You should be able to run rustdesk from other servers on one device. For example if rustdesk support needed to log into a machine for support they would use their own server but there would probably be a server already setup in the machine.

SMTP - RustDeskPro

I can't enter an SMTP server in the RustDesk Console. I have the feeling that German servers or the servers from German providers are not accepted.

After saving, there is always the error that a timeout has occurred.

image

SMTP Error: Failed to check STMP: Connection error: Connection error: tls handshake eof

Bug Description

I was setting up the newest version of Rustdesk Pro on an Ubuntu 22.04.3 LTS Cloud Server. When i try to configure SMTP on the Webinterface i receive the error: Failed to check STMP: Connection error: Connection error: tls handshake eof

How to Reproduce

Setting up SMTP in Webinterface

Expected Behavior

Setting up SMTP without errors or warnings

Operating system(s) on local side and remote side

Ubuntu Server 22.04.3 LTS

RustDesk Version(s) on local side and remote side

Server Pro 1.1.9

Screenshots

Additional Context

No response

OIDC Azure AD

Hey there folks :)
just checked out the pro server, very nice indeed!

I saw that you support github,google & oka as oidc providers.

Planned to add Azure / MS365 too?

[FEATURE] Customisation of email messages

Hi.

It would be useful to be able to customise the invitation and access code e-mail messages, especially for the user's language.

As well as having the possibility to set the preferred language for a user.

How should LDAP be setup?

LDAP – I’m not sure what’s needed here. I don’t have the option to set a bind DN/password, and regardless of what base DN I set I get the following error:
LDAP operation result: rc=49 (invalidCredentials), dn: "", text: "80090308: LdapErr: DSID-0C090439, comment: AcceptSecurityContext error, data 52e, v4563"
I’ve tried several versions with DNs for groups, DNs for various user-containing OU, and just using the root DN but it’s all the same. Is there any way I could get some assistance or further information on this? Additionally, are there plans to implement (if it’s not already?) a more fleshed out filtering option? We generally utilize security group filtering for our LDAP-Enabled services to i.e., only allow users added to the “RustDesk Users” group to authenticate, and “RustDesk Admins” to administer?

Trial?

Hello! Is it possible to set up a trial for Pro? I would love to test it out and see how it would work for me

Device List - assign names to devices without registering as a user

Maybe I am missing something but with RustDesk Pro Web Console -> Device List

I have a list of devices that have RustDesk client installed, all listed via ID number.
I would like a column for a friendly name to assign to each device which is searchable as it grows.

I believe from a quick look today, that unless a user is added (with password and so on), I can not assign any user to a device.
For clarity this is not a user in any way expected to use RustDesk in any purpose other than being the client whom I connect to for support. It would simply be a friendly name to give a device.

We have 200 or so devices in our company that I intend to support via RustDesk, I need an easy way to assign all those IDs to names of people or names of device, that is also searchable.

I did see the other issue raised about device list, wanting notes column added, worst case a friendly name could be put in the notes field but I do not believe this is the correct use case for that.

Thanks

Can't buy rustdesk-pro

Hello,

I have installed rustdesk-server-pro and when i would like to buy licence, i have this error (img)

image

Server Pro license

Hi,

Could you please point me in the right direction to see the Rustdesk Server Pro license terms? We are interested in getting the business license but we want to review the terms first.

Thank you

Unable to add anymore endpoints to address book

100 device licence, currently sitting at 95 endpoints.

I can no longer add devices to the address book.

Does Purslane offer pro-rata upgrades from Personal to Business plan? Maybe offer extra 100 device "add ons" ?

Custom OIDC

Hello

It would be useful to have the ability to enter custom OIDC endpoints to link an on-prem OIDC compliant system for SSO.

Script fails to upgrade server from open source to Pro

Bug Description

Following instructions from here the script fails to upgrade my server from open source to Pro.

Creating /var/log/rustdesk-server
Created symlink /etc/systemd/system/multi-user.target.wants/rustdesk-hbbs.service → /etc/systemd/system/rustdesk-hbbs.service.
Created symlink /etc/systemd/system/multi-user.target.wants/rustdesk-hbbr.service → /etc/systemd/system/rustdesk-hbbr.service.
RustDesk Relay not ready yet...
Tidying up install
rm: cannot remove 'rustdesk-server-linux-amd64.zip': No such file or directory

Server - Ubuntu 20.04 (LTS) x64

How to Reproduce

.

Expected Behavior

Upgrade to Pro version

Operating system(s) on local side and remote side

Ubuntu 20.04 (LTS) x64

RustDesk Version(s) on local side and remote side

Server Pro

Screenshots

.

Additional Context

.

How do i set a permanent password in my strategy?

Hello,

i created a strategy for all my clients to push defined settings. How do i set a permanent password in the web client? If i choose the option "permanent password" i am not able to connect to the machines anymore. I guess because there is no password set.

I would not like to set the password on each machine by hand....

regards

Issue with LDAP/Active Directory

Bug Description

Hello,

I have an issue when I try to connect my Server Pro to my Active Directory.

I provide the following informations:

  • LDAP Host = ad1.mycompany.intra
  • LDAP Port = 389
  • Base DN = DC=mycompany,DC=INTRA
  • Bind DN = CN=Admin_mycompany,CN=Users,DC=mycompany,DC=INTRA

I get the error message:
Failed to update Ldap: LDAP operation result: rc=49 (invalidCredentials), dn: "", text: "80090308: LdapErr: DSID-0C090434, comment: AcceptSecurityContext error, data 52e, v4f7c"

I am completely sure of the bind information.

When I try a tail -f /var/log/rustdesk-server/hbbs.log, I get :
[2023-09-13 18:46:33.591068 +02:00] INFO [src/ldap.rs:133] New LDAP connection: ldap://ad1.mycompany.intra:389

And I see the TCP connection on my FW.

Have you got an idea ?

Thanks a lot for your product !

How to Reproduce

Bottom

Expected Behavior

Expected : LDAP connection

Operating system(s) on local side and remote side

Debian 11

RustDesk Version(s) on local side and remote side

1.1.9

Screenshots

Capture d’écran 2023-09-13 184925

Capture d’écran 2023-09-13 185023

Additional Context

No response

OIDC custom server (GitLab) - wrong scope

I came across a small issue which I was able to kinda solve manually.

I tried setting up OpenID connect to GitLab, with no luck in the first try. It said the scope was malformed, after some investigation I found that the scope was by default wrong. The default scope given in the URL is (scope=openid+email+profile+offline_access), however, "offiline_access" is an unknown scope to GitLab and doesn't seem very standard. After modifying the URL myself and removing the "offline_access" scope, I got authenticated successfully and redirected to RustDesk.

I searched in GitLab for the scope, but it doesn't seem to be there.

I think "offline_access" shouldn't be a standard OIDC scope, or at least make the default scope editable.

customize client with logo etc

Please don't kill me. I know that a guide already exists.

But my question is, is there a better guide or an easier way to create your own client for windows where you can integrate the logo and just your own server?

I would like to create my own host that has no other options, i.e. only the connection acceptance, but no further connection establishment to other clients.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.