tis-rustdesk-config-template

26
Config for RustDesk
1044 downloads
Download
See build result See VirusTotal scan
tis-rustdesk-config-template icon

#Installation Procedure:

Two packages are required to operate RustDesk through the WAPT console: tis-rustdesk-server and tis-rustdesk-config-template.

tis-rustdesk-server

https://wapt.tranquil.it/store/fr/tis-rustdesk-server

  • Install this package on your RustDesk server.
  • Once installed, go to the machine's audit data and retrieve the data for the tis-rustdesk-server package.
  • Retrieve the rustdesk_cfg key.

tis-rustdesk-config-template

https://wapt.tranquil.it/store/fr/tis-rustdesk-config-template

-Download the tis-rustdesk-config-template package.

  • Private Repository > tis-rustdesk-config-template > right-click > launch update_package > Enter the rustdesk_cfg key > Upload the package.
  • Install this new package on the client workstations.

Usage Procedure:

  • Ensure the customized RustDesk configuration package is pre-installed on the workstations.
  • Launch waptconsole.
  • Select the machine to control in PMAD > Right-click "Connect via RustDesk".
  • package : tis-rustdesk-config-template
  • name : RustDesk Config
  • version : 26
  • categories : Utilities
  • maintainer : WAPT Team,Tranquil IT
  • editor :
  • licence :
  • locale : all
  • target_os : all
  • impacted_process :
  • architecture : all
  • signature_date : 2025-06-04 13:03
  • size : 8.90 Ko
  • homepage : https://rustdesk.com/
  • depends :
package           : tis-rustdesk-config-template
version           : 26
architecture      : all
section           : base
priority          : optional
name              : RustDesk Config
categories        : Utilities
maintainer        : WAPT Team,Tranquil IT
description       : Config for RustDesk
depends           : tis-rustdesk
conflicts         : 
maturity          : PROD
locale            : all
target_os         : all
min_wapt_version  : 2.3
sources           : 
installed_size    : 
impacted_process  : 
description_fr    : Config rustdesk
description_pl    : 
description_de    : 
description_es    : 
description_pt    : 
description_it    : 
description_nl    : 
description_ru    : 
audit_schedule    : 30d
editor            : 
keywords          : RustDesk
licence           : 
homepage          : https://rustdesk.com/
package_uuid      : 60591b77-1901-4e33-80e6-5cca65963f2d
valid_from        : 
valid_until       : 
forced_install_on : 
changelog         : https://github.com/rustdesk/rustdesk/releases
min_os_version    : 
max_os_version    : 
icon_sha256sum    : 2435ab1227e19048fc0d782821cc7258a41b69dc1e22914aedddd288a38b6ccc
signer            : Tranquil IT
signer_fingerprint: 8c5127a75392be9cc9afd0dbae1222a673072c308c14d88ab246e23832e8c6bb
signature_date    : 2025-06-04T13:03:40.000000
signed_attributes : package,version,architecture,section,priority,name,categories,maintainer,description,depends,conflicts,maturity,locale,target_os,min_wapt_version,sources,installed_size,impacted_process,description_fr,description_pl,description_de,description_es,description_pt,description_it,description_nl,description_ru,audit_schedule,editor,keywords,licence,homepage,package_uuid,valid_from,valid_until,forced_install_on,changelog,min_os_version,max_os_version,icon_sha256sum,signer,signer_fingerprint,signature_date,signed_attributes
signature         : paSIfsM/EW5kHz8VvU0+6ho3h6ClOIlh1CbKDHev7EWHs3DC3AH+EQhwmzssUJ/aAAS9oU4Ar/pL9pTYPrv+bFbilNlT5gNEBg8gpPOpG/BMCNGiCtktw8pRc8hlDF+vyeQ3GCgjuo1OG1q/Ng/5roMPCRXNR81J34rxQq+ODzB6IzsIunWvQQa8ZE6SlDK5wZuz1nE55hpxWnk+G+0EIQIsdcBGRnNuY8Oauc+mKNhzkV8mGchGXY3QP9nV80qDsNhs6eyL1gwOzf+A/ZeHyEN/Wg5ZD8xOdX+MUjGzMaAj1yFLjhry5tV9fZ09aOG+Nnj3pq8PIw5E6pbSuuLG8A==
# -*- coding: utf-8 -*-
from setuphelpers import *
import string, secrets
import platform
import json
import base64

r"""
Usable WAPT package functions: install(), uninstall(), session_setup(), audit(), update_package()

"""

if platform.system() == 'Windows':
    if uninstall_key_exists('RustDesk'):
        RustDeskBin = makepath(install_location('RustDesk'),'rustdesk.exe')
elif platform.system() == 'Darwin':
    RustDeskBin = "/Applications/RustDesk.app/Contents/MacOS/RustDesk"
else:
    RustDeskBin = "/usr/bin/rustdesk"


def install():
    rustdesk_cfg = open('rustdesk.cfg').read()

    alphabet = string.ascii_letters + string.digits
    rustdesk_pw = ''.join(secrets.choice(alphabet) for i in range(12))

    run_notfatal('"%s" --config %s' % (RustDeskBin,rustdesk_cfg))
    run('"%s" --password %s' % (RustDeskBin,rustdesk_pw ))

    if platform.system() == 'Windows':
        if service_is_running("rustdesk"):
            service_stop("rustdesk")
        service_start("rustdesk")

    elif platform.system() == 'Darwin':
        print('todo')
    else:
        systemd_restart_service('rustdesk')

def audit():
    rustdesk_id = run('"%s" --get-id' % RustDeskBin)
    if rustdesk_id.endswith('\n'):
        rustdesk_id = rustdesk_id.split('\n')[-2]

    alphabet = string.ascii_letters + string.digits
    rustdesk_pw = ''.join(secrets.choice(alphabet) for i in range(12))
    run('"%s" --password %s' % (RustDeskBin, rustdesk_pw))

    WAPT.write_audit_data_if_changed("rustdesk", 'rustdesk-id', rustdesk_id, max_count=365)
    WAPT.write_audit_data_if_changed("rustdesk", 'password_encryption', rsa_encrypted_data_str(rustdesk_pw, WAPT.public_certs_dir), max_count=365)
    
    return "OK"

def encode_rustdesk_config(config):
    rustdesk_list = list(base64.b64encode(json.dumps(config, separators=(',', ':')).encode('utf-8')).decode('utf-8').replace('=',''))
    rustdesk_list.reverse()
    return ''.join(rustdesk_list)

def update_package():
    old_conf = ""
    if isfile('rustdesk.cfg'):
        old_conf = open('rustdesk.cfg').read()
        
    newconf = ""
    if not params.get("install_with_luti", False):
        from waptguihelper import message_dialog, memo_dialog,input_dialog, MB_YESNO, MB_ICONQUESTION, ID_YES

        is_cfg_config = message_dialog("RUSTDESK Config", "Do you have an cfg config file ?", MB_YESNO + MB_ICONQUESTION)
        if is_cfg_config == ID_YES:
            newconf = memo_dialog('RUSTDESK Config', "Please give your rustdesk cfg config that you can retrieved in the 'Audit data' of your host server", old_conf)
        else:
            conf = {"api":""}
            conf['host'] = input_dialog('Host','Please give ip or dns name of HOST rustdesk server :','rustdesk.mydomain.lan')
            conf['relay'] = input_dialog('Host','Please give ip or dns name of RELAY rustdesk server :',conf['host'])
            conf['key'] = input_dialog('Host','Please give the public key of the rustdesk server (content of the file /opt/rustdesk/*.pub) :','')

            newconf = encode_rustdesk_config(conf)

        control.package = control.package.replace('-template', '')
        control.save_control_to_wapt()

    with open('rustdesk.cfg', 'w') as f:
        f.write(newconf)
abb47d3450d9a82fa432579d09858abd8fee165acfddb66eb4244bd65a3f2ce9 : WAPT/README.md
8f2f044b440ddf9748518f21841efb63ac38dc50b65bd6250641674f12e4c9b1 : WAPT/README_fr.md
38d056ab130f7bf7c481c12636a4e9959de36561d3dfcbe54c6e3571bc0c1dc3 : WAPT/certificate.crt
ef7a68cba474af3a694ee2287c8137ea124dcb1e59df65b3867a4c1ffa1b9e90 : WAPT/control
2435ab1227e19048fc0d782821cc7258a41b69dc1e22914aedddd288a38b6ccc : WAPT/icon.png
27bfa586817c3a6008fe460167060cc7548be30931195e750e90af93d2a56a5e : luti.json
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 : rustdesk.cfg
3dee5b1709ce94f514d34bec3a6436c97e4e23d960331eab8453cff11d4f05a2 : setup.py