From 6767f87261b0d0c81b165d0f8f22a56f47770ed9 Mon Sep 17 00:00:00 2001 From: devdamo <77869423+devdamo@users.noreply.github.com> Date: Sun, 26 Oct 2025 01:15:59 +0100 Subject: [PATCH] Add RustDesk blueprint for self-hosted remote desktop (#331) * Add RustDesk blueprint for self-hosted remote desktop Introduces a new blueprint for RustDesk, including Docker Compose configuration, metadata, icon, and template files. This enables easy deployment of a self-hosted RustDesk remote desktop server. * Update RustDesk logo file reference Changed the logo file in meta.json from 'rustdesk.svg' to 'rustdesk.png' to reflect the correct image format. * Add RustDesk to meta.json Introduced RustDesk as a new entry in meta.json with relevant metadata, including description, logo, links, and tags for remote desktop and self-hosted productivity. * Delete meta.json * Update meta.json * Update meta.json --- blueprints/rustdesk/docker-compose.yml | 27 +++++++++++++++++++++++++ blueprints/rustdesk/rustdesk.png | Bin 0 -> 7559 bytes blueprints/rustdesk/template.toml | 9 +++++++++ meta.json | 17 ++++++++++++++++ 4 files changed, 53 insertions(+) create mode 100644 blueprints/rustdesk/docker-compose.yml create mode 100644 blueprints/rustdesk/rustdesk.png create mode 100644 blueprints/rustdesk/template.toml diff --git a/blueprints/rustdesk/docker-compose.yml b/blueprints/rustdesk/docker-compose.yml new file mode 100644 index 00000000..b9c38a57 --- /dev/null +++ b/blueprints/rustdesk/docker-compose.yml @@ -0,0 +1,27 @@ +services: + hbbs: + image: rustdesk/rustdesk-server:latest + command: hbbs + restart: unless-stopped + volumes: + - rustdesk-data:/root + ports: + - 21115 + - 21116 + - 21116/udp + depends_on: + - hbbr + + hbbr: + image: rustdesk/rustdesk-server:latest + command: hbbr + restart: unless-stopped + volumes: + - rustdesk-data:/root + ports: + - 21117 + - 21118 + - 21119 + +volumes: + rustdesk-data: {} \ No newline at end of file diff --git a/blueprints/rustdesk/rustdesk.png b/blueprints/rustdesk/rustdesk.png new file mode 100644 index 0000000000000000000000000000000000000000..91a4473ddb37a06bb8fcad6e146b72bb5b211ef5 GIT binary patch literal 7559 zcmV;29eCo2P)EX>4Tx04R}tkv&MmKpe$iQ>7vm2P>#JWT=8*7Zq`=RVYG*P%E_RU~=h)(4-+r zad8w}3l4rPRvlcNb#-tR1i=pwX9p)m7b)?7NufoI2gm(*ckglc4iM^Prdb_vK+|nA zolJ`_MF@lFhlnwmS;nj+rQkch?h)YYU5sb>pZjz4sCkP40g*V)4AUlFC!XH4 z4bJ<-5mu5_;&bA0lP*a7$aTfzH_kL;k>@Q#C4j(NMZqtkf2C8-O`jj;Bp5Tcrs*DcBLRqp-=$c&*+M=JmT8-z(jK~#9!?VWj;l+~T@Kd1Jp zuI{Gk1sWPbQFekX3W~BBg19odamh8JF{3kcWAx6%OpG&QX8y>`^~U5T8fWg@dlTap zz%>qvvLgzpEDp*RKxC)s4e0LbuJt|lkM4%|0xGbfC9jSlF|i5fe>&8s0H=`e*$&@9|<8sM*OEjXVX^#-v+)3 zTn)HYyDI6R81M=3Ca^>ZQEe*#q?B`k$AATZQ?-|pfl2`H15XPfHdqRPl=ADqKLOXO zc2TlGn}8>U5bI0@pgq-j3b}fx02T=$&SeaMl(GU? z30$e_RVj<~8E~Tzq9$zsq?AR#dfFalDJf-}z5r$kAh(RBylBVeYgBc&YH79qs77o|Y$Q<|0e zm2zFzNGWG^{KM7hjmK2oWUl(C#_py#`+0_(hUsIgjO>t_XS|?-6o_kv&nfGP4-);M=&?OifbTK~YW^93r>BSzV7kltJ zgld%J6$h$>5T`o;cntWts+YcXD3oALO_Vh?QP$N)sgG(G%qn^rS}*{D?&Vw#m{jQD z>jS-fz0}8b13dT?5dG=D3n6|jROh#MMK#IF(@|bM7GXtol!jQMZ?mQXLDG=Ol*{>? zf;lA~?iv(eQH7rYE{AH&i?vY*Fd+601* za$bjEeyNW;D*P-e_fw=`IDdZw1_~+V0@@ZC=XZM3oZvSHTY2%T2=y^7gS5te5On

Y2mWN79rfS}{=sf8XM85ZQ* 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 literal 0 HcmV?d00001 diff --git a/blueprints/rustdesk/template.toml b/blueprints/rustdesk/template.toml new file mode 100644 index 00000000..080144c4 --- /dev/null +++ b/blueprints/rustdesk/template.toml @@ -0,0 +1,9 @@ +[variables] +server_domain = "${domain}" + +[config] + +[config.env] +RUSTDESK_RELAY_SERVER = "${server_domain}:21117" + +[[config.mounts]] \ No newline at end of file diff --git a/meta.json b/meta.json index 0502bbca..eecff1b6 100644 --- a/meta.json +++ b/meta.json @@ -4617,6 +4617,23 @@ "self-hosted" ] }, + { + "id": "rustdesk", + "name": "RustDesk", + "version": "latest", + "description": "RustDesk is a full-featured open source remote control alternative for self-hosting and security with minimal configuration.", + "logo": "rustdesk.png", + "links": { + "github": "https://github.com/rustdesk/rustdesk-server", + "website": "https://rustdesk.com/", + "docs": "https://rustdesk.com/docs/" + }, + "tags": [ + "remote-desktop", + "self-hosted", + "productivity" + ] + }, { "id": "rutorrent", "name": "ruTorrent",