Co-authored-by: al-lac <lackner.alex@gmail.com>
This commit is contained in:
parent
d0dc692727
commit
6efcb38429
1
rustdesk-server/data/hbbr/.gitkeep
Normal file
1
rustdesk-server/data/hbbr/.gitkeep
Normal file
@ -0,0 +1 @@
|
||||
|
||||
1
rustdesk-server/data/hbbs/.gitkeep
Normal file
1
rustdesk-server/data/hbbs/.gitkeep
Normal file
@ -0,0 +1 @@
|
||||
|
||||
BIN
rustdesk-server/data/www/favicon.png
Normal file
BIN
rustdesk-server/data/www/favicon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 875 B |
361
rustdesk-server/data/www/index.html
Normal file
361
rustdesk-server/data/www/index.html
Normal file
@ -0,0 +1,361 @@
|
||||
<!DOCTYPE html>
|
||||
<html><head><meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
|
||||
<title> RustDesk Server</title>
|
||||
<style>
|
||||
/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */
|
||||
html {
|
||||
line-height: 1.15;
|
||||
-webkit-text-size-adjust: 100%
|
||||
}
|
||||
|
||||
body {
|
||||
margin: 0
|
||||
}
|
||||
|
||||
main {
|
||||
display: block
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 2em;
|
||||
margin: .67em 0
|
||||
}
|
||||
|
||||
hr {
|
||||
box-sizing: content-box;
|
||||
height: 0;
|
||||
overflow: visible
|
||||
}
|
||||
|
||||
pre {
|
||||
font-family: monospace, monospace;
|
||||
font-size: 1em
|
||||
}
|
||||
|
||||
a {
|
||||
background-color: transparent
|
||||
}
|
||||
|
||||
abbr[title] {
|
||||
border-bottom: none;
|
||||
text-decoration: underline;
|
||||
text-decoration: underline dotted
|
||||
}
|
||||
|
||||
b,
|
||||
strong {
|
||||
font-weight: bolder
|
||||
}
|
||||
|
||||
code,
|
||||
kbd,
|
||||
samp {
|
||||
font-family: monospace, monospace;
|
||||
font-size: 1em
|
||||
}
|
||||
|
||||
small {
|
||||
font-size: 80%
|
||||
}
|
||||
|
||||
sub,
|
||||
sup {
|
||||
font-size: 75%;
|
||||
line-height: 0;
|
||||
position: relative;
|
||||
vertical-align: baseline
|
||||
}
|
||||
|
||||
sub {
|
||||
bottom: -.25em
|
||||
}
|
||||
|
||||
sup {
|
||||
top: -.5em
|
||||
}
|
||||
|
||||
img {
|
||||
border-style: none
|
||||
}
|
||||
|
||||
button,
|
||||
input,
|
||||
optgroup,
|
||||
select,
|
||||
textarea {
|
||||
font-family: inherit;
|
||||
font-size: 100%;
|
||||
line-height: 1.15;
|
||||
margin: 0
|
||||
}
|
||||
|
||||
button,
|
||||
input {
|
||||
overflow: visible
|
||||
}
|
||||
|
||||
button,
|
||||
select {
|
||||
text-transform: none
|
||||
}
|
||||
|
||||
[type=button],
|
||||
[type=reset],
|
||||
[type=submit],
|
||||
button {
|
||||
-webkit-appearance: button
|
||||
}
|
||||
|
||||
[type=button]::-moz-focus-inner,
|
||||
[type=reset]::-moz-focus-inner,
|
||||
[type=submit]::-moz-focus-inner,
|
||||
button::-moz-focus-inner {
|
||||
border-style: none;
|
||||
padding: 0
|
||||
}
|
||||
|
||||
[type=button]:-moz-focusring,
|
||||
[type=reset]:-moz-focusring,
|
||||
[type=submit]:-moz-focusring,
|
||||
button:-moz-focusring {
|
||||
outline: 1px dotted ButtonText
|
||||
}
|
||||
|
||||
fieldset {
|
||||
padding: .35em .75em .625em
|
||||
}
|
||||
|
||||
legend {
|
||||
box-sizing: border-box;
|
||||
color: inherit;
|
||||
display: table;
|
||||
max-width: 100%;
|
||||
padding: 0;
|
||||
white-space: normal
|
||||
}
|
||||
|
||||
progress {
|
||||
vertical-align: baseline
|
||||
}
|
||||
|
||||
textarea {
|
||||
overflow: auto
|
||||
}
|
||||
|
||||
[type=checkbox],
|
||||
[type=radio] {
|
||||
box-sizing: border-box;
|
||||
padding: 0
|
||||
}
|
||||
|
||||
[type=number]::-webkit-inner-spin-button,
|
||||
[type=number]::-webkit-outer-spin-button {
|
||||
height: auto
|
||||
}
|
||||
|
||||
[type=search] {
|
||||
-webkit-appearance: textfield;
|
||||
outline-offset: -2px
|
||||
}
|
||||
|
||||
[type=search]::-webkit-search-decoration {
|
||||
-webkit-appearance: none
|
||||
}
|
||||
|
||||
::-webkit-file-upload-button {
|
||||
-webkit-appearance: button;
|
||||
font: inherit
|
||||
}
|
||||
|
||||
details {
|
||||
display: block
|
||||
}
|
||||
|
||||
summary {
|
||||
display: list-item
|
||||
}
|
||||
|
||||
template {
|
||||
display: none
|
||||
}
|
||||
|
||||
[hidden] {
|
||||
display: none
|
||||
}
|
||||
</style>
|
||||
<style>
|
||||
body {
|
||||
background-color: #1D1B1B;
|
||||
font-family: system-ui, -apple-system, BlinkMacSystemFont, Roboto, Helvetica Neue, Segoe UI, Arial, Noto Sans, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol, Noto Color Emoji;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
*,
|
||||
h1,
|
||||
h2,
|
||||
h3,
|
||||
h4,
|
||||
h5,
|
||||
h6,
|
||||
p,
|
||||
span {
|
||||
color: #fff;
|
||||
font-size: 20px;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
.success {
|
||||
color: #63FB72;
|
||||
}
|
||||
|
||||
.text-muted {
|
||||
opacity: 0.8;
|
||||
}
|
||||
|
||||
.text-small {
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
hr {
|
||||
width: 100%;
|
||||
height: 2px;
|
||||
background: #2F2C2C;
|
||||
border: none;
|
||||
margin: 40px 0;
|
||||
}
|
||||
|
||||
.container {
|
||||
padding: 40px;
|
||||
max-width: 1440px;
|
||||
margin: auto;
|
||||
}
|
||||
|
||||
.app-icon {
|
||||
border-radius: 20px;
|
||||
}
|
||||
|
||||
.app {
|
||||
display: flex;
|
||||
margin: 20px 0 40px 0;
|
||||
}
|
||||
|
||||
.app>.app-icon {
|
||||
flex-shrink: 0;
|
||||
height: 140px;
|
||||
width: 140px;
|
||||
box-shadow: 0 0 40px 0 rgba(0, 0, 0, 0.95);
|
||||
margin-right: 24px;
|
||||
}
|
||||
|
||||
.app>.app-details>.app-status {
|
||||
display: block;
|
||||
font-size: 20px;
|
||||
margin: 10px 0 0 0;
|
||||
}
|
||||
|
||||
.app>.app-details>.app-name {
|
||||
font-size: 52px;
|
||||
line-height: 52px;
|
||||
font-weight: bold;
|
||||
margin: 10px 0 0 0;
|
||||
}
|
||||
</style>
|
||||
<link rel="shortcut icon" type="image/jpg" href="favicon.png">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<section class="container app-container">
|
||||
<div class="app">
|
||||
<img class="app-icon" src="logo.png" width="256" height="256">
|
||||
<div class="app-details">
|
||||
<span class="app-status success">● Running</span>
|
||||
<h1 class="app-name">RustDesk Server</h1>
|
||||
</div>
|
||||
</div>
|
||||
<p class="text-muted"> </p>
|
||||
<hr />
|
||||
<h2><strong>Quick Guide to Setting Up Connections Between Client and Server 🔧 </strong></h2>
|
||||
<p> </p>
|
||||
<ol data-start="97" data-end="1031">
|
||||
<li class="" data-start="148" data-end="246">
|
||||
<p class="" data-start="151" data-end="246"><strong data-start="151" data-end="182">Open RustDesk on the
|
||||
Client</strong><br data-start="182" data-end="185" /> Launch RustDesk on the computer or device
|
||||
you want to use.</p>
|
||||
</li>
|
||||
<li class="" data-start="248" data-end="338">
|
||||
<p class="" data-start="251" data-end="338"><strong data-start="251" data-end="268">Open
|
||||
Settings</strong><br data-start="268" data-end="271" /> Click on the three-dot menu next to your
|
||||
ID and select Settings.</p>
|
||||
</li>
|
||||
<li class="" data-start="340" data-end="527">
|
||||
<p class="" data-start="343" data-end="527"><strong data-start="343" data-end="370">Unlock Network
|
||||
Settings</strong><br data-start="370" data-end="373" /> In the settings menu, go to the Network
|
||||
section. Click on Unlock Network Settings. You may need to enter your system password to modify
|
||||
these settings.</p>
|
||||
</li>
|
||||
<li class="" data-start="529" data-end="640">
|
||||
<p class="" data-start="532" data-end="640"><strong data-start="532" data-end="560">Select "ID/Relay
|
||||
Server"</strong><br data-start="560" data-end="563" /> After unlocking the network settings,
|
||||
select the "ID/Relay Server" option.</p>
|
||||
</li>
|
||||
<li class="" data-start="642" data-end="1101">
|
||||
<p class="" data-start="645" data-end="675"><strong data-start="645" data-end="673">Enter Server
|
||||
Information</strong></p>
|
||||
<ul style="list-style-type: disc;" data-start="679" data-end="1101">
|
||||
<li class="" data-start="679" data-end="783">
|
||||
<p class="" data-start="681" data-end="783"><strong data-start="681" data-end="695">ID
|
||||
Server:</strong> Enter <code data-start="702" data-end="722">umbrel.local:21116</code>
|
||||
as the IP address or Domain of your RustDesk Relay server.</p>
|
||||
</li>
|
||||
<li class="" data-start="787" data-end="995">
|
||||
<p class="" data-start="789" data-end="995"><strong data-start="789"
|
||||
data-end="797">Key:</strong> Use the following Public Key:
|
||||
<pre
|
||||
style="background-color: #2F2C2C; padding: 10px; border-radius: 5px; margin-top: 10px; overflow-x: auto;"><code id="key-content" style="word-break: break-all; white-space: pre-wrap;">Loading key...</code></pre>
|
||||
</p>
|
||||
</li>
|
||||
<li class="" data-start="999" data-end="1048">
|
||||
<p class="" data-start="1001" data-end="1048"><strong data-start="1001" data-end="1016">API
|
||||
Server:</strong> This field can be left empty.</p>
|
||||
</li>
|
||||
<li class="" data-start="1052" data-end="1101">
|
||||
<p class="" data-start="1054" data-end="1101"><strong data-start="1054" data-end="1071">Relay
|
||||
Server:</strong> This field can be left empty.</p>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="" data-start="1103" data-end="1195">
|
||||
<p class="" data-start="1106" data-end="1195"><strong data-start="1106" data-end="1128">Apply the
|
||||
Settings</strong><br data-start="1128" data-end="1131" /> After entering the details, click
|
||||
Apply to save the settings.</p>
|
||||
</li>
|
||||
<li class="" data-start="1197" data-end="1384">
|
||||
<p class="" data-start="1200" data-end="1384"><strong data-start="1200" data-end="1226">Repeat for All
|
||||
Clients</strong><br data-start="1226" data-end="1229" /> Perform the same steps on all devices
|
||||
that should connect to your server. You need to enter the same <code data-start="1333"
|
||||
data-end="1353">umbrel.local:21116</code> and Public Key on all of them.</p>
|
||||
</li>
|
||||
</ol>
|
||||
<hr />
|
||||
<p class="" data-start="1033" data-end="1127"> </p>
|
||||
<p>💡 For more detailed information about RustDesk, including server setup, user guides, and developer
|
||||
documentation, you can visit the <a href="https://rustdesk.com/docs/en/self-host/">RustDesk
|
||||
Documentation</a>.</p>
|
||||
</section>
|
||||
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', function () {
|
||||
fetch('public_key.txt')
|
||||
.then(response => response.text())
|
||||
.then(data => {
|
||||
document.getElementById('key-content').textContent = data.trim();
|
||||
})
|
||||
.catch(error => {
|
||||
document.getElementById('key-content').textContent = 'Error loading key. Please check the logs.';
|
||||
console.error('Error loading key:', error);
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
BIN
rustdesk-server/data/www/logo.png
Normal file
BIN
rustdesk-server/data/www/logo.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 21 KiB |
41
rustdesk-server/docker-compose.yml
Normal file
41
rustdesk-server/docker-compose.yml
Normal file
@ -0,0 +1,41 @@
|
||||
version: '3.7'
|
||||
|
||||
services:
|
||||
app_proxy:
|
||||
environment:
|
||||
APP_HOST: rustdesk-server_web_1
|
||||
APP_PORT: 80
|
||||
|
||||
hbbs:
|
||||
container_name: hbbs
|
||||
image: rustdesk/rustdesk-server:1.1.14@sha256:680f8ba5accafc264d15076f33a6fdb9cb6f4d963a0fc92e01023ca0e919cc83
|
||||
ports:
|
||||
- 21115:21115
|
||||
- 21116:21116
|
||||
- 21116:21116/udp
|
||||
- 21118:21118
|
||||
command: hbbs
|
||||
volumes:
|
||||
- ${APP_DATA_DIR}/data/hbbs:/root
|
||||
network_mode: "host"
|
||||
depends_on:
|
||||
- hbbr
|
||||
restart: on-failure
|
||||
|
||||
hbbr:
|
||||
container_name: hbbr
|
||||
image: rustdesk/rustdesk-server:1.1.14@sha256:680f8ba5accafc264d15076f33a6fdb9cb6f4d963a0fc92e01023ca0e919cc83
|
||||
ports:
|
||||
- 21117:21117
|
||||
- 21119:21119
|
||||
command: hbbr
|
||||
volumes:
|
||||
- ${APP_DATA_DIR}/data/hbbr:/root
|
||||
network_mode: "host"
|
||||
restart: on-failure
|
||||
|
||||
web:
|
||||
image: nginx:1.27@sha256:124b44bfc9ccd1f3cedf4b592d4d1e8bddb78b51ec2ed5056c52d3692baebc19
|
||||
restart: on-failure
|
||||
volumes:
|
||||
- ${APP_DATA_DIR}/data/www:/usr/share/nginx/html:ro
|
||||
21
rustdesk-server/hooks/post-start
Executable file
21
rustdesk-server/hooks/post-start
Executable file
@ -0,0 +1,21 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
# This script allows the RustDesk public key to be shown on the web interface
|
||||
|
||||
APP_DATA_DIR="$(readlink -f "$(dirname "${BASH_SOURCE[0]}")"/..)"
|
||||
PUBLIC_KEY_FILE="${APP_DATA_DIR}/data/hbbs/id_ed25519.pub"
|
||||
DESTINATION_FILE="${APP_DATA_DIR}/data/www/public_key.txt"
|
||||
|
||||
echo "Waiting for file (${PUBLIC_KEY_FILE}) to exist..."
|
||||
|
||||
# Wait up to 30 seconds...
|
||||
for attempt in $(seq 1 300); do
|
||||
if [[ -f "${PUBLIC_KEY_FILE}" ]]; then
|
||||
echo "public key file exists"
|
||||
# Copy the public key to the destination file
|
||||
cp "${PUBLIC_KEY_FILE}" "${DESTINATION_FILE}"
|
||||
break
|
||||
fi
|
||||
sleep 0.1
|
||||
done
|
||||
33
rustdesk-server/umbrel-app.yml
Normal file
33
rustdesk-server/umbrel-app.yml
Normal file
@ -0,0 +1,33 @@
|
||||
manifestVersion: 1.1
|
||||
id: rustdesk-server
|
||||
name: RustDesk Server
|
||||
tagline: A fast and reliable solution for remote access
|
||||
category: networking
|
||||
version: "1.1.14"
|
||||
port: 21080
|
||||
description: >-
|
||||
RustDesk is an open-source, self-hosted, and secure remote desktop solution that allows users to access and control computers remotely. It provides functionality similar to other remote desktop tools like TeamViewer and AnyDesk but with the key advantage of being open-source, meaning users can inspect the code, contribute to its development, and even self-host the software on their own servers. This allows for greater control over the remote access environment and better privacy, as all communication can be routed through a server that the user owns or operates, rather than relying on a third-party provider.
|
||||
|
||||
|
||||
RustDesk is built using Rust, a systems programming language known for its performance, security, and memory safety. The software is lightweight and designed for ease of use, featuring an intuitive interface that makes remote desktop access accessible to both technical and non-technical users. It supports cross-platform functionality, meaning you can connect from Windows, macOS, Linux, iOS, and Android devices to control a remote machine. RustDesk offers essential features such as file transfer, clipboard synchronization, and screen sharing, ensuring a seamless experience for users needing remote assistance or working from different locations.
|
||||
|
||||
|
||||
One of the major benefits of RustDesk is its ability to function without relying on centralized servers. While it does offer a cloud service for convenience, users can set up their own server infrastructure, enhancing the security and privacy of their remote sessions. With this self-hosted option, users can have complete control over the data transmitted between the devices, which is ideal for individuals or organizations that prioritize privacy and data protection.
|
||||
|
||||
|
||||
Overall, RustDesk provides a powerful alternative to proprietary remote desktop software. Its open-source nature, self-hosting capability, and high performance make it an appealing choice for anyone seeking a reliable, secure, and customizable remote desktop solution.
|
||||
developer: RustDesk Team
|
||||
website: https://rustdesk.com
|
||||
submitter: Knufle
|
||||
submission: https://github.com/getumbrel/umbrel-apps/pull/2411
|
||||
repo: https://github.com/rustdesk/rustdesk-server
|
||||
support: https://github.com/rustdesk/rustdesk/issues
|
||||
gallery:
|
||||
- 1.jpg
|
||||
- 2.jpg
|
||||
- 3.jpg
|
||||
defaultUsername: ""
|
||||
defaultPassword: ""
|
||||
dependencies: []
|
||||
releaseNotes: ""
|
||||
path: ""
|
||||
Loading…
Reference in New Issue
Block a user