Compare commits

..

3 Commits

Author SHA1 Message Date
lejianwen
bd13fe4ef4 up web client v2 2024-12-10 18:26:08 +08:00
lejianwen
6e1b208464 up README.md 2024-12-10 15:28:05 +08:00
lejianwen
76433a409e up README.md 2024-12-09 13:43:04 +08:00
5 changed files with 54248 additions and 54613 deletions

199
README.md
View File

@@ -263,189 +263,8 @@ proxy:
lejianwen/rustdesk-api
```
2. 使用`docker compose`
- 简单示例
```yaml
services:
rustdesk-api:
container_name: rustdesk-api
environment:
- TZ=Asia/Shanghai
- RUSTDESK_API_RUSTDESK_ID_SERVER=192.168.1.66:21116
- RUSTDESK_API_RUSTDESK_RELAY_SERVER=192.168.1.66:21117
- RUSTDESK_API_RUSTDESK_API_SERVER=http://192.168.1.66:21114
- RUSTDESK_API_RUSTDESK_KEY=<key>
ports:
- 21114:21114
image: lejianwen/rustdesk-api
volumes:
- /data/rustdesk/api:/app/data #将数据库挂载出来方便备份
networks:
- rustdesk-net
restart: unless-stopped
```
2. 使用`docker compose`,参考[wiki](https://github.com/lejianwen/rustdesk-api/wiki)
- 根据rustdesk官方提供的示例加上自己的rustdesk-api
- 如果是使用的系统生成的KEY去掉`-k <key>`参数,在启动后运行`docker-compose logs hbbs`或者`cat ./data/id_ed25519.pub`查看KEY然后再修改`RUSTDESK_API_RUSTDESK_KEY=<key>`再执行`docker-compose up -d`
```yaml
networks:
rustdesk-net:
external: false
services:
hbbs:
container_name: hbbs
ports:
- 21115:21115
- 21116:21116 # 自定义 hbbs 映射端口
- 21116:21116/udp # 自定义 hbbs 映射端口
- 21118:21118 # web client
image: rustdesk/rustdesk-server
command: hbbs -r <relay-server-ip[:port]> -k <key> # 填入个人域名或 IP + hbbr 暴露端口
volumes:
- ./data:/root # 自定义挂载目录
networks:
- rustdesk-net
depends_on:
- hbbr
restart: unless-stopped
deploy:
resources:
limits:
memory: 64M
hbbr:
container_name: hbbr
ports:
- 21117:21117 # 自定义 hbbr 映射端口
- 21119:21119 # web client
image: rustdesk/rustdesk-server
command: hbbr -k <key>
volumes:
- ./data:/root
networks:
- rustdesk-net
restart: unless-stopped
deploy:
resources:
limits:
memory: 64M
rustdesk-api:
container_name: rustdesk-api
environment:
- TZ=Asia/Shanghai
- RUSTDESK_API_RUSTDESK_ID_SERVER=192.168.1.66:21116
- RUSTDESK_API_RUSTDESK_RELAY_SERVER=192.168.1.66:21117
- RUSTDESK_API_RUSTDESK_API_SERVER=http://192.168.1.66:21114
- RUSTDESK_API_RUSTDESK_KEY=<key>
ports:
- 21114:21114
image: lejianwen/rustdesk-api
volumes:
- /data/rustdesk/api:/app/data #将数据库挂载出来方便备份
networks:
- rustdesk-net
restart: unless-stopped
```
- S6的镜像
- 如果使用***自定义KEY***,会需要修改启动脚本,覆盖镜像中的`/etc/s6-overlay/s6-rc.d/hbbr/run`和`/etc/s6-overlay/s6-rc.d/hbbr/run`
1. 创建`hbbr/run`自定义KEY才需要
```bash
#!/command/with-contenv sh
cd /data
PARAMS=
[ "${ENCRYPTED_ONLY}" = "1" ] && PARAMS="-k ${KEY}"
/usr/bin/hbbr $PARAMS
```
2. 创建`hbbs/run`自定义KEY才需要
```bash
#!/command/with-contenv sh
sleep 2
cd /data
PARAMS=
[ "${ENCRYPTED_ONLY}" = "1" ] && PARAMS="-k ${KEY}"
/usr/bin/hbbs -r $RELAY $PARAMS
```
3. 修改`docker-compose.yml`中的`s6`部分
```yaml
networks:
rustdesk-net:
external: false
services:
rustdesk-server:
container_name: rustdesk-server
ports:
- 21115:21115
- 21116:21116
- 21116:21116/udp
- 21117:21117
- 21118:21118
- 21119:21119
image: rustdesk/rustdesk-server-s6:latest
environment:
- RELAY=192.168.1.66:21117
- ENCRYPTED_ONLY=1
- KEY=<key> #自定义KEY
volumes:
- ./data:/data
- ./hbbr/run:/etc/s6-overlay/s6-rc.d/hbbr/run
- ./hbbs/run:/etc/s6-overlay/s6-rc.d/hbbs/run
restart: unless-stopped
rustdesk-api:
container_name: rustdesk-api
ports:
- 21114:21114
image: lejianwen/rustdesk-api
environment:
- TZ=Asia/Shanghai
- RUSTDESK_API_RUSTDESK_ID_SERVER=192.168.1.66:21116
- RUSTDESK_API_RUSTDESK_RELAY_SERVER=192.168.1.66:21117
- RUSTDESK_API_RUSTDESK_API_SERVER=http://192.168.1.66:21114
- RUSTDESK_API_RUSTDESK_KEY=<key>
volumes:
- /data/rustdesk/api:/app/data #将数据库挂载
networks:
- rustdesk-net
restart: unless-stopped
```
- 如果使用***系统生成的KEY***或者***自定义KEY_PUB,KEY_PRIV***不需要修改启动脚本但要在生成KEY后获取到KEY再`docker-compose up -d`
```yaml
networks:
rustdesk-net:
external: false
services:
rustdesk-server:
container_name: rustdesk-server
ports:
- 21115:21115
- 21116:21116
- 21116:21116/udp
- 21117:21117
- 21118:21118
- 21119:21119
image: rustdesk/rustdesk-server-s6:latest
environment:
- RELAY=192.168.1.66:21117
- ENCRYPTED_ONLY=1
volumes:
- ./data:/data
restart: unless-stopped
rustdesk-api:
container_name: rustdesk-api
ports:
- 21114:21114
image: lejianwen/rustdesk-api
environment:
- TZ=Asia/Shanghai
- RUSTDESK_API_RUSTDESK_ID_SERVER=192.168.1.66:21116
- RUSTDESK_API_RUSTDESK_RELAY_SERVER=192.168.1.66:21117
- RUSTDESK_API_RUSTDESK_API_SERVER=http://192.168.1.66:21114
- RUSTDESK_API_RUSTDESK_KEY=<key> #系统生成的KEY
volumes:
- /data/rustdesk/api:/app/data #将数据库挂载
networks:
- rustdesk-net
restart: unless-stopped
```
#### 下载release直接运行
[下载地址](https://github.com/lejianwen/rustdesk-api/releases)
@@ -488,21 +307,7 @@ proxy:
6. 打开浏览器访问`http://<your server[:port]>/_admin/`,默认用户名密码为`admin`,请及时更改密码。
#### nginx反代
在`nginx`中配置反代
```
server {
listen <your port>;
server_name <your server>;
location / {
proxy_pass http://<api-server[:port]>;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
```
## 其他
- [修改客户端ID](https://github.com/abdullah-erturk/RustDesk-ID-Changer)

View File

@@ -267,189 +267,7 @@ The prefix for variable names is `RUSTDESK_API`. If environment variables exist,
lejianwen/rustdesk-api
```
2. Using `docker-compose`
- Simple example:
```yaml
services:
rustdesk-api:
container_name: rustdesk-api
environment:
- RUSTDESK_API_LANG=en
- RUSTDESK_API_RUSTDESK_ID_SERVER=192.168.1.66:21116
- RUSTDESK_API_RUSTDESK_RELAY_SERVER=192.168.1.66:21117
- RUSTDESK_API_RUSTDESK_API_SERVER=http://192.168.1.66:21114
- RUSTDESK_API_RUSTDESK_KEY=<key>
ports:
- 21114:21114
image: lejianwen/rustdesk-api
volumes:
- /data/rustdesk/api:/app/data # Mount the database for easy backup
networks:
- rustdesk-net
restart: unless-stopped
```
- Example with RustDesk's official Docker Compose file, adding your `rustdesk-api` service:
- If you are using a system-generated KEY, remove the `-k <key>` parameter. However, after the first startup, run `docker-compose logs hbbs` or `cat ./data/id_ed25519.pub` to view the KEY, then modify `RUSTDESK_API_RUSTDESK_KEY=<key>` and execute `docker-compose up -d` again.
```yaml
networks:
rustdesk-net:
external: false
services:
hbbs:
container_name: hbbs
ports:
- 21115:21115
- 21116:21116 # 自定义 hbbs 映射端口
- 21116:21116/udp # 自定义 hbbs 映射端口
- 21118:21118 # web client
image: rustdesk/rustdesk-server
command: hbbs -r <relay-server-ip[:port]> -k <key> # 填入个人域名或 IP + hbbr 暴露端口
volumes:
- ./data:/root # 自定义挂载目录
networks:
- rustdesk-net
depends_on:
- hbbr
restart: unless-stopped
deploy:
resources:
limits:
memory: 64M
hbbr:
container_name: hbbr
ports:
- 21117:21117 # 自定义 hbbr 映射端口
- 21119:21119 # web client
image: rustdesk/rustdesk-server
command: hbbr -k <key>
volumes:
- ./data:/root
networks:
- rustdesk-net
restart: unless-stopped
deploy:
resources:
limits:
memory: 64M
rustdesk-api:
container_name: rustdesk-api
environment:
- TZ=Asia/Shanghai
- RUSTDESK_API_RUSTDESK_ID_SERVER=192.168.1.66:21116
- RUSTDESK_API_RUSTDESK_RELAY_SERVER=192.168.1.66:21117
- RUSTDESK_API_RUSTDESK_API_SERVER=http://192.168.1.66:21114
- RUSTDESK_API_RUSTDESK_KEY=<key>
ports:
- 21114:21114
image: lejianwen/rustdesk-api
volumes:
- /data/rustdesk/api:/app/data #将数据库挂载出来方便备份
networks:
- rustdesk-net
restart: unless-stopped
```
- S6 image
- - If using ***custom KEY***, you will need to modify the startup script to override the `/etc/s6-overlay/s6-rc.d/hbbr/run` and `/etc/s6-overlay/s6-rc.d/hbbr/run` in the image.
1. Create `hbbr/run`, only needed for custom KEY
```bash
#!/command/with-contenv sh
cd /data
PARAMS=
[ "${ENCRYPTED_ONLY}" = "1" ] && PARAMS="-k ${KEY}"
/usr/bin/hbbr $PARAMS
```
2. Create `hbbs/run`, only needed for custom KEY
```bash
#!/command/with-contenv sh
sleep 2
cd /data
PARAMS=
[ "${ENCRYPTED_ONLY}" = "1" ] && PARAMS="-k ${KEY}"
/usr/bin/hbbs -r $RELAY $PARAMS
```
3. Modify the `s6` section in `docker-compose.yml`
```yaml
networks:
rustdesk-net:
external: false
services:
rustdesk-server:
container_name: rustdesk-server
ports:
- 21115:21115
- 21116:21116
- 21116:21116/udp
- 21117:21117
- 21118:21118
- 21119:21119
image: rustdesk/rustdesk-server-s6:latest
environment:
- RELAY=192.168.1.66:21117
- ENCRYPTED_ONLY=1
- KEY=<key> #KEY
volumes:
- ./data:/data
- ./hbbr/run:/etc/s6-overlay/s6-rc.d/hbbr/run
- ./hbbs/run:/etc/s6-overlay/s6-rc.d/hbbs/run
restart: unless-stopped
rustdesk-api:
container_name: rustdesk-api
ports:
- 21114:21114
image: lejianwen/rustdesk-api
environment:
- TZ=Asia/Shanghai
- RUSTDESK_API_RUSTDESK_ID_SERVER=192.168.1.66:21116
- RUSTDESK_API_RUSTDESK_RELAY_SERVER=192.168.1.66:21117
- RUSTDESK_API_RUSTDESK_API_SERVER=http://192.168.1.66:21114
- RUSTDESK_API_RUSTDESK_KEY=<key>
volumes:
- /data/rustdesk/api:/app/data
networks:
- rustdesk-net
restart: unless-stopped
```
- If using ***system-generated KEY*** or ***custom KEY_PUB, KEY_PRIV***, you do not need to modify the startup script, but you need to obtain the KEY after it is generated and then run `docker-compose up -d`
```yaml
networks:
rustdesk-net:
external: false
services:
rustdesk-server:
container_name: rustdesk-server
ports:
- 21115:21115
- 21116:21116
- 21116:21116/udp
- 21117:21117
- 21118:21118
- 21119:21119
image: rustdesk/rustdesk-server-s6:latest
environment:
- RELAY=192.168.1.66:21117
- ENCRYPTED_ONLY=1
volumes:
- ./data:/data
restart: unless-stopped
rustdesk-api:
container_name: rustdesk-api
ports:
- 21114:21114
image: lejianwen/rustdesk-api
environment:
- TZ=Asia/Shanghai
- RUSTDESK_API_RUSTDESK_ID_SERVER=192.168.1.66:21116
- RUSTDESK_API_RUSTDESK_RELAY_SERVER=192.168.1.66:21117
- RUSTDESK_API_RUSTDESK_API_SERVER=http://192.168.1.66:21114
- RUSTDESK_API_RUSTDESK_KEY=<key>
volumes:
- /data/rustdesk/api:/app/data
networks:
- rustdesk-net
restart: unless-stopped
```
2. Using `docker-compose`,look [wiki](https://github.com/lejianwen/rustdesk-api/wiki)
#### Running from Release
@@ -498,21 +316,7 @@ Download the release from [release](https://github.com/lejianwen/rustdesk-api/re
6. Open your browser and visit `http://<your server[:port]>/_admin/`, with default credentials `admin admin`. Please
change the password promptly.
#### nginx reverse proxy
Configure reverse proxy in `nginx`
```
server {
listen <your port>;
server_name <your server>;
location / {
proxy_pass http://<api-server[:port]>;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
```
## Others
- [Change client ID](https://github.com/abdullah-erturk/RustDesk-ID-Changer)

File diff suppressed because it is too large Load Diff

View File

@@ -25617,9 +25617,9 @@ If you want to access a device on a public server, please input "<id>@public", t
Original: "\u041E\u0440\u0438\u0433\u0456\u043D\u0430\u043B",
Shrink: "\u0417\u043C\u0435\u043D\u0448\u0438\u0442\u0438",
Stretch: "\u0420\u043E\u0437\u0442\u044F\u0433\u043D\u0443\u0442\u0438",
Scrollbar: "\u0421\u043C\u0443\u0433\u0430 \u043F\u0440\u043E\u043A\u0440\u0443\u0442\u043A\u0438",
ScrollAuto: "\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u043D\u0430 \u043F\u0440\u043E\u043A\u0440\u0443\u0442\u043A\u0430",
"Good image quality": "\u0425\u043E\u0440\u043E\u0448\u0430 \u044F\u043A\u0456\u0441\u0442\u044C \u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u043D\u044F",
Scrollbar: "\u0421\u043C\u0443\u0436\u043A\u0430 \u0433\u043E\u0440\u0442\u0430\u043D\u043D\u044F",
ScrollAuto: "\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u043D\u0435 \u0433\u043E\u0440\u0442\u0430\u043D\u043D\u044F",
"Good image quality": "\u0413\u0430\u0440\u043D\u0430 \u044F\u043A\u0456\u0441\u0442\u044C \u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u043D\u044F",
Balanced: "\u0417\u0431\u0430\u043B\u0430\u043D\u0441\u043E\u0432\u0430\u043D\u0430",
"Optimize reaction time": "\u041E\u043F\u0442\u0438\u043C\u0456\u0437\u0443\u0432\u0430\u0442\u0438 \u0447\u0430\u0441 \u0440\u0435\u0430\u043A\u0446\u0456\u0457",
Custom: "\u041A\u043E\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0446\u044C\u043A\u0430",
@@ -25696,10 +25696,10 @@ If you want to access a device on a public server, please input "<id>@public", t
"Please enter the folder name": "\u0411\u0443\u0434\u044C \u043B\u0430\u0441\u043A\u0430, \u0432\u0432\u0435\u0434\u0456\u0442\u044C \u043D\u0430\u0437\u0432\u0443 \u0434\u043B\u044F \u0442\u0435\u043A\u0438",
"Fix it": "\u0412\u0438\u043F\u0440\u0430\u0432\u0438\u0442\u0438",
Warning: "\u041F\u043E\u043F\u0435\u0440\u0435\u0434\u0436\u0435\u043D\u043D\u044F",
"Login screen using Wayland is not supported": "\u0412\u0445\u0456\u0434 \u0432 \u0441\u0438\u0441\u0442\u0435\u043C\u0443 \u0437 \u0432\u0438\u043A\u043E\u0440\u0438\u0441\u0442\u0430\u043D\u043D\u044F\u043C Wayland \u043D\u0435 \u043F\u0456\u0434\u0442\u0440\u0438\u043C\u0443\u0454\u0442\u044C\u0441\u044F",
"Login screen using Wayland is not supported": "\u0415\u043A\u0440\u0430\u043D \u0432\u0445\u043E\u0434\u0443, \u044F\u043A\u0438\u0439 \u0432\u0438\u043A\u043E\u0440\u0438\u0441\u0442\u043E\u0432\u0443\u0454 Wayland, \u043D\u0435 \u043F\u0456\u0434\u0442\u0440\u0438\u043C\u0443\u0454\u0442\u044C\u0441\u044F",
"Reboot required": "\u041F\u043E\u0442\u0440\u0456\u0431\u043D\u0435 \u043F\u0435\u0440\u0435\u0437\u0430\u0432\u0430\u043D\u0442\u0430\u0436\u0435\u043D\u043D\u044F",
"Unsupported display server": "\u0413\u0440\u0430\u0444\u0456\u0447\u043D\u0438\u0439 \u0441\u0435\u0440\u0432\u0435\u0440 \u043D\u0435 \u043F\u0456\u0434\u0442\u0440\u0438\u043C\u0443\u0454\u0442\u044C\u0441\u044F",
"x11 expected": "\u041E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F X11",
"x11 expected": "\u041F\u043E\u0442\u0440\u0456\u0431\u0435\u043D X11",
Port: "\u041F\u043E\u0440\u0442",
Settings: "\u041D\u0430\u043B\u0430\u0448\u0442\u0443\u0432\u0430\u043D\u043D\u044F",
Username: "\u0406\u043C\u02BC\u044F \u043A\u043E\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0447\u0430",
@@ -25717,21 +25717,21 @@ If you want to access a device on a public server, please input "<id>@public", t
"Verification code": "\u041A\u043E\u0434 \u043F\u0456\u0434\u0442\u0432\u0435\u0440\u0434\u0436\u0435\u043D\u043D\u044F",
verification_tip: "\u041A\u043E\u0434 \u043F\u0456\u0434\u0442\u0432\u0435\u0440\u0434\u0436\u0435\u043D\u043D\u044F \u043D\u0430\u0434\u0456\u0441\u043B\u0430\u043D\u043E \u043D\u0430 \u0437\u0430\u0440\u0435\u0454\u0441\u0442\u0440\u043E\u0432\u0430\u043D\u0443 email-\u0430\u0434\u0440\u0435\u0441\u0443, \u0432\u0432\u0435\u0434\u0456\u0442\u044C \u043A\u043E\u0434 \u043F\u0456\u0434\u0442\u0432\u0435\u0440\u0434\u0436\u0435\u043D\u043D\u044F \u0434\u043B\u044F \u043F\u0440\u043E\u0434\u043E\u0432\u0436\u0435\u043D\u043D\u044F \u0430\u0432\u0442\u043E\u0440\u0438\u0437\u0430\u0446\u0456\u0457.",
Logout: "\u0412\u0438\u0439\u0442\u0438",
Tags: "\u0422\u0435\u0433\u0438",
Tags: "\u041C\u0456\u0442\u043A\u0438",
"Search ID": "\u041F\u043E\u0448\u0443\u043A \u0437\u0430 ID",
whitelist_sep: "\u0412\u0456\u0434\u043E\u043A\u0440\u0435\u043C\u043B\u0435\u043D\u043D\u044F \u043A\u043E\u043C\u043E\u044E, \u043A\u0440\u0430\u043F\u043A\u043E\u044E \u0437 \u043A\u043E\u043C\u043E\u044E, \u043F\u0440\u043E\u043F\u0443\u0441\u043A\u043E\u043C \u0430\u0431\u043E \u043D\u043E\u0432\u0438\u043C \u0440\u044F\u0434\u043A\u043E\u043C",
"Add ID": "\u0414\u043E\u0434\u0430\u0442\u0438 ID",
"Add Tag": "\u0414\u043E\u0434\u0430\u0442\u0438 \u043A\u043B\u044E\u0447\u043E\u0432\u0435 \u0441\u043B\u043E\u0432\u043E",
"Unselect all tags": "\u0421\u043A\u0430\u0441\u0443\u0432\u0430\u0442\u0438 \u0432\u0438\u0431\u0456\u0440 \u0443\u0441\u0456\u0445 \u0442\u0435\u0433\u0456\u0432",
"Add Tag": "\u0414\u043E\u0434\u0430\u0442\u0438 \u043C\u0456\u0442\u043A\u0443",
"Unselect all tags": "\u0421\u043A\u0430\u0441\u0443\u0432\u0430\u0442\u0438 \u0432\u0438\u0431\u0456\u0440 \u0443\u0441\u0456\u0445 \u043C\u0456\u0442\u043E\u043A",
"Network error": "\u041F\u043E\u043C\u0438\u043B\u043A\u0430 \u043C\u0435\u0440\u0435\u0436\u0456",
"Username missed": "\u0406\u043C\u02BC\u044F \u043A\u043E\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0447\u0430 \u0432\u0456\u0434\u0441\u0443\u0442\u043D\u0454",
"Password missed": "\u041F\u0430\u0440\u043E\u043B\u044C \u0432\u0456\u0434\u0441\u0443\u0442\u043D\u0456\u0439",
"Wrong credentials": "\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0456 \u0434\u0430\u043D\u0456",
"The verification code is incorrect or has expired": "\u041A\u043E\u0434 \u043F\u0456\u0434\u0442\u0432\u0435\u0440\u0434\u0436\u0435\u043D\u043D\u044F \u043D\u0435\u043A\u043E\u0440\u0435\u043A\u0442\u043D\u0438\u0439 \u0430\u0431\u043E \u043F\u0440\u043E\u0442\u0435\u0440\u043C\u0456\u043D\u043E\u0432\u0430\u043D\u0438\u0439",
"Edit Tag": "\u0420\u0435\u0434\u0430\u0433\u0443\u0432\u0430\u0442\u0438 \u0442\u0435\u0433",
"Edit Tag": "\u0420\u0435\u0434\u0430\u0433\u0443\u0432\u0430\u0442\u0438 \u043C\u0456\u0442\u043A\u0443",
"Forget Password": "\u041D\u0435 \u0437\u0431\u0435\u0440\u0456\u0433\u0430\u0442\u0438 \u043F\u0430\u0440\u043E\u043B\u044C",
Favorites: "\u0412\u0438\u0431\u0440\u0430\u043D\u0435",
"Add to Favorites": "\u0414\u043E\u0434\u0430\u0442\u0438 \u0432 \u043E\u0431\u0440\u0430\u043D\u0435",
"Add to Favorites": "\u0414\u043E\u0434\u0430\u0442\u0438 \u0434\u043E \u043E\u0431\u0440\u0430\u043D\u043E\u0433\u043E",
"Remove from Favorites": "\u0412\u0438\u0434\u0430\u043B\u0438\u0442\u0438 \u0437 \u043E\u0431\u0440\u0430\u043D\u043E\u0433\u043E",
Empty: "\u041F\u0443\u0441\u0442\u043E",
"Invalid folder name": "\u041D\u0435\u043F\u0440\u0438\u043F\u0443\u0441\u0442\u0438\u043C\u0430 \u043D\u0430\u0437\u0432\u0430 \u0442\u0435\u043A\u0438",
@@ -25743,7 +25743,7 @@ If you want to access a device on a public server, please input "<id>@public", t
Paste: "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438",
"Paste here?": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438 \u0441\u044E\u0434\u0438?",
"Are you sure to close the connection?": "\u0412\u0438 \u0432\u043F\u0435\u0432\u043D\u0435\u043D\u0456, \u0449\u043E \u0445\u043E\u0447\u0435\u0442\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u0442\u0438 \u043F\u0456\u0434\u043A\u043B\u044E\u0447\u0435\u043D\u043D\u044F?",
"Download new version": "\u041E\u0442\u0440\u0438\u043C\u0430\u0439\u0442\u0435 \u043D\u043E\u0432\u0443 \u0432\u0435\u0440\u0441\u0456\u044E",
"Download new version": "\u0417\u0430\u0432\u0430\u043D\u0442\u0430\u0436\u0438\u0442\u0438 \u043D\u043E\u0432\u0443 \u0432\u0435\u0440\u0441\u0456\u044E",
"Touch mode": "\u0421\u0435\u043D\u0441\u043E\u0440\u043D\u0438\u0439 \u0440\u0435\u0436\u0438\u043C",
"Mouse mode": "\u0420\u0435\u0436\u0438\u043C \u043C\u0438\u0448\u0456",
"One-Finger Tap": "\u0414\u043E\u0442\u0438\u043A \u043E\u0434\u043D\u0438\u043C \u043F\u0430\u043B\u044C\u0446\u0435\u043C",
@@ -25776,7 +25776,7 @@ If you want to access a device on a public server, please input "<id>@public", t
"Screen Connection": "\u041F\u0456\u0434\u043A\u043B\u044E\u0447\u0435\u043D\u043D\u044F \u0435\u043A\u0440\u0430\u043D\u0430",
"Do you accept?": "\u0412\u0438 \u0437\u0433\u043E\u0434\u043D\u0456?",
"Open System Setting": "\u0412\u0456\u0434\u043A\u0440\u0438\u0442\u0438 \u043D\u0430\u043B\u0430\u0448\u0442\u0443\u0432\u0430\u043D\u043D\u044F \u0441\u0438\u0441\u0442\u0435\u043C\u0438",
"How to get Android input permission?": "\u042F\u043A \u043E\u0442\u0440\u0438\u043C\u0430\u0442\u0438 \u0434\u043E\u0437\u0432\u0456\u043B \u043D\u0430 \u0432\u0432\u0435\u0434\u0435\u043D\u043D\u044F Android?",
"How to get Android input permission?": "\u042F\u043A \u043E\u0442\u0440\u0438\u043C\u0430\u0442\u0438 \u0434\u043E\u0437\u0432\u0456\u043B \u043D\u0430 \u0432\u0432\u0435\u0434\u0435\u043D\u043D\u044F \u0432 Android?",
android_input_permission_tip1: '\u0414\u043B\u044F \u0442\u043E\u0433\u043E, \u0449\u043E\u0431 \u0432\u0456\u0434\u0434\u0430\u043B\u0435\u043D\u0438\u0439 \u043F\u0440\u0438\u0441\u0442\u0440\u0456\u0439 \u043C\u0456\u0433 \u043A\u0435\u0440\u0443\u0432\u0430\u0442\u0438 \u0432\u0430\u0448\u0438\u043C Android-\u043F\u0440\u0438\u0441\u0442\u0440\u043E\u0454\u043C \u0437\u0430 \u0434\u043E\u043F\u043E\u043C\u043E\u0433\u043E\u044E \u043C\u0438\u0448\u0456 \u0430\u0431\u043E \u0434\u043E\u0442\u0438\u043A\u0443, \u0432\u0430\u043C \u043D\u0435\u043E\u0431\u0445\u0456\u0434\u043D\u043E \u0434\u043E\u0437\u0432\u043E\u043B\u0438\u0442\u0438 RustDesk \u0432\u0438\u043A\u043E\u0440\u0438\u0441\u0442\u043E\u0432\u0443\u0432\u0430\u0442\u0438 \u0441\u043B\u0443\u0436\u0431\u0443 "\u0421\u043F\u0435\u0446\u0456\u0430\u043B\u044C\u043D\u0456 \u043C\u043E\u0436\u043B\u0438\u0432\u043E\u0441\u0442\u0456".',
android_input_permission_tip2: "\u0411\u0443\u0434\u044C \u043B\u0430\u0441\u043A\u0430, \u043F\u0435\u0440\u0435\u0439\u0434\u0456\u0442\u044C \u043D\u0430 \u043D\u0430\u0441\u0442\u0443\u043F\u043D\u0443 \u0441\u0442\u043E\u0440\u0456\u043D\u043A\u0443 \u0441\u0438\u0441\u0442\u0435\u043C\u043D\u0438\u0445 \u043D\u0430\u043B\u0430\u0448\u0442\u0443\u0432\u0430\u043D\u044C, \u0437\u043D\u0430\u0439\u0434\u0456\u0442\u044C \u0442\u0430 \u0443\u0432\u0456\u0439\u0434\u0456\u0442\u044C \u0443 [\u0412\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D\u0456 \u0441\u043B\u0443\u0436\u0431\u0438], \u0443\u0432\u0456\u043C\u043A\u043D\u0456\u0442\u044C \u0441\u043B\u0443\u0436\u0431\u0443 [RustDesk Input].",
android_new_connection_tip: "\u041E\u0442\u0440\u0438\u043C\u0430\u043D\u043E \u043D\u043E\u0432\u0438\u0439 \u0437\u0430\u043F\u0438\u0442 \u043D\u0430 \u043A\u0435\u0440\u0443\u0432\u0430\u043D\u043D\u044F \u0432\u0430\u0448\u0438\u043C \u043F\u043E\u0442\u043E\u0447\u043D\u0438\u043C \u043F\u0440\u0438\u0441\u0442\u0440\u043E\u0454\u043C.",
@@ -25826,15 +25826,15 @@ If you want to access a device on a public server, please input "<id>@public", t
"Display Settings": "\u041D\u0430\u043B\u0430\u0448\u0442\u0443\u0432\u0430\u043D\u043D\u044F \u0434\u0438\u0441\u043F\u043B\u0435\u044E",
Ratio: "\u0421\u043F\u0456\u0432\u0432\u0456\u0434\u043D\u043E\u0448\u0435\u043D\u043D\u044F",
"Image Quality": "\u042F\u043A\u0456\u0441\u0442\u044C \u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u043D\u044F",
"Scroll Style": "\u0421\u0442\u0438\u043B\u044C \u043F\u0440\u043E\u043A\u0440\u0443\u0442\u043A\u0438",
"Scroll Style": "\u0421\u0442\u0438\u043B\u044C \u0433\u043E\u0440\u0442\u0430\u043D\u043D\u044F",
"Show Toolbar": "\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u0438 \u043F\u0430\u043D\u0435\u043B\u044C \u0456\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u0456\u0432",
"Hide Toolbar": "\u041F\u0440\u0438\u0445\u043E\u0432\u0430\u0442\u0438 \u043F\u0430\u043D\u0435\u043B\u044C \u0456\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u0456\u0432",
"Direct Connection": "\u041F\u0440\u044F\u043C\u0435 \u043F\u0456\u0434\u043A\u043B\u044E\u0447\u0435\u043D\u043D\u044F",
"Relay Connection": "\u0420\u0435\u0442\u0440\u0430\u043D\u0441\u043B\u044C\u043E\u0432\u0430\u043D\u0435 \u043F\u0456\u0434\u043A\u043B\u044E\u0447\u0435\u043D\u043D\u044F",
"Secure Connection": "\u0411\u0435\u0437\u043F\u0435\u0447\u043D\u0435 \u043F\u0456\u0434\u043A\u043B\u044E\u0447\u0435\u043D\u043D\u044F",
"Insecure Connection": "\u041D\u0435\u0431\u0435\u0437\u043F\u0435\u0447\u043D\u0435 \u043F\u0456\u0434\u043A\u043B\u044E\u0447\u0435\u043D\u043D\u044F",
"Scale original": "\u041E\u0440\u0438\u0433\u0456\u043D\u0430\u043B \u043C\u0430\u0441\u0448\u0442\u0430\u0431\u0443",
"Scale adaptive": "\u041C\u0430\u0441\u0448\u0442\u0430\u0431 \u0430\u0434\u0430\u043F\u0442\u0438\u0432\u043D\u0438\u0439",
"Scale original": "\u041E\u0440\u0438\u0433\u0456\u043D\u0430\u043B\u044C\u043D\u0438\u0439 \u043C\u0430\u0441\u0448\u0442\u0430\u0431",
"Scale adaptive": "\u0410\u0434\u0430\u043F\u0442\u0438\u0432\u043D\u0438\u0439 \u043C\u0430\u0441\u0448\u0442\u0430\u0431",
General: "\u0417\u0430\u0433\u0430\u043B\u044C\u043D\u0456",
Security: "\u0411\u0435\u0437\u043F\u0435\u043A\u0430",
Theme: "\u0422\u0435\u043C\u0430",
@@ -25899,7 +25899,7 @@ If you want to access a device on a public server, please input "<id>@public", t
"Hide connection management window": "\u041F\u0440\u0438\u0445\u043E\u0432\u0430\u0442\u0438 \u0432\u0456\u043A\u043D\u043E \u043A\u0435\u0440\u0443\u0432\u0430\u043D\u043D\u044F \u043F\u0456\u0434\u043A\u043B\u044E\u0447\u0435\u043D\u043D\u044F\u043C\u0438",
hide_cm_tip: "\u0414\u043E\u0437\u0432\u043E\u043B\u0435\u043D\u043E \u043F\u0440\u0438\u0445\u043E\u0432\u0430\u0442\u0438 \u043B\u0438\u0448\u0435 \u044F\u043A\u0449\u043E \u0441\u0435\u0430\u043D\u0441 \u043F\u0456\u0434\u0442\u0432\u0435\u0440\u0434\u0436\u0443\u0454\u0442\u044C\u0441\u044F \u043F\u043E\u0441\u0442\u0456\u0439\u043D\u0438\u043C \u043F\u0430\u0440\u043E\u043B\u0435\u043C",
wayland_experiment_tip: "\u041F\u0456\u0434\u0442\u0440\u0438\u043C\u043A\u0430 Wayland \u043D\u0430 \u0435\u043A\u0441\u043F\u0435\u0440\u0438\u043C\u0435\u043D\u0442\u0430\u043B\u044C\u043D\u0456\u0439 \u0441\u0442\u0430\u0434\u0456\u0457, \u0431\u0443\u0434\u044C \u043B\u0430\u0441\u043A\u0430, \u0432\u0438\u043A\u043E\u0440\u0438\u0441\u0442\u043E\u0432\u0443\u0439\u0442\u0435 X11, \u044F\u043A\u0449\u043E \u043D\u0435\u043E\u0431\u0445\u0456\u0434\u043D\u0438\u0439 \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u043D\u0438\u0439 \u0434\u043E\u0441\u0442\u0443\u043F.",
"Right click to select tabs": "\u041F\u0440\u0430\u0432\u0438\u0439 \u043A\u043B\u0456\u043A \u0434\u043B\u044F \u0432\u0438\u0431\u043E\u0440\u0443 \u0432\u043A\u043B\u0430\u0434\u043A\u0438",
"Right click to select tabs": "\u0412\u0438\u0431\u0456\u0440 \u0432\u043A\u043B\u0430\u0434\u043E\u043A \u043A\u043B\u0430\u0446\u0430\u043D\u043D\u044F\u043C \u043F\u0440\u0430\u0432\u043E\u044E",
Skipped: "\u041F\u0440\u043E\u043F\u0443\u0449\u0435\u043D\u043E",
"Add to address book": "\u0414\u043E\u0434\u0430\u0442\u0438 IP \u0434\u043E \u0410\u0434\u0440\u0435\u0441\u043D\u043E\u0457 \u043A\u043D\u0438\u0433\u0438",
Group: "\u0413\u0440\u0443\u043F\u0430",
@@ -26013,7 +26013,7 @@ If you want to access a device on a public server, please input "<id>@public", t
Stop: "\u0417\u0443\u043F\u0438\u043D\u0438\u0442\u0438",
exceed_max_devices: "\u0423 \u0432\u0430\u0441 \u043C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u0430 \u043A\u0456\u043B\u044C\u043A\u0456\u0441\u0442\u044C \u043A\u0435\u0440\u043E\u0432\u0430\u043D\u0438\u0445 \u043F\u0440\u0438\u0441\u0442\u0440\u043E\u0457\u0432.",
"Sync with recent sessions": "\u0421\u0438\u043D\u0445\u0440\u043E\u043D\u0456\u0437\u0430\u0446\u0456\u044F \u0437 \u043D\u0435\u0449\u043E\u0434\u0430\u0432\u043D\u0456\u043C\u0438 \u0441\u0435\u0430\u043D\u0441\u0430\u043C\u0438",
"Sort tags": "\u0421\u043E\u0440\u0442\u0443\u0432\u0430\u0442\u0438 \u0442\u0435\u0433\u0438",
"Sort tags": "\u0421\u043E\u0440\u0442\u0443\u0432\u0430\u0442\u0438 \u043C\u0456\u0442\u043A\u0438",
"Open connection in new tab": "\u0412\u0456\u0434\u043A\u0440\u0438\u0442\u0438 \u043F\u0456\u0434\u043A\u043B\u044E\u0447\u0435\u043D\u043D\u044F \u0432 \u043D\u043E\u0432\u0456\u0439 \u0432\u043A\u043B\u0430\u0434\u0446\u0456",
"Move tab to new window": "\u041F\u0435\u0440\u0435\u043C\u0456\u0441\u0442\u0438\u0442\u0438 \u0432\u043A\u043B\u0430\u0434\u043A\u0443 \u0434\u043E \u043D\u043E\u0432\u043E\u0433\u043E \u0432\u0456\u043A\u043D\u0430",
"Can not be empty": "\u041D\u0435 \u043C\u043E\u0436\u0435 \u0431\u0443\u0442\u0438 \u043F\u043E\u0440\u043E\u0436\u043D\u0456\u043C",
@@ -26024,7 +26024,7 @@ If you want to access a device on a public server, please input "<id>@public", t
"Grid View": "\u041F\u0435\u0440\u0435\u0433\u043B\u044F\u0434 \u0491\u0440\u0430\u0442\u043A\u043E\u044E",
"List View": "\u041F\u0435\u0440\u0435\u0433\u043B\u044F\u0434 \u0441\u043F\u0438\u0441\u043A\u043E\u043C",
Select: "\u0412\u0438\u0431\u0440\u0430\u0442\u0438",
"Toggle Tags": "\u0412\u0438\u0434\u0438\u043C\u0456\u0441\u0442\u044C \u0442\u0435\u0433\u0456\u0432",
"Toggle Tags": "\u0412\u0438\u0434\u0438\u043C\u0456\u0441\u0442\u044C \u043C\u0456\u0442\u043E\u043A",
pull_ab_failed_tip: "\u041D\u0435 \u0432\u0434\u0430\u043B\u043E\u0441\u044F \u043E\u043D\u043E\u0432\u0438\u0442\u0438 \u0430\u0434\u0440\u0435\u0441\u043D\u0443 \u043A\u043D\u0438\u0433\u0443",
push_ab_failed_tip: "\u041D\u0435 \u0432\u0434\u0430\u043B\u043E\u0441\u044F \u0441\u0438\u043D\u0445\u0440\u043E\u043D\u0456\u0437\u0443\u0432\u0430\u0442\u0438 \u0430\u0434\u0440\u0435\u0441\u043D\u0443 \u043A\u043D\u0438\u0433\u0443",
synced_peer_readded_tip: "\u041F\u0440\u0438\u0441\u0442\u0440\u043E\u0457 \u0437 \u043D\u0435\u0449\u043E\u0434\u0430\u0432\u043D\u0456\u0445 \u0441\u0435\u0430\u043D\u0441\u0456\u0432 \u0431\u0443\u0434\u0443\u0442\u044C \u0441\u0438\u043D\u0445\u0440\u043E\u043D\u0456\u0437\u043E\u0432\u0430\u043D\u0456 \u0437 \u0430\u0434\u0440\u0435\u0441\u043D\u043E\u044E \u043A\u043D\u0438\u0433\u043E\u044E.",
@@ -26033,7 +26033,7 @@ If you want to access a device on a public server, please input "<id>@public", t
"HSV Color": "\u041A\u043E\u043B\u0456\u0440 HSV",
"Installation Successful!": "\u0423\u0441\u043F\u0456\u0448\u043D\u0435 \u0432\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D\u043D\u044F!",
"Installation failed!": "\u041D\u0435\u0432\u0434\u0430\u043B\u0435 \u0432\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D\u043D\u044F!",
"Reverse mouse wheel": "\u0417\u0432\u043E\u0440\u043E\u0442\u043D\u0456\u0439 \u043D\u0430\u043F\u0440\u044F\u043C \u043F\u0440\u043E\u043A\u0440\u0443\u0442\u043A\u0438",
"Reverse mouse wheel": "\u0417\u0432\u043E\u0440\u043E\u0442\u043D\u0456\u0439 \u043D\u0430\u043F\u0440\u044F\u043C \u0433\u043E\u0440\u0442\u0430\u043D\u043D\u044F",
"{} sessions": "{} \u0441\u0435\u0430\u043D\u0441\u0456\u0432",
scam_title: "\u0412\u0430\u0441 \u043C\u043E\u0436\u0443\u0442\u044C \u041E\u0411\u041C\u0410\u041D\u0423\u0422\u0418!",
scam_text1: "\u042F\u043A\u0449\u043E \u0432\u0438 \u0440\u043E\u0437\u043C\u043E\u0432\u043B\u044F\u0454\u0442\u0435 \u043F\u043E \u0442\u0435\u043B\u0435\u0444\u043E\u043D\u0443 \u0437 \u043A\u0438\u043C\u043E\u0441\u044C, \u043A\u043E\u0433\u043E \u041D\u0415 \u0417\u041D\u0410\u0404\u0422\u0415 \u0447\u0438 \u043A\u043E\u043C\u0443 \u041D\u0415 \u0414\u041E\u0412\u0406\u0420\u042F\u0404\u0422\u0415, \u0456 \u0446\u044F \u043E\u0441\u043E\u0431\u0430 \u0445\u043E\u0447\u0435, \u0449\u043E\u0431 \u0432\u0438 \u0432\u0438\u043A\u043E\u0440\u0438\u0441\u0442\u0430\u043B\u0438 RustDesk \u0442\u0430 \u0437\u0430\u043F\u0443\u0441\u0442\u0438\u043B\u0438 \u0441\u043B\u0443\u0436\u0431\u0443, \u043D\u0435 \u0440\u043E\u0431\u0456\u0442\u044C \u0446\u044C\u043E\u0433\u043E \u0442\u0430 \u043D\u0435\u0433\u0430\u0439\u043D\u043E \u0437\u0430\u0432\u0435\u0440\u0448\u0456\u0442\u044C \u0434\u0437\u0432\u0456\u043D\u043E\u043A.",
@@ -26166,7 +26166,7 @@ If you want to access a device on a public server, please input "<id>@public", t
"Upload files": "\u041D\u0430\u0434\u0456\u0441\u043B\u0430\u0442\u0438 \u0444\u0430\u0439\u043B\u0438",
"Clipboard is synchronized": "\u0411\u0443\u0444\u0435\u0440 \u043E\u0431\u043C\u0456\u043D\u0443 \u0441\u0438\u043D\u0445\u0440\u043E\u043D\u0456\u0437\u043E\u0432\u0430\u043D\u043E",
"Update client clipboard": "\u041E\u043D\u043E\u0432\u0438\u0442\u0438 \u0431\u0443\u0444\u0435\u0440 \u043E\u0431\u043C\u0456\u043D\u0443 \u043A\u043B\u0456\u0454\u043D\u0442\u0430",
Untagged: ""
Untagged: "\u0411\u0435\u0437 \u043C\u0456\u0442\u043E\u043A"
}, cs: {
Status: "Stav",
"Your Desktop": "Va\u0161e plocha",

108026
resources/web2/main.dart.js vendored

File diff suppressed because one or more lines are too long