From ac45a1b5adfbd3f5f393468293bf42bcc7d5728e Mon Sep 17 00:00:00 2001 From: lejianwen <84855512@qq.com> Date: Sun, 12 Jan 2025 23:12:00 +0800 Subject: [PATCH] docs: Up readme --- README.md | 25 +++++++++++++++++----- README_EN.md | 26 ++++++++++++++++++----- docs/en_img/rustdesk_command_advance.png | Bin 0 -> 101244 bytes docs/en_img/rustdesk_command_simple.png | Bin 0 -> 61454 bytes docs/en_img/web_admin.png | Bin 44833 -> 49952 bytes docs/en_img/web_admin_oauth.png | Bin 20953 -> 19817 bytes docs/rustdesk_command_advance.png | Bin 0 -> 101525 bytes docs/rustdesk_command_simple.png | Bin 0 -> 59667 bytes docs/web_admin.png | Bin 44656 -> 49413 bytes 9 files changed, 41 insertions(+), 10 deletions(-) create mode 100644 docs/en_img/rustdesk_command_advance.png create mode 100644 docs/en_img/rustdesk_command_simple.png create mode 100644 docs/rustdesk_command_advance.png create mode 100644 docs/rustdesk_command_simple.png diff --git a/README.md b/README.md index 51c0744..298c195 100644 --- a/README.md +++ b/README.md @@ -76,14 +76,14 @@ 2. 普通用户界面 ![web_user](docs/web_admin_user.png) 右上角可以更改密码,可以切换语言,可以切换`白天/黑夜`模式 + ![web_resetpwd](docs/web_resetpwd.png) -3. 分组可以自定义,方便管理,暂时支持两种类型: `共享组` 和 `普通组` - ![web_admin_gr](docs/web_admin_gr.png) -4. 可以直接打开webclient,方便使用;也可以分享给游客,游客可以直接通过webclient远程到设备 - +3. 每个用户可以多个地址簿,也可以将地址簿共享给其他用户 +4. 分组可以自定义,方便管理,暂时支持两种类型: `共享组` 和 `普通组` +5. 可以直接打开webclient,方便使用;也可以分享给游客,游客可以直接通过webclient远程到设备 ![web_webclient](docs/admin_webclient.png) -5. Oauth,支持了`Github`, `Google` 以及 `OIDC`, 需要创建一个`OAuth App`,然后配置到后台 +6. Oauth,支持了`Github`, `Google` 以及 `OIDC`, 需要创建一个`OAuth App`,然后配置到后台 ![web_admin_oauth](docs/web_admin_oauth.png) - 对于`Google` 和 `Github`, `Issuer` 和 `Scopes`不需要填写. - 对于`OIDC`, `Issuer`是必须的。`Scopes`是可选的,默认为 `openid,profile,email`. 确保可以获取 `sub`,`email` 和`preferred_username` @@ -91,6 +91,21 @@ 中创建,地址 [https://github.com/settings/developers](https://github.com/settings/developers) - `Authorization callback URL`填写`http:///api/oauth/callback` ,比如`http://127.0.0.1:21114/api/oauth/callback` +7. 登录日志 +8. 链接日志 +9. 文件传输日志 +10. server控制 + + - `简易模式`,已经界面化了一些简单的指令,可以直接在后台执行 + ![rustdesk_command_simple](./docs/rustdesk_command_simple.png) + + - `高级模式`,直接在后台执行指令 + * 可以官方指令 + * 可以添加自定义指令 + * 可以执行自定义指令 + + ![rustdesk_command_advance](./docs/rustdesk_command_advance.png) + ### Web Client: diff --git a/README_EN.md b/README_EN.md index aac576a..c137b22 100644 --- a/README_EN.md +++ b/README_EN.md @@ -79,12 +79,11 @@ installation are `admin` `admin`, please change the password immediately. In the top right corner, you can change the password, switch languages, and toggle between `day/night` mode. ![web_resetpwd](docs/en_img/web_resetpwd.png) -3. Groups can be customized for easy management. Currently, two types are supported: `shared group` and `regular group`. - ![web_admin_gr](docs/en_img/web_admin_gr.png) -4. You can directly launch the client or open the web client for convenience; you can also share it with guests, who can remotely access the device via the web client. - +3. Each user can have multiple address books, which can also be shared with other users. +4. Groups can be customized for easy management. Currently, two types are supported: `shared group` and `regular group`. +5. You can directly launch the client or open the web client for convenience; you can also share it with guests, who can remotely access the device via the web client. ![web_webclient](docs/en_img/admin_webclient.png) -5. OAuth support: Currently, `GitHub`, `Google` and `OIDC` are supported. You need to create an `OAuth App` and configure it in +6. OAuth support: Currently, `GitHub`, `Google` and `OIDC` are supported. You need to create an `OAuth App` and configure it in the admin panel. ![web_admin_oauth](docs/en_img/web_admin_oauth.png) - For `Google` and `Github`, you don't need to fill the `Issuer` and `Scpoes` @@ -93,6 +92,23 @@ installation are `admin` `admin`, please change the password immediately. at `Settings` -> `Developer settings` -> `OAuth Apps` -> `New OAuth App` [here](https://github.com/settings/developers). - Set the `Authorization callback URL` to `http:///api/oauth/callback`, e.g., `http://127.0.0.1:21114/api/oauth/callback`. + +7. Login logs +8. Connection logs +9. File transfer logs +10. Server control + +- `Simple mode`, some simple commands have been GUI-ized and can be executed directly in the backend + ![rustdesk_command_simple](./docs/en_img/rustdesk_command_simple.png) + +- `Advanced mode`, commands can be executed directly in the backend + * Official commands can be used + * Custom commands can be added + * Custom commands can be executed + + ![rustdesk_command_advance](./docs/en_img/rustdesk_command_advance.png) + + ### Web Client: diff --git a/docs/en_img/rustdesk_command_advance.png b/docs/en_img/rustdesk_command_advance.png new file mode 100644 index 0000000000000000000000000000000000000000..41a1d4110a01c4a914f8b82727f8b4766a162356 GIT binary patch literal 101244 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