A lightweight enterprise Web Console terminal, which brings together the advantages of most similar products, supporting SSH2/lrzsz (RDP/RFB/Telnet) protocol, Audit and screen recording function, etc
中文文档.
git clone https://github.com/wl4g/xcloud-webconsole.git # upstream, latest
# git clone https://gitee.com/wl4g/xcloud-webconsole.git
cd xcloud-webconsole/scripts
./build.sh # Compiling to Linux
# build.bat # Compiling to Windows
./webconsole_linux_amd64 -c resources/webconsole.yml # Startup(Default by ./webconsole.yml)
Load configuration file '/etc/webconsole.yml'{"level":"info","time":"20-11-07 22:03:49","line":"pkg/webconsole.go:71","msg":"WebConsole server starting...","service":"main"}
{"level":"info","time":"20-11-07 22:03:49","line":"admin/metric-exporter.go:142","msg":"Starting prometheus exporter...","service":"main","Listen":":16089"}
[GIN-debug] [WARNING] Running in "debug" mode. Switch to "release" mode in production.
- using env: export GIN_MODE=release
- using code: gin.SetMode(gin.ReleaseMode)
[GIN-debug] GET /terminal/ws/:id --> xcloud-webconsole/pkg/modules/ssh2.NewWebsocketConnectionFunc (4 handlers)
[GIN-debug] GET /terminal/session/list --> xcloud-webconsole/pkg/modules/ssh2.QuerySSH2SessionsFunc (4 handlers)
[GIN-debug] POST /terminal/session/create --> xcloud-webconsole/pkg/modules/ssh2.AddSSH2SessionFunc (4 handlers)
[GIN-debug] POST /terminal/session/delete --> xcloud-webconsole/pkg/modules/ssh2.DeleteSSH2SessionFunc (4 handlers)
[GIN-debug] POST /terminal/session/close --> xcloud-webconsole/pkg/modules/ssh2.CloseSSH2SessionFunc (4 handlers)
[GIN-debug] Listening and serving HTTP on :26088
Because webconsole is based on HTML, the copy and paste functions of the browser are limited by the security mechanism and can only be used under HTTPS, Of course, if you don't want to be troublesome, this step can be ignored. You can use HTTP local test directly, but you can't use the copy and paste function of the browser
127.0.0.1 webconsole.wl4g.debug # Add hosts
sudo mkdir -p /etc/nginx/conf.d && \
sudo mkdir -p /etc/nginx/certs && \
cat > /etc/nginx/conf.d/sslwebconsole.conf <<EOF
# Generated by WebConsole docs sample.
# WebConsole web pages.
server {
listen 443 ssl;
server_name webconsole.wl4g.debug;
ssl on;
ssl_certificate certs/_wildcard.wl4g.debug.pem;
ssl_certificate_key certs/_wildcard.wl4g.debug-key.pem;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
location / {
root /usr/share/nginx/html/webconsole;
index index.html;
}
}
# WebConsole server APIs.
server {
listen 26088 ssl;
server_name webconsole.wl4g.debug;
ssl_certificate certs/_wildcard.wl4g.debug.pem;
ssl_certificate_key certs/_wildcard.wl4g.debug-key.pem;
ssl_session_timeout 5m;
ssl_prefer_server_ciphers on;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
location / {
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-real-ip $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_pass http://127.0.0.1:16088;
}
}
EOF
mv $PROJECT/testing/*.pem /etc/nginx/certs/ # Configure test certificate
sudo chmod 755 /etc/nginx/conf.d/sslwebconsole.conf
sudo systemctl restart nginx
Install the test CA certificate to the system and chrome, for example (Chrome84.x):
chrome://settings/security
Management Certificate -> Trusted certification authority -> Imports, Then restart chrome and try to access: https://webconsole.wl4g.debug
Android iOS
and any other terminal that can render HTML. It can almost completely replace the shell client based on the installation programlrzsz
command set (implemented based on zmodem)curl http://localhost:16089/metrics
# HELP goroutines_num Number of goroutines
# TYPE goroutines_num gauge
goroutines_num 16
# HELP mysql_active_conn Current active connections of MySQL
# TYPE mysql_active_conn gauge
mysql_active_conn{dbconnectstr="gzsm:******@tcp(10.0.0.160:3306)/devops_dev?charset=utf8",host="10.0.0.172"} 1
# HELP ssh2_active_dispatch_channels Current active channels of SSH2 dispatcher
# TYPE ssh2_active_dispatch_channels gauge
ssh2_active_dispatch_channels{host="10.0.0.172",user="admin"} 0
# HELP threads_num Number of threads
# TYPE threads_num gauge
threads_num 8
# HELP virtual_free_memory Size of virtual free memory
# TYPE virtual_free_memory gauge
virtual_free_memory 1.731424256
# HELP virtual_total_memory Size of virtual total memory
# TYPE virtual_total_memory gauge
virtual_total_memory 8.50089984
Note: the page does not set the most compact test page of CSS style
gin
framework.cd $WEBCONSOLE_HOME
go run config_generator.go
Successfully for pkg/config/webconsole.default.yml.go
Sign in for post a comment
Activity
Community
Health
Trend
Influence
:Code submit frequency
:React/respond to issue & PR etc.
:Well-balanced team members and collaboration
:Recent popularity of project
:Star counts, download counts etc.
Comments ( 2 )