feat: 增强初始化脚本功能

- 支持只设置WEB密码而保持admin用户名
- 添加视频格式参数设置支持(VIDEOFORMAT)
- 新增HTTP/HTTPS端口配置功能
- 修复依赖包管理和视频格式变量名错误
This commit is contained in:
mofeng-git 2025-08-25 21:13:16 +08:00
parent ecc27c2be7
commit b94cc14e2a
2 changed files with 28 additions and 3 deletions

View File

@ -45,6 +45,8 @@ RUN sed -i 's/deb.debian.org/mirrors.tuna.tsinghua.edu.cn/' /etc/apt/sources.lis
libwebsockets17 \
libnss3 \
libasound2 \
libdrm2 \
libx264-164 \
nano \
unzip \
&& if [ ${TARGETARCH} != arm64 ]; then \
@ -63,7 +65,6 @@ RUN sed -i 's/deb.debian.org/mirrors.tuna.tsinghua.edu.cn/' /etc/apt/sources.lis
libva2 \
libva-drm2 \
libva-x11-2 \
libdrm2 \
mesa-va-drivers \
mesa-vdpau-drivers \
intel-media-va-driver \

View File

@ -71,6 +71,7 @@ if [ ! -f /etc/kvmd/.init_flag ]; then
# 设置用户名和密码
if [ ! -z "$USERNAME" ] && [ ! -z "$PASSWORD" ]; then
# 设置自定义用户名和密码
if python -m kvmd.apps.htpasswd del admin \
&& echo "$PASSWORD" | python -m kvmd.apps.htpasswd set -i "$USERNAME" \
&& echo "$PASSWORD -> $USERNAME:$PASSWORD" > /etc/kvmd/vncpasswd \
@ -80,6 +81,16 @@ if [ ! -f /etc/kvmd/.init_flag ]; then
log_error "用户凭据设置失败"
exit 1
fi
elif [ ! -z "$PASSWORD" ] && [ -z "$USERNAME" ]; then
# 只设置密码保持admin用户名
if echo "$PASSWORD" | python -m kvmd.apps.htpasswd set -i "admin" \
&& echo "$PASSWORD -> admin:$PASSWORD" > /etc/kvmd/vncpasswd \
&& echo "admin:$PASSWORD -> admin:$PASSWORD" > /etc/kvmd/ipmipasswd; then
log_info "admin 用户密码设置成功"
else
log_error "admin 用户密码设置失败"
exit 1
fi
else
log_warn "未设置 USERNAME 和 PASSWORD 环境变量,使用默认值(admin/admin)"
fi
@ -210,8 +221,8 @@ EOF
fi
if [ ! -z "$VIDEOFORMAT" ]; then
if sed -i "s/format=mjpeg/format=$VIDFORMAT/g" /etc/kvmd/override.yaml; then
log_info "视频输入格式已设置为 $VIDFORMAT"
if sed -i "s/format=mjpeg/format=$VIDEOFORMAT/g" /etc/kvmd/override.yaml; then
log_info "视频输入格式已设置为 $VIDEOFORMAT"
fi
fi
@ -221,6 +232,19 @@ EOF
fi
fi
# 设置WEB端口
if [ ! -z "$HTTPPORT" ]; then
if sed -i "s/port: 8080/port: $HTTPPORT/g" /etc/kvmd/override.yaml; then
log_info "HTTP 端口已设置为 $HTTPPORT"
fi
fi
if [ ! -z "$HTTPSPORT" ]; then
if sed -i "s/port: 4430/port: $HTTPSPORT/g" /etc/kvmd/override.yaml; then
log_info "HTTPS 端口已设置为 $HTTPSPORT"
fi
fi
touch /etc/kvmd/.init_flag
log_info "初始化配置完成"