添加 WEB 终端和以下 Docker 环境变量

NOAUTH 禁用身份认证
NOWEBTERMWRITE 禁用 WEB 终端输入
NOWEBTERM 禁用 WEB 终端
NOVNC 禁用 VNC
NOIPMI 禁用 IPMI
This commit is contained in:
mofeng-git
2024-09-14 18:29:29 +08:00
parent dffebf003e
commit 8c61de199f
9 changed files with 213 additions and 32 deletions

28
configs/kvmd/armbain-motd Executable file
View File

@@ -0,0 +1,28 @@
#!/bin/bash
if [ -e /etc/update-motd.d/10-armbian-header ]; then /etc/update-motd.d/10-armbian-header; fi
if [ -e /etc/update-motd.d/30-armbian-sysinfo ]; then /etc/update-motd.d/30-armbian-sysinfo; fi
if [ -e /etc/update-motd.d/41-armbian-config ]; then /etc/update-motd.d/41-armbian-config; fi
printf "
██████╗ ███╗ ██╗███████╗ ██╗ ██╗██╗ ██╗███╗ ███╗
██╔═══██╗████╗ ██║██╔════╝ ██║ ██╔╝██║ ██║████╗ ████║
██║ ██║██╔██╗ ██║█████╗█████╗█████╔╝ ██║ ██║██╔████╔██║
██║ ██║██║╚██╗██║██╔══╝╚════╝██╔═██╗ ╚██╗ ██╔╝██║╚██╔╝██║
╚██████╔╝██║ ╚████║███████╗ ██║ ██╗ ╚████╔╝ ██║ ╚═╝ ██║
╚═════╝ ╚═╝ ╚═══╝╚══════╝ ╚═╝ ╚═╝ ╚═══╝ ╚═╝ ╚═╝
____________________________________________________________________________
欢迎使用 One-KVM基于开源程序 PiKVM 的 IP-KVM 应用
项目链接:
* One-KVMhttps://github.com/mofeng-git/One-KVM
文档链接:
* One-KVMhttps://one-kvm.mofeng.run
____________________________________________________________________________
"

View File

@@ -10,15 +10,88 @@ echo -e "${GREEN}One-KVM pre-starting...${NC}"
#仅首次运行,用于初始化配置文件
if [ ! -f /etc/kvmd/.init_flag ]; then
#生成 ssl 证书 和 vnc 证书
/usr/share/kvmd/kvmd-gencert --do-the-thing
/usr/share/kvmd/kvmd-gencert --do-the-thing --vnc
#生成 nginx 配置文件
if [ "$NOSSL" = 1 ]; then
echo -e "${GREEN}One-KVM SSL is disabled.${NC}"
python -m kvmd.apps.ngxmkconf /etc/kvmd/nginx/nginx.conf.mako /etc/kvmd/nginx/nginx.conf -o nginx/https/enabled=false
else
python -m kvmd.apps.ngxmkconf /etc/kvmd/nginx/nginx.conf.mako /etc/kvmd/nginx/nginx.conf
fi
#生成 supervisord 配置文件是否添加扩展服务
if [ "$NOAUTH" == "1" ]; then
sed -i "s/enabled: true/enabled: false/g" /etc/kvmd/override.yaml
fi
if [ "$NOWEBTERMWRITE" == "1" ]; then
WEBTERMWRITE == ""
else
WEBTERMWRITE == "-W"
fi
if [ "$NOWEBTERM" == "1" ]; then
echo -e "${GREEN}One-KVM webterm is disabled.${NC}"
rm -r /usr/share/kvmd/extras/webterm
else
cat >> /etc/kvmd/supervisord.conf << EOF
[program:kvmd-webterm]
command=/usr/local/bin/ttyd --interface=/run/kvmd/ttyd.sock --port=0 $WEBTERMWRITE /bin/bash -c '/etc/kvmd/armbain-motd; bash'
directory=/
autostart=true
autorestart=true
priority=14
stopasgroup=true
stdout_logfile=/dev/stdout
stdout_logfile_maxbytes = 0
redirect_stderr=true
EOF
fi
if [ "&NOVNC" == "1" ]; then
echo -e "${GREEN}One-KVM VNC is disabled.${NC}"
rm -r /usr/share/kvmd/extras/vnc
else
cat >> /etc/kvmd/supervisord.conf << EOF
[program:kvmd-vnc]
command=python -m kvmd.apps.vnc --run
directory=/
autostart=true
autorestart=true
priority=11
stopasgroup=true
stdout_logfile=/dev/stdout
stdout_logfile_maxbytes = 0
redirect_stderr=true
EOF
fi
if [ "$NOIPMI" == "1" ]; then
echo -e "${GREEN}One-KVM IPMI is disabled.${NC}"
rm -r /usr/share/kvmd/extras/ipmi
else
cat >> /etc/kvmd/supervisord.conf << EOF
[program:kvmd-ipmi]
command=python -m kvmd.apps.ipmi --run
directory=/
autostart=true
autorestart=true
priority=12
stopasgroup=true
stdout_logfile=/dev/stdout
stdout_logfile_maxbytes = 0
redirect_stderr=true
EOF
fi
#OTG 初始化修改默认配置文件
if [ "$OTG" == "1" ]; then
echo -e "${GREEN}One-KVM OTG is enabled.${NC}"
@@ -38,11 +111,13 @@ stdout_logfile_maxbytes = 0
redirect_stderr=true
EOF
fi
#/dev/video0 设备优先级高于 /dev/kvmd-video
if [ -f /dev/video0 ]; then
echo -e "${GREEN}Found /dev/video0, use it as kvmd video device.${NC}"
sed -i "s/\/dev\/kvmd-video/\/dev\/video0/g" /etc/kvmd/override.yaml
fi
#设置用户账号密码
if [ ! -z "$USERNAME" ] && [ ! -z "$PASSWORD" ]; then
python -m kvmd.apps.htpasswd del admin
@@ -52,6 +127,7 @@ EOF
else
echo -e "${YELLOW} USERNAME and PASSWORD environment variables is not set, using defalut(admin/admin).${NC}"
fi
#新建 flag 标记文件
touch /etc/kvmd/.init_flag
fi

View File

@@ -25,28 +25,6 @@ stdout_logfile=/dev/stdout
stdout_logfile_maxbytes = 0
redirect_stderr=true
[program:kvmd-vnc]
command=python -m kvmd.apps.vnc --run
directory=/
autostart=true
autorestart=true
priority=11
stopasgroup=true
stdout_logfile=/dev/stdout
stdout_logfile_maxbytes = 0
redirect_stderr=true
[program:kvmd-ipmi]
command=python -m kvmd.apps.ipmi --run
directory=/
autostart=true
autorestart=true
priority=12
stopasgroup=true
stdout_logfile=/dev/stdout
stdout_logfile_maxbytes = 0
redirect_stderr=true
[program:kvmd-janus]
command=python -m kvmd.apps.janus --run
autostart=true
@@ -61,6 +39,7 @@ redirect_stderr=true
command=nginx -c /etc/kvmd/nginx/nginx.conf -g 'daemon off;user root; error_log stderr;'
autostart=true
autorestart=true
startsecs=10
priority=100
stopasgroup=true
stdout_logfile=/dev/stdout