diff --git a/README.md b/README.md index 0ae2117..040cedf 100755 --- a/README.md +++ b/README.md @@ -3,12 +3,8 @@ JumpServer 客户端,支持本地本地客户端拉起。 ## 概览 -### Win ![windows](static/windows.png) -### Mac -![macos](static/macos.png) - ## 安装 ### Mac @@ -17,7 +13,15 @@ JumpServer 客户端,支持本地本地客户端拉起。 ### Win -下载Win安装包,双击JumpServer.exe 文件(需要等待10几秒钟)。 +下载Win安装包,双击JumpServer安装包文件(需要等待10几秒钟)。 + +### Linux + +下载Linux安装包,双击Deb安装包文件,打开安装包管理器进行安装。或者使用命令进行安装 +``` +sudo dpkg -i +``` + ## 卸载 @@ -29,6 +33,12 @@ JumpServer 客户端,支持本地本地客户端拉起。 移除JumpServer.app。 +### Linux + +点击打开软件管理器进行卸载。或者使用命令进行卸载 +``` +sudo dpkg --purge +``` ## 打包 diff --git a/go-client/config.json b/go-client/config.json index 254eb10..a98f57d 100644 --- a/go-client/config.json +++ b/go-client/config.json @@ -209,7 +209,7 @@ "match_first": [], "is_internal": true, "is_default": false, - "is_set": true + "is_set": false }, { "name": "securecrt", @@ -309,7 +309,7 @@ "match_first": [], "is_internal": false, "is_default": false, - "is_set": true + "is_set": false } ] }, @@ -346,8 +346,24 @@ "arg_format": "", "match_first": [], "is_internal": true, - "is_default": true, - "is_set": true + "is_default": false, + "is_set": false + }, + { + "name": "xfreerdp", + "display_name": "xFreeRDP", + "protocol": [ + "rdp" + ], + "comment": "FreeRDP 是远程桌面协议 (RDP) 的免费实现,在 Apache 许可证下发布。\n安装命令\nsudo apt-get install freerdp\nsudo yum install freerdp", + "download_url": "https://github.com/FreeRDP/FreeRDP-内置", + "type": "windows", + "path": "xfreerdp", + "arg_format": "", + "match_first": [], + "is_internal": true, + "is_default": false, + "is_set": false } ], "filetransfer": [], @@ -377,6 +393,25 @@ "is_internal": true, "is_default": false, "is_set": true + }, + { + "name": "dbeaver", + "display_name": "DBeaver Community", + "protocol": [ + "oracle", + "mysql", + "postgresql", + "mariadb" + ], + "comment": "DBeaver Community是一个通用的数据库管理工具和SQL客户端,支持MySQL、PostgreSQL、Oracle以及其他兼容JDBC的数据库。\n\n!!!手动下载安装,点击保存启用!!!", + "download_url": "https://dbeaver.io/download/", + "type": "databases", + "path": "", + "arg_format": "-con name={name}|driver={protocol}|user={username}|password={value}|database={dbname}|host={host}|port={port}|save=false|connect=true", + "match_first": [], + "is_internal": false, + "is_default": false, + "is_set": false } ] } diff --git a/go-client/pkg/awaken/awaken_darwin.go b/go-client/pkg/awaken/awaken_darwin.go index cab07e3..031cadf 100755 --- a/go-client/pkg/awaken/awaken_darwin.go +++ b/go-client/pkg/awaken/awaken_darwin.go @@ -18,7 +18,7 @@ func getCommandFromArgs(connectInfo map[string]string, argFormat string) string return argFormat } -func awakenRDPCommand(filePath string) *exec.Cmd { +func awakenRDPCommand(filePath string, cfg *config.AppConfig) *exec.Cmd { global.LOG.Debug(filePath) cmd := exec.Command("open", filePath) return cmd diff --git a/go-client/pkg/awaken/awaken_linux.go b/go-client/pkg/awaken/awaken_linux.go index 88a9911..22df10b 100755 --- a/go-client/pkg/awaken/awaken_linux.go +++ b/go-client/pkg/awaken/awaken_linux.go @@ -18,9 +18,20 @@ func getCommandFromArgs(connectInfo map[string]string, argFormat string) string return argFormat } -func awakenRDPCommand(filePath string) *exec.Cmd { +func awakenRDPCommand(filePath string, cfg *config.AppConfig) *exec.Cmd { global.LOG.Debug(filePath) - cmd := exec.Command("remmina", filePath) + var appItem *config.AppItem + appLst := cfg.Linux.RemoteDesktop + for _, app := range appLst { + if app.IsActive() && app.IsSupportProtocol("rdp") { + appItem = &app + break + } + } + if appItem == nil { + return nil + } + cmd := exec.Command(appItem.Name, filePath) return cmd } diff --git a/go-client/pkg/awaken/awaken_unix.go b/go-client/pkg/awaken/awaken_unix.go index 7c39d90..3cc5f3a 100755 --- a/go-client/pkg/awaken/awaken_unix.go +++ b/go-client/pkg/awaken/awaken_unix.go @@ -9,7 +9,7 @@ import ( ) func handleRDP(r *Rouse, filePath string, cfg *config.AppConfig) *exec.Cmd { - cmd := awakenRDPCommand(filePath) + cmd := awakenRDPCommand(filePath, cfg) return cmd } diff --git a/interface/build/win/installer.nsh b/interface/build/win/installer.nsh index 2b2b731..c588eb5 100644 --- a/interface/build/win/installer.nsh +++ b/interface/build/win/installer.nsh @@ -7,7 +7,7 @@ WriteRegStr HKCR "jms" "URL Protocol" "" WriteRegStr HKCR "jms\shell" "" "" WriteRegStr HKCR "jms\shell\open" "" "" - WriteRegStr HKCR "jms\shell\open\command" "" '$INSTDIR\resources\bin\windows\JumpServerClient.exe "%1"' + WriteRegStr HKCR "jms\shell\open\command" "" '"$INSTDIR\resources\bin\windows\JumpServerClient.exe" "%1"' !macroend !macro customUnInstall diff --git a/interface/package.json b/interface/package.json index 1c1af93..9b2b167 100644 --- a/interface/package.json +++ b/interface/package.json @@ -1,7 +1,7 @@ { "name": "jumpserver-client", "author": "Fit2Cloud Technology Co., Ltd.; ", - "version": "v2.0.1", + "version": "v2.0.2", "homepage": "https://jumpserver.org", "private": true, "scripts": { diff --git a/interface/src/renderer/assets/xfreerdp.png b/interface/src/renderer/assets/xfreerdp.png new file mode 100644 index 0000000..397e62d Binary files /dev/null and b/interface/src/renderer/assets/xfreerdp.png differ diff --git a/interface/vue.config.js b/interface/vue.config.js index bbffb5f..4d611a2 100644 --- a/interface/vue.config.js +++ b/interface/vue.config.js @@ -80,8 +80,8 @@ module.exports = { }] }, nsis: { - oneClick: true, - allowToChangeInstallationDirectory: false, + oneClick: false, + allowToChangeInstallationDirectory: true, deleteAppDataOnUninstall: true, include: "build/win/installer.nsh" },