🐛 修复 Windows WebTerminal

This commit is contained in:
naiba 2021-08-19 00:04:09 +08:00
parent 2d30b2cf47
commit 7990689949
10 changed files with 26 additions and 9 deletions

View File

@ -4,7 +4,7 @@
<br>
<small><i>LOGO designed by <a href="https://xio.ng" target="_blank">熊大</a> .</i></small>
<br><br>
<img src="https://img.shields.io/github/workflow/status/naiba/nezha/Dashboard%20image?label=Dash%20v0.9.22&logo=github&style=for-the-badge">&nbsp;<img src="https://img.shields.io/github/v/release/naiba/nezha?color=brightgreen&label=Agent&style=for-the-badge&logo=github">&nbsp;<img src="https://img.shields.io/github/workflow/status/naiba/nezha/Agent%20release?label=Agent%20CI&logo=github&style=for-the-badge">&nbsp;<img src="https://img.shields.io/badge/Installer-v0.6.7-brightgreen?style=for-the-badge&logo=linux">
<img src="https://img.shields.io/github/workflow/status/naiba/nezha/Dashboard%20image?label=Dash%20v0.9.23&logo=github&style=for-the-badge">&nbsp;<img src="https://img.shields.io/github/v/release/naiba/nezha?color=brightgreen&label=Agent&style=for-the-badge&logo=github">&nbsp;<img src="https://img.shields.io/github/workflow/status/naiba/nezha/Agent%20release?label=Agent%20CI&logo=github&style=for-the-badge">&nbsp;<img src="https://img.shields.io/badge/Installer-v0.6.7-brightgreen?style=for-the-badge&logo=linux">
<br>
<br>
<p>:trollface: <b>哪吒监控</b> 一站式轻监控轻运维系统。支持系统状态、HTTP(SSL 证书变更、即将到期、到期)、TCP、Ping 监控报警,命令批量执行和计划任务。</p>

View File

@ -4,12 +4,15 @@
package pty
import (
"errors"
"os"
"os/exec"
opty "github.com/creack/pty"
)
var defaultShells = []string{"zsh", "fish", "bash", "sh"}
type Pty struct {
tty *os.File
cmd *exec.Cmd
@ -19,9 +22,15 @@ func DownloadDependency() {
}
func Start() (*Pty, error) {
shellPath := os.Getenv("SHELL")
var shellPath string
for i := 0; i < len(defaultShells); i++ {
shellPath, _ = exec.LookPath(defaultShells[i])
if shellPath != "" {
break
}
}
if shellPath == "" {
shellPath = "sh"
return nil, errors.New("没有可用终端")
}
cmd := exec.Command(shellPath)
cmd.Env = append(os.Environ(), "TERM=xterm")

View File

@ -73,12 +73,12 @@ func Start() (*Pty, error) {
if err != nil {
return nil, err
}
tty, err := winpty.Open(path, shellPath)
tty, err := winpty.OpenDefault(path, shellPath)
return &Pty{tty: tty}, err
}
func (pty *Pty) Write(p []byte) (n int, err error) {
return pty.tty.StdIn.Read(p)
return pty.tty.StdIn.Write(p)
}
func (pty *Pty) Read(p []byte) (n int, err error) {

View File

@ -163,6 +163,7 @@ function post(path, params, method = 'post') {
const form = document.createElement('form');
form.method = method;
form.action = path;
form.target = "_blank";
for (const key in params) {
if (params.hasOwnProperty(key)) {
@ -176,6 +177,7 @@ function post(path, params, method = 'post') {
document.body.appendChild(form);
form.submit();
document.removeChild(form);
}
function addOrEditServer(server, conf) {

View File

@ -9,7 +9,7 @@
<script src="https://cdn.jsdelivr.net/npm/semantic-ui@2.4.1/dist/semantic.min.js"></script>
<script src="/static/semantic-ui-alerts.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/vue@2.6.12/dist/vue.min.js"></script>
<script src="/static/main.js?v20210817"></script>
<script src="/static/main.js?v20210818"></script>
</body>
</html>

View File

@ -40,6 +40,10 @@
term.loadAddon(fitAddon);
term.open(document.getElementById('terminal-container'));
socket.onopen = () => {
onResize()
}
function onResize() {
fitAddon.fit()
const w = fitAddon.proposeDimensions();

View File

@ -1,5 +1,6 @@
debug: false
httpport: 80
httpport: nz_grpc_port
grpcport:
oauth2:
type: "nz_oauth2_type" #Oauth2 登录接入类型gitee/github
admin: "nz_admin_logins" #管理员列表,半角逗号隔开

View File

@ -8,4 +8,4 @@ services:
- ./data:/dashboard/data
ports:
- nz_site_port:80
- nz_grpc_port:5555
- nz_grpc_port:nz_grpc_port

View File

@ -305,6 +305,7 @@ modify_dashboard_config() {
sed -i "s/nz_oauth2_type/${nz_oauth2_type}/" ${NZ_DASHBOARD_PATH}/data/config.yaml
sed -i "s/nz_admin_logins/${nz_admin_logins}/" ${NZ_DASHBOARD_PATH}/data/config.yaml
sed -i "s/nz_grpc_port/${nz_grpc_port}/" ${NZ_DASHBOARD_PATH}/data/config.yaml
sed -i "s/nz_github_oauth_client_id/${nz_github_oauth_client_id}/" ${NZ_DASHBOARD_PATH}/data/config.yaml
sed -i "s/nz_github_oauth_client_secret/${nz_github_oauth_client_secret}/" ${NZ_DASHBOARD_PATH}/data/config.yaml
sed -i "s/nz_site_title/${nz_site_title}/" ${NZ_DASHBOARD_PATH}/data/config.yaml

View File

@ -13,7 +13,7 @@ import (
pb "github.com/naiba/nezha/proto"
)
var Version = "v0.9.22" // !!记得修改 README 中的 badge 版本!!
var Version = "v0.9.23" // !!记得修改 README 中的 badge 版本!!
var (
Conf *model.Config