Рефакторизация структуры кода для улучшения читаемости и удобства сопровождения.

This commit is contained in:
2026-04-30 07:41:41 +03:00
parent eec534760e
commit 89b17ea2b2
1406 changed files with 38483 additions and 3 deletions
+1
View File
@@ -0,0 +1 @@
+1
View File
@@ -0,0 +1 @@
Binary file not shown.

After

Width:  |  Height:  |  Size: 875 B

+359
View File
@@ -0,0 +1,359 @@
<!DOCTYPE html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title> Сервер RustDesk</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">&#9679; Запущено</span>
<h1 class="app-name">RustDesk&nbsp;Server</h1>
</div>
</div>
<p class="text-muted">&nbsp;</p>
<hr />
<h2><strong>Краткое руководство по настройке соединений между клиентом и сервером &#x1F527;&nbsp;</strong></h2>
<p>&nbsp;</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">Откройте RustDesk на
клиенте</strong><br data-start="182" data-end="185" /> Запустите RustDesk на компьютере или устройстве,
которое хотите использовать.</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">Откройте
настройки</strong><br data-start="268" data-end="271" /> Нажмите на меню с тремя точками рядом с вашим
ID и выберите 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">Разблокируйте сетевые
настройки</strong><br data-start="370" data-end="373" /> В меню настроек перейдите в раздел Network.
Нажмите Unlock Network 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">Выберите "ID/Relay
Server"</strong><br data-start="560" data-end="563" /> После разблокировки сетевых настроек
выберите пункт "ID/Relay Server".</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">Введите данные
сервера</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-
сервер:</strong> Введите <code data-start="702" data-end="722">dfwebos.local:21116</code>
как IP-адрес или домен вашего ретрансляционного сервера RustDesk.</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">Ключ:</strong> Используйте следующий открытый ключ:
<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;">Загрузка ключа...</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-
сервер:</strong> Это поле можно оставить пустым.</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-
сервер:</strong> Это поле можно оставить пустым.</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">Примените
настройки</strong><br data-start="1128" data-end="1131" /> После ввода данных нажмите
Apply, чтобы сохранить настройки.</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">Повторите для всех
клиентов</strong><br data-start="1226" data-end="1229" /> Выполните те же действия на всех устройствах,
которые должны подключаться к вашему серверу. На каждом из них нужно указать один и тот же <code data-start="1333"
data-end="1353">dfwebos.local:21116</code> и один и тот же открытый ключ.</p>
</li>
</ol>
<hr />
<p class="" data-start="1033" data-end="1127">&nbsp;</p>
<p>&#x1F4A1; Более подробную информацию о RustDesk, включая настройку сервера, руководства для пользователей и
документацию для разработчиков, можно найти в <a href="https://rustdesk.com/docs/en/self-host/">документации RustDesk</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 = 'Ошибка загрузки ключа. Проверьте логи.';
console.error('Error loading key:', error);
});
});
</script>
</body>
</html>
Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

+42
View File
@@ -0,0 +1,42 @@
manifestVersion: 1.1
id: rustdesk-server
name: RustDesk Server
tagline: Быстрое и надежное решение для удаленного доступа
category: networking
version: "1.1.15"
port: 21080
description: >-
RustDesk — это автономное и безопасное решение для удаленного рабочего стола с открытым исходным кодом, которое позволяет пользователям получать удаленный доступ к компьютерам и управлять ими. Он предоставляет функциональность, аналогичную другим инструментам удаленного рабочего стола, таким как TeamViewer и AnyDesk, но с ключевым преимуществом открытого исходного кода, что означает, что пользователи могут проверять код, участвовать в его разработке и даже самостоятельно размещать программное обеспечение на своих собственных серверах. Это обеспечивает больший контроль над средой удаленного доступа и лучшую конфиденциальность, поскольку все соединения могут направляться через сервер, которым владеет или управляет пользователь, вместо того, чтобы полагаться на стороннего поставщика.
RustDesk создан с использованием Rust, языка системного программирования, известного своей производительностью, безопасностью и безопасностью памяти. Программное обеспечение легкое и простое в использовании, имеет интуитивно понятный интерфейс, который делает доступ к удаленному рабочему столу доступным как для технических, так и для нетехнических пользователей. Он поддерживает кроссплатформенную функциональность, что означает, что вы можете подключаться с устройств Windows, macOS, Linux, iOS и Android для управления удаленным компьютером. RustDesk предлагает такие важные функции, как передача файлов, синхронизация буфера обмена и совместное использование экрана, обеспечивая удобство работы для пользователей, нуждающихся в удаленной помощи или работающих из разных мест.
Одним из основных преимуществ RustDesk является его способность работать, не полагаясь на централизованные серверы. Несмотря на то, что для удобства он предлагает облачный сервис, пользователи могут настроить собственную серверную инфраструктуру, повышая безопасность и конфиденциальность своих удаленных сеансов. Благодаря этому варианту самостоятельного размещения пользователи могут иметь полный контроль над данными, передаваемыми между устройствами, что идеально подходит для отдельных лиц или организаций, которые отдают приоритет конфиденциальности и защите данных.
В целом, RustDesk представляет собой мощную альтернативу проприетарному программному обеспечению для удаленного рабочего стола. Его природа с открытым исходным кодом, возможность самостоятельного размещения и высокая производительность делают его привлекательным выбором для всех, кто ищет надежное, безопасное и настраиваемое решение для удаленного рабочего стола.
developer: RustDesk Team
website: https://rustdesk.com
submitter: Knufle
submission: https://github.com/getumbrel/dfwebos-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: >-
Это обновление включает в себя несколько улучшений и исправлений:
- Исправлена обработка адреса обратной связи.
- Увеличена пропускная способность по умолчанию для повышения производительности.
- Добавлена поддержка запуска без root-прав
- Добавлена опция регистрации попыток аутентификации для использования с такими инструментами безопасности, как Fail2ban.
- Улучшен запрос журнала подключений.
Полные примечания к выпуску можно найти по адресу https://github.com/rustdesk/rustdesk-server/releases.
path: ""
+41
View 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.15@sha256:10818ec05b179039c6660f4d8e74b303f0db2858bbad2b18e24992ea22d54cd6
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.15@sha256:10818ec05b179039c6660f4d8e74b303f0db2858bbad2b18e24992ea22d54cd6
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
View File
@@ -0,0 +1,21 @@
#!/usr/bin/env bash
set -euo pipefail
# Этот скрипт позволяет отображать открытый ключ RustDesk в веб-интерфейсе.
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..."
# Подождите до 30 секунд...
for attempt in $(seq 1 300); do
if [[ -f "${PUBLIC_KEY_FILE}" ]]; then
echo "public key file exists"
# Скопируйте открытый ключ в файл назначения.
cp "${PUBLIC_KEY_FILE}" "${DESTINATION_FILE}"
break
fi
sleep 0.1
done