diff --git a/README.md b/README.md
index 89e675b..6a49527 100644
--- a/README.md
+++ b/README.md
@@ -108,8 +108,7 @@
* 可以官方指令
* 可以添加自定义指令
* 可以执行自定义指令
-
- 
+
11. **LDAP 支持**, 当在API Server上设置了LDAP(已测试AD和LDAP),可以通过LDAP中的用户信息进行登录 https://github.com/lejianwen/rustdesk-api/issues/114 ,如果LDAP验证失败,返回本地用户
@@ -146,72 +145,11 @@
### 相关配置
+* [配置文件](./conf/config.yaml)
* 参考`conf/config.yaml`配置文件,修改相关配置。
* 如果`gorm.type`是`sqlite`,则不需要配置mysql相关配置。
* 语言如果不设置默认为`zh-CN`
-```yaml
-lang: "en"
-app:
- web-client: 1 # 1:启用 0:禁用
- register: false #是否开启注册
- show-swagger: 0 #是否显示swagger文档
- web-sso: true #是否显示web sso
- token-expire: 168h #token有效时长
- disable-pwd-login: false #是否禁用密码登录
-gin:
- api-addr: "0.0.0.0:21114"
- mode: "release"
- resources-path: 'resources'
- trust-proxy: ""
-gorm:
- type: "sqlite"
- max-idle-conns: 10
- max-open-conns: 100
-mysql:
- username: "root"
- password: "111111"
- addr: "192.168.1.66:3308"
- dbname: "rustdesk"
-rustdesk:
- id-server: "192.168.1.66:21116"
- relay-server: "192.168.1.66:21117"
- api-server: "http://192.168.1.66:21114"
- key: "123456789"
- personal: 1
-logger:
- path: "./runtime/log.txt"
- level: "warn" #trace,debug,info,warn,error,fatal
- report-caller: true
-proxy:
- enable: false
- host: ""
-jwt:
- key: ""
- expire-duration: 168h
-ldap:
- enable: false
- url: "ldap://ldap.example.com:389"
- tls: false
- tls-verify: false
- base-dn: "dc=example,dc=com"
- bind-dn: "cn=admin,dc=example,dc=com"
- bind-password: "password"
-
- user:
- base-dn: "ou=users,dc=example,dc=com"
- enable-attr: "" #The attribute name of the user for enabling, in AD it is "userAccountControl", empty means no enable attribute, all users are enabled
- enable-attr-value: "" # The value of the enable attribute when the user is enabled. If you are using AD, just set random value, it will be ignored.
- filter: "(cn=*)"
- username: "uid" # The attribute name of the user for usernamem if you are using AD, it should be "sAMAccountName"
- email: "mail"
- first-name: "givenName"
- last-name: "sn"
- sync: false # If true, the user will be synchronized to the database when the user logs in. If false, the user will be synchronized to the database when the user be created.
- admin-group: "cn=admin,dc=example,dc=com" # The group name of the admin group, if the user is in this group, the user will be an admin.
-
-```
-
### 环境变量
环境变量和配置文件`conf/config.yaml`中的配置一一对应,变量名前缀是`RUSTDESK_API`
下面表格并未全部列出,可以参考`conf/config.yaml`中的配置。
@@ -248,6 +186,7 @@ ldap:
| RUSTDESK_API_RUSTDESK_KEY | Rustdesk的key | 123456789 |
| RUSTDESK_API_RUSTDESK_KEY_FILE | Rustdesk存放key的文件 | `./conf/data/id_ed25519.pub` |
| RUSTDESK_API_RUSTDESK_WEBCLIENT
_MAGIC_QUERYONLINE | Web client v2 中是否启用新的在线状态查询方法; `1`:启用,`0`:不启用,默认不启用 | `0` |
+| RUSTDESK_API_RUSTDESK_WS_HOST | 自定义Websocket Host | |
| ----PROXY配置----- | ---------- | ---------- |
| RUSTDESK_API_PROXY_ENABLE | 是否启用代理:`false`, `true` | `false` |
| RUSTDESK_API_PROXY_HOST | 代理地址 | `http://127.0.0.1:1080` |
diff --git a/README_EN.md b/README_EN.md
index fe33336..1baf9ce 100644
--- a/README_EN.md
+++ b/README_EN.md
@@ -109,8 +109,6 @@ displaying data.Frontend code is available at [rustdesk-api-web](https://github.
* Custom commands can be added
* Custom commands can be executed
- 
-
11. **LDAP Support**, When you setup the LDAP(test for OpenLDAP and AD), you can login with the LDAP's user. https://github.com/lejianwen/rustdesk-api/issues/114 , if LDAP fail fallback local user
### Web Client:
@@ -145,71 +143,11 @@ displaying data.Frontend code is available at [rustdesk-api-web](https://github.
### Configuration
+* [Config File](./conf/config.yaml)
* Modify the configuration in `conf/config.yaml`.
* If `gorm.type` is set to `sqlite`, MySQL-related configurations are not required.
* Language support: `en` and `zh-CN` are supported. The default is `zh-CN`.
-```yaml
-lang: "en"
-app:
- web-client: 1 # web client route 1:open 0:close
- register: false #register enable
- show-swagger: 0 #show swagger 1:open 0:close
- web-sso: true #web sso
- token-expire: 168h #token expire duration
- disable-pwd-login: false #disable password login
-gin:
- api-addr: "0.0.0.0:21114"
- mode: "release"
- resources-path: 'resources'
- trust-proxy: ""
-gorm:
- type: "sqlite"
- max-idle-conns: 10
- max-open-conns: 100
-mysql:
- username: "root"
- password: "111111"
- addr: "192.168.1.66:3308"
- dbname: "rustdesk"
-rustdesk:
- id-server: "192.168.1.66:21116"
- relay-server: "192.168.1.66:21117"
- api-server: "http://192.168.1.66:21114"
- key: "123456789"
- personal: 1
-logger:
- path: "./runtime/log.txt"
- level: "warn" #trace,debug,info,warn,error,fatal
- report-caller: true
-proxy:
- enable: false
- host: ""
-jwt:
- key: ""
- expire-duration: 360000
-ldap:
- enable: false
- url: "ldap://ldap.example.com:389"
- tls: false
- tls-verify: false
- base-dn: "dc=example,dc=com"
- bind-dn: "cn=admin,dc=example,dc=com"
- bind-password: "password"
-
- user:
- base-dn: "ou=users,dc=example,dc=com"
- enable-attr: "" #The attribute name of the user for enabling, in AD it is "userAccountControl", empty means no enable attribute, all users are enabled
- enable-attr-value: "" # The value of the enable attribute when the user is enabled. If you are using AD, just set random value, it will be ignored.
- filter: "(cn=*)"
- username: "uid" # The attribute name of the user for usernamem if you are using AD, it should be "sAMAccountName"
- email: "mail"
- first-name: "givenName"
- last-name: "sn"
- sync: false # If true, the user will be synchronized to the database when the user logs in. If false, the user will be synchronized to the database when the user be created.
- admin-group: "cn=admin,dc=example,dc=com" # The group name of the admin group, if the user is in this group, the user will be an admin.
-
-```
### Environment Variables
The environment variables correspond one-to-one with the configurations in the `conf/config.yaml` file. The prefix for variable names is `RUSTDESK_API`.
@@ -247,6 +185,7 @@ The table below does not list all configurations. Please refer to the configurat
| RUSTDESK_API_RUSTDESK_KEY | Rustdesk key | 123456789 |
| RUSTDESK_API_RUSTDESK_KEY_FILE | Rustdesk key file | `./conf/data/id_ed25519.pub` |
| RUSTDESK_API_RUSTDESK
_WEBCLIENT_MAGIC_QUERYONLINE | New online query method is enabled in the web client v2; '1': Enabled, '0': Disabled, not enabled by default | `0` |
+| RUSTDESK_API_RUSTDESK_WS_HOST | Custom Websocket Host | |
| ---- PROXY ----- | --------------- | ---------- |
| RUSTDESK_API_PROXY_ENABLE | proxy_enable :`false`, `true` | `false` |
| RUSTDESK_API_PROXY_HOST | proxy_host | `http://127.0.0.1:1080` |
diff --git a/conf/config.yaml b/conf/config.yaml
index 81de224..54536bb 100644
--- a/conf/config.yaml
+++ b/conf/config.yaml
@@ -32,6 +32,7 @@ rustdesk:
key-file: "/data/id_ed25519.pub"
personal: 1
webclient-magic-queryonline: 0
+ ws-host: ""
logger:
path: "./runtime/log.txt"
level: "info" #trace,debug,info,warn,error,fatal
diff --git a/config/rustdesk.go b/config/rustdesk.go
index 937aecb..2bc1c45 100644
--- a/config/rustdesk.go
+++ b/config/rustdesk.go
@@ -21,7 +21,8 @@ type Rustdesk struct {
KeyFile string `mapstructure:"key-file"`
Personal int `mapstructure:"personal"`
//webclient-magic-queryonline
- WebclientMagicQueryonline int `mapstructure:"webclient-magic-queryonline"`
+ WebclientMagicQueryonline int `mapstructure:"webclient-magic-queryonline"`
+ WsHost string `mapstructure:"ws-host"`
}
func (rd *Rustdesk) LoadKeyFile() {
diff --git a/http/controller/web/index.go b/http/controller/web/index.go
index 97d0fae..0bb689c 100644
--- a/http/controller/web/index.go
+++ b/http/controller/web/index.go
@@ -1,9 +1,9 @@
package web
import (
+ "fmt"
"github.com/gin-gonic/gin"
"github.com/lejianwen/rustdesk-api/v2/global"
- "strconv"
)
type Index struct {
@@ -15,13 +15,20 @@ func (i *Index) Index(c *gin.Context) {
func (i *Index) ConfigJs(c *gin.Context) {
apiServer := global.Config.Rustdesk.ApiServer
- magicQueryonline := strconv.Itoa(global.Config.Rustdesk.WebclientMagicQueryonline)
- tmp := `
-localStorage.setItem('api-server', "` + apiServer + `")
-const ws2_prefix = 'wc-'
-localStorage.setItem(ws2_prefix+'api-server', "` + apiServer + `")
+ magicQueryonline := global.Config.Rustdesk.WebclientMagicQueryonline
+ tmp := fmt.Sprintf(`localStorage.setItem('api-server', '%v');
+const ws2_prefix = 'wc-';
+localStorage.setItem(ws2_prefix+'api-server', '%v');
-window.webclient_magic_queryonline = ` + magicQueryonline + ``
+window.webclient_magic_queryonline = %d;
+window.ws_host = '%v';
+`, apiServer, apiServer, magicQueryonline, global.Config.Rustdesk.WsHost)
+ // tmp := `
+ //localStorage.setItem('api-server', "` + apiServer + `")
+ //const ws2_prefix = 'wc-'
+ //localStorage.setItem(ws2_prefix+'api-server', "` + apiServer + `")
+ //
+ //window.webclient_magic_queryonline = ` + magicQueryonline + ``
c.Header("Content-Type", "application/javascript")
c.String(200, tmp)