添加了如下 Docker 环境变量:

USERNAME 用户账号
PASSWORD 用户密码
NOSSL 禁用 HTTPS,启用 HTTP
This commit is contained in:
mofeng-git 2024-09-13 23:25:19 +08:00
parent 56a591d51f
commit dffebf003e
2 changed files with 45 additions and 15 deletions

View File

@ -89,12 +89,9 @@ COPY testenv/js/* /usr/share/janus/javascript/
RUN touch /run/kvmd/ustreamer.sock /etc/kvmd/.docker_flag \
&& adduser kvmd --gecos "" --disabled-password \
&& /usr/share/kvmd/kvmd-gencert --do-the-thing \
&& /usr/share/kvmd/kvmd-gencert --do-the-thing --vnc \
&& ln -sf /usr/share/tesseract-ocr/*/tessdata /usr/share/tessdata \
&& python -m kvmd.apps.ngxmkconf /etc/kvmd/nginx/nginx.conf.mako /etc/kvmd/nginx/nginx.conf
&& ln -sf /usr/share/tesseract-ocr/*/tessdata /usr/share/tessdata
#RUN supervisord -c /etc/kvmd/supervisord.conf
#RUN bash /etc/kvmd/init.sh
EXPOSE 4430
CMD ["/etc/kvmd/init.sh"]

View File

@ -1,13 +1,27 @@
#!/bin/bash
echo "One-KVM pre-starting..."
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[0;33m'
BLUE='\033[0;34m'
NC='\033[0m'
if [ "$OTG" == "1" ]; then
echo "OTG is enabled."
if [ ! -f /etc/kvmd/.otg_flag ]; then
echo "Enable One-KVM otg config."
touch /etc/kvmd/.otg_flag
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
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
#OTG 初始化修改默认配置文件
if [ "$OTG" == "1" ]; then
echo -e "${GREEN}One-KVM OTG is enabled.${NC}"
sed -i "s/ch9329/otg/g" /etc/kvmd/override.yaml
sed -i "s/device: \/dev\/ttyUSB0//g" /etc/kvmd/override.yaml
cat >> /etc/kvmd/supervisord.conf << EOF
@ -24,15 +38,34 @@ 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
echo $PASSWORD | python -m kvmd.apps.htpasswd set -i "$USERNAME"
echo "$PASSWORD -> $USERNAME:$PASSWORD" > /etc/kvmd/vncpasswd
echo "$USERNAME:$PASSWORD -> $USERNAME:$PASSWORD" > /etc/kvmd/ipmipasswd
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
#尝试挂载 usb_gadget
if [ "$OTG" == "1" ]; then
echo "Trying OTG Port..."
if [ -d /sys/kernel/config/usb_gadget/kvmd ]; then
echo -e "\033[31m Usb_gadget kvmd exists, please reboot your host system. \033[0m"
echo -e "${RED}Usb_gadget kvmd exists, please reboot your host system. ${NC}"
exit -1
elif [ ! -d /sys/kernel/config/usb_gadget ]; then
mount -t configfs none /sys/kernel/config
fi
fi
supervisord -c /etc/kvmd/supervisord.conf
echo -e "${GREEN}One-KVM starting...${NC}"
exec supervisord -c /etc/kvmd/supervisord.conf