feat(config): add ws-host configuration (#156)
This commit is contained in:
@@ -109,7 +109,6 @@
|
|||||||
* 可以添加自定义指令
|
* 可以添加自定义指令
|
||||||
* 可以执行自定义指令
|
* 可以执行自定义指令
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
11. **LDAP 支持**, 当在API Server上设置了LDAP(已测试AD和LDAP),可以通过LDAP中的用户信息进行登录 https://github.com/lejianwen/rustdesk-api/issues/114 ,如果LDAP验证失败,返回本地用户
|
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`配置文件,修改相关配置。
|
* 参考`conf/config.yaml`配置文件,修改相关配置。
|
||||||
* 如果`gorm.type`是`sqlite`,则不需要配置mysql相关配置。
|
* 如果`gorm.type`是`sqlite`,则不需要配置mysql相关配置。
|
||||||
* 语言如果不设置默认为`zh-CN`
|
* 语言如果不设置默认为`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`中的配置一一对应,变量名前缀是`RUSTDESK_API`
|
||||||
下面表格并未全部列出,可以参考`conf/config.yaml`中的配置。
|
下面表格并未全部列出,可以参考`conf/config.yaml`中的配置。
|
||||||
@@ -248,6 +186,7 @@ ldap:
|
|||||||
| RUSTDESK_API_RUSTDESK_KEY | Rustdesk的key | 123456789 |
|
| RUSTDESK_API_RUSTDESK_KEY | Rustdesk的key | 123456789 |
|
||||||
| RUSTDESK_API_RUSTDESK_KEY_FILE | Rustdesk存放key的文件 | `./conf/data/id_ed25519.pub` |
|
| RUSTDESK_API_RUSTDESK_KEY_FILE | Rustdesk存放key的文件 | `./conf/data/id_ed25519.pub` |
|
||||||
| RUSTDESK_API_RUSTDESK_WEBCLIENT<br/>_MAGIC_QUERYONLINE | Web client v2 中是否启用新的在线状态查询方法; `1`:启用,`0`:不启用,默认不启用 | `0` |
|
| RUSTDESK_API_RUSTDESK_WEBCLIENT<br/>_MAGIC_QUERYONLINE | Web client v2 中是否启用新的在线状态查询方法; `1`:启用,`0`:不启用,默认不启用 | `0` |
|
||||||
|
| RUSTDESK_API_RUSTDESK_WS_HOST | 自定义Websocket Host | |
|
||||||
| ----PROXY配置----- | ---------- | ---------- |
|
| ----PROXY配置----- | ---------- | ---------- |
|
||||||
| RUSTDESK_API_PROXY_ENABLE | 是否启用代理:`false`, `true` | `false` |
|
| RUSTDESK_API_PROXY_ENABLE | 是否启用代理:`false`, `true` | `false` |
|
||||||
| RUSTDESK_API_PROXY_HOST | 代理地址 | `http://127.0.0.1:1080` |
|
| RUSTDESK_API_PROXY_HOST | 代理地址 | `http://127.0.0.1:1080` |
|
||||||
|
|||||||
+2
-63
@@ -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 added
|
||||||
* Custom commands can be executed
|
* 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
|
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:
|
### Web Client:
|
||||||
@@ -145,71 +143,11 @@ displaying data.Frontend code is available at [rustdesk-api-web](https://github.
|
|||||||
|
|
||||||
### Configuration
|
### Configuration
|
||||||
|
|
||||||
|
* [Config File](./conf/config.yaml)
|
||||||
* Modify the configuration in `conf/config.yaml`.
|
* Modify the configuration in `conf/config.yaml`.
|
||||||
* If `gorm.type` is set to `sqlite`, MySQL-related configurations are not required.
|
* 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`.
|
* 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
|
### 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`.
|
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 | Rustdesk key | 123456789 |
|
||||||
| RUSTDESK_API_RUSTDESK_KEY_FILE | Rustdesk key file | `./conf/data/id_ed25519.pub` |
|
| RUSTDESK_API_RUSTDESK_KEY_FILE | Rustdesk key file | `./conf/data/id_ed25519.pub` |
|
||||||
| RUSTDESK_API_RUSTDESK<br/>_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<br/>_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 ----- | --------------- | ---------- |
|
| ---- PROXY ----- | --------------- | ---------- |
|
||||||
| RUSTDESK_API_PROXY_ENABLE | proxy_enable :`false`, `true` | `false` |
|
| RUSTDESK_API_PROXY_ENABLE | proxy_enable :`false`, `true` | `false` |
|
||||||
| RUSTDESK_API_PROXY_HOST | proxy_host | `http://127.0.0.1:1080` |
|
| RUSTDESK_API_PROXY_HOST | proxy_host | `http://127.0.0.1:1080` |
|
||||||
|
|||||||
@@ -32,6 +32,7 @@ rustdesk:
|
|||||||
key-file: "/data/id_ed25519.pub"
|
key-file: "/data/id_ed25519.pub"
|
||||||
personal: 1
|
personal: 1
|
||||||
webclient-magic-queryonline: 0
|
webclient-magic-queryonline: 0
|
||||||
|
ws-host: ""
|
||||||
logger:
|
logger:
|
||||||
path: "./runtime/log.txt"
|
path: "./runtime/log.txt"
|
||||||
level: "info" #trace,debug,info,warn,error,fatal
|
level: "info" #trace,debug,info,warn,error,fatal
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ type Rustdesk struct {
|
|||||||
Personal int `mapstructure:"personal"`
|
Personal int `mapstructure:"personal"`
|
||||||
//webclient-magic-queryonline
|
//webclient-magic-queryonline
|
||||||
WebclientMagicQueryonline int `mapstructure:"webclient-magic-queryonline"`
|
WebclientMagicQueryonline int `mapstructure:"webclient-magic-queryonline"`
|
||||||
|
WsHost string `mapstructure:"ws-host"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (rd *Rustdesk) LoadKeyFile() {
|
func (rd *Rustdesk) LoadKeyFile() {
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
package web
|
package web
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"fmt"
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
"github.com/lejianwen/rustdesk-api/v2/global"
|
"github.com/lejianwen/rustdesk-api/v2/global"
|
||||||
"strconv"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
type Index struct {
|
type Index struct {
|
||||||
@@ -15,13 +15,20 @@ func (i *Index) Index(c *gin.Context) {
|
|||||||
|
|
||||||
func (i *Index) ConfigJs(c *gin.Context) {
|
func (i *Index) ConfigJs(c *gin.Context) {
|
||||||
apiServer := global.Config.Rustdesk.ApiServer
|
apiServer := global.Config.Rustdesk.ApiServer
|
||||||
magicQueryonline := strconv.Itoa(global.Config.Rustdesk.WebclientMagicQueryonline)
|
magicQueryonline := global.Config.Rustdesk.WebclientMagicQueryonline
|
||||||
tmp := `
|
tmp := fmt.Sprintf(`localStorage.setItem('api-server', '%v');
|
||||||
localStorage.setItem('api-server', "` + apiServer + `")
|
const ws2_prefix = 'wc-';
|
||||||
const ws2_prefix = 'wc-'
|
localStorage.setItem(ws2_prefix+'api-server', '%v');
|
||||||
localStorage.setItem(ws2_prefix+'api-server', "` + apiServer + `")
|
|
||||||
|
|
||||||
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.Header("Content-Type", "application/javascript")
|
||||||
c.String(200, tmp)
|
c.String(200, tmp)
|
||||||
|
|||||||
Vendored
+3
@@ -11089,6 +11089,9 @@ function R4(u = !1) {
|
|||||||
|
|
||||||
function getUriFromRs(uri, isRelay = false, roffset = 0) {
|
function getUriFromRs(uri, isRelay = false, roffset = 0) {
|
||||||
const p = isHttps() ? "wss://" : "ws://"
|
const p = isHttps() ? "wss://" : "ws://"
|
||||||
|
if (window.ws_host) {
|
||||||
|
return p + window.ws_host + "/ws/" + (isRelay ? "relay" : "id")
|
||||||
|
}
|
||||||
const [domain, uriport] = uri.split(":")
|
const [domain, uriport] = uri.split(":")
|
||||||
if (!isHttps()) {
|
if (!isHttps()) {
|
||||||
// http 直接走端口
|
// http 直接走端口
|
||||||
|
|||||||
Reference in New Issue
Block a user