tis-rustdesk-server

1.1.14-16
RustDesk is a full-featured open source remote control alternative for self-hosting and security with minimal configuration
2238 downloads
Download
See build result See VirusTotal scan
tis-rustdesk-server icon

Installation Procedure:

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

tis-rustdesk-server

https://wapt.tranquil.it/store/en/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/en/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 rustdesk soft is pre-installed on the workstations ( https://wapt.tranquil.it/store/en/tis-rustdesk )
  • 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-server
  • name : RustDesk Server
  • version : 1.1.14-16
  • categories : Utilities
  • maintainer : WAPT Team,Tranquil IT,Amel FRADJ
  • editor :
  • licence : opensource_free
  • locale : all
  • target_os : windows
  • impacted_process :
  • architecture : x64
  • signature_date : 2025-08-18 09:03
  • size : 12.42 Mo
  • homepage : https://rustdesk.com/
package           : tis-rustdesk-server
version           : 1.1.14-16
architecture      : x64
section           : base
priority          : optional
name              : RustDesk Server
categories        : Utilities
maintainer        : WAPT Team,Tranquil IT,Amel FRADJ
description       : RustDesk is a full-featured open source remote control alternative for self-hosting and security with minimal configuration
depends           : 
conflicts         : 
maturity          : PROD
locale            : all
target_os         : windows
min_wapt_version  : 2.3
sources           : 
installed_size    : 
impacted_process  : 
description_fr    : RustDesk est une alternative de contrôle à distance open source complète pour l'auto-hébergement et la sécurité avec une configuration minimale
description_pl    : RustDesk to w pełni funkcjonalna alternatywa zdalnego sterowania typu open source do samodzielnego hostingu i bezpieczeństwa przy minimalnej konfiguracji
description_de    : RustDesk ist eine voll funktionsfähige Open-Source-Fernsteuerungsalternative für Selbst-Hosting und Sicherheit mit minimaler Konfiguration
description_es    : RustDesk es una completa alternativa de control remoto de código abierto para el autoalojamiento y la seguridad con una configuración mínima
description_pt    : O RustDesk é uma alternativa de controlo remoto de código aberto com todas as funcionalidades para auto-hospedagem e segurança com configuração mínima
description_it    : RustDesk è un'alternativa di controllo remoto open source completa per l'auto-hosting e la sicurezza con una configurazione minima
description_nl    : RustDesk is een volledig open source alternatief voor afstandsbediening voor zelfbeheer en beveiliging met minimale configuratie
description_ru    : RustDesk - это полнофункциональная альтернатива удаленного управления с открытым исходным кодом для самостоятельного размещения и обеспечения безопасности с минимальной конфигурацией
audit_schedule    : 
editor            : 
keywords          : RustDesk
licence           : opensource_free
homepage          : https://rustdesk.com/
package_uuid      : 135c9d9b-cfa4-4b34-bd83-e3f8efc32864
valid_from        : 
valid_until       : 
forced_install_on : 
changelog         : https://github.com/rustdesk/rustdesk/releases
min_os_version    : 10
max_os_version    : 
icon_sha256sum    : 6e1b5881cfd9d438d6aff2c4f9c3f845a728072c75a61d637b842c95b6322a8c
signer            : Tranquil IT
signer_fingerprint: 8c5127a75392be9cc9afd0dbae1222a673072c308c14d88ab246e23832e8c6bb
signature_date    : 2025-08-18T09:03:53.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         : j+9Y5cMFAz+eXr1CBSPw1TTiN5u4ePK7yWCe/pa7XF4CDODg3r/avN7ggrE3wcN1rtCTHrwx3DHQDYGES9vIPK8ADy+cM3yE6OKXZq676nkTIR8D23Xbqknf9dgWR9dcCbnasGvto5lgsCLw6OBmz7w0i4bYMbsTvVfETWnb8iPfdPGb4oBkNHaYjWV3oWgwCXukeIByWYpBNe/hjlu9kTJGDsSFomAVYwfAce16edfKiqW8sLhpEPeLwiHv7z7yI0gMFDiFr3YiuAOcSV6PS6aiT3vCSDPmKgbpgovanb0ly9oysFAHjuTNQwzv1Q3/caDxnUuRHucli6moOFrfWw==
# -*- coding: utf-8 -*-
from setuphelpers import *
import time
import glob
import json
import base64
# Declaring global variables - Warnings: 1) WAPT context is only available in package functions; 2) Global variables are not persistent between calls

locsrvrustdesk = makepath(programfiles,'RustDeskServer')

apiurl = ''

def install():

    #replace nssm by angelize
    if service_installed("RustDesk hbbs service"):
        service_delete('RustDesk hbbs service')

    if service_installed("RustDesk hbbr service"):
        service_delete('RustDesk hbbr service')

    bin_name = glob.glob("*.zip")[0]

    unzip(bin_name)

    if service_installed('RustDeskServer'):
        if service_is_running('RustDeskServer'):
            service_stop('RustDeskServer')

    copytree2("RustDeskServer",locsrvrustdesk)
    remove_file(makepath("rustdesk-server-windows-x86_64-unsigned",'x86_64','RustDeskServer.Setup.exe'))

    copytree2(makepath("rustdesk-server-windows-x86_64-unsigned",'x86_64'),locsrvrustdesk)
    mkdirs(makepath(locsrvrustdesk ,'log'))

    if not service_installed('RustDeskServer'):
        run(r'"%s" --install' % makepath(locsrvrustdesk,"RustDeskServer.exe"))

    run_notfatal('netsh advfirewall firewall delete rule name="%s" program="%s"'% ("hbbr", makepath(locsrvrustdesk, "hbbr.exe")))
    run_notfatal('netsh advfirewall firewall delete rule name="%s" program="%s"'% ("hbbs", makepath(locsrvrustdesk, "hbbs.exe")))


    run('netsh advfirewall firewall add rule name="%s" dir=in profile=private,domain,public action=allow program="%s" enable=yes'% ("hbbr", makepath(locsrvrustdesk, "hbbr.exe")))
    run('netsh advfirewall firewall add rule name="%s" dir=in profile=private,domain,public action=allow program="%s" enable=yes'% ("hbbs", makepath(locsrvrustdesk, "hbbs.exe")))

    if service_is_running('RustDeskServer'):
        service_stop('RustDeskServer')
    service_start('RustDeskServer')

def audit():

    hostname = get_hostname()
    nb=0
    while not glob.glob(makepath(locsrvrustdesk,'*.pub')):
        nb=nb+1
        if nb == 120:
            error("*.pub not found")
        time.sleep(1)

    pubkey = glob.glob(makepath(locsrvrustdesk,'*.pub'))[0]

    key = open(pubkey,'r').read()

    if not '.' in hostname:
        if not params.get("install_with_luti", False):
            error('please configure fqdn')

    print('fqdn use is %s' % hostname)

    config = {"host":hostname,"relay":hostname,"key":key,"api":apiurl}
    rustdesk_list = list(base64.b64encode(json.dumps(config,separators=(',', ':')).encode('utf-8')).decode('utf-8').replace('=',''))
    rustdesk_list.reverse()
    rustdesk_cfg = ''.join(rustdesk_list)

    data = {"config" : config, "rustdesk_cfg" : rustdesk_cfg}


    WAPT.write_audit_data_if_changed("rustdesk-server", 'rustdesk-server', data, max_count=365)
    return "OK"

def uninstall():
    service_delete('RustDeskServer')
    remove_tree(locsrvrustdesk)


# -*- coding: utf-8 -*-
from setuphelpers import *
from setupdevhelpers import *
import glob


def update_package():
    # Declaration of local variables
    package_updated = False
    proxies = get_proxies_from_wapt_console()
    if not proxies:
        proxies = get_proxies()
    api_url = "https://api.github.com/repos/rustdesk/rustdesk-server/releases/latest"



    # Get data from API
    releases_dict = wgets(api_url, proxies=proxies, as_json=True)
    exe_found = False  # Flag pour indiquer la découverte d'un fichier .msi
    for release in releases_dict:
        if exe_found:
            break
        for asset in releases_dict["assets"]:
            if "windows-x86_64" in asset["browser_download_url"]:
                url_download = asset["browser_download_url"]
                filename = url_download.split("/")[-1]
                last_version = releases_dict["name"].replace("-",".")
                exe_found = True  # Mettre à jour le flag pour indiquer qu'un .exe a été trouvé
                break

    if not isfile(filename):
        package_updated = True
        wget(url_download, filename, proxies=proxies)

    # nettoyer les fichiers temporaires
    for f in glob.glob("*.zip"):
        if f != filename:
            remove_file(f)

    wget('https://wapt.tranquil.it/wapt/releases/latest/bin/win64/waptsvc.exe',"RustDeskServer\\RustDeskServer.exe")



    control.set_software_version(last_version)
    control.save_control_to_wapt()

    return package_updated
 : RustDeskServer/RustDeskServer
b82bbe4fd9e099d4bb4cf9b85f0dd3b3b632d2cbad58a86f04891baaf0ebcca2 : RustDeskServer/RustDeskServer.exe
e0d4aa072d5171d774085ec374790183caccc0033479f3461b4006aad250dd73 : RustDeskServer/RustDeskServer/services/RustDeskServer.settings
e8e25e4ff00497ca799007476912f25c6874545e4087a6a5c895f4b446d177d3 : RustDeskServer/RustDeskServer/services/hbbr.service
dd25614f3a49a39a9f167b0d55c67bd4b5bb989da58b4d6400906dcf02569ad8 : RustDeskServer/RustDeskServer/services/hbbs.service
da8982324f50495ec7d85bec1bcbb3b7890fcfd67c1f7774306393307bcf5103 : WAPT/README.md
d1f378aa2b515ce2311b5448fe08af9e4767f3d948ad07ad87d24ba68c206d04 : WAPT/README_fr.md
38d056ab130f7bf7c481c12636a4e9959de36561d3dfcbe54c6e3571bc0c1dc3 : WAPT/certificate.crt
73be04c8afddeab686470fb4d07b9d65463ce9dfacdab4dd6573e0cf2bb11839 : WAPT/control
6e1b5881cfd9d438d6aff2c4f9c3f845a728072c75a61d637b842c95b6322a8c : WAPT/icon.png
123c398e656b09c6e7d2e96aa0e8897cac328d207b8d4a8dd2a9a51ffe29f4ab : luti.json
dd69552a574f12ed9a6b238d7405c148a3a1f645a827742296a863279efa9939 : rustdesk-server-windows-x86_64-unsigned.zip
4875632c294f6b6b71b899d513558935230b6b04af396edd648aad591917d8cd : setup.py
641a97c11704341a2cf2fa03a3c838fe7dcc2f22dfa201e0de875ca1b2c741db : update_package.py