Рефакторизация структуры кода для улучшения читаемости и удобства сопровождения.
This commit is contained in:
@@ -0,0 +1 @@
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 875 B |
@@ -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">● Запущено</span>
|
||||
<h1 class="app-name">RustDesk Server</h1>
|
||||
</div>
|
||||
</div>
|
||||
<p class="text-muted"> </p>
|
||||
<hr />
|
||||
<h2><strong>Краткое руководство по настройке соединений между клиентом и сервером 🔧 </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">Откройте 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"> </p>
|
||||
<p>💡 Более подробную информацию о 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 |
@@ -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: ""
|
||||
@@ -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
|
||||
Executable
+21
@@ -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
|
||||
Reference in New Issue
Block a user