mirror of
https://github.com/NapNeko/NapCat-Docker.git
synced 2025-12-18 22:06:41 +08:00
73 lines
1.7 KiB
Bash
73 lines
1.7 KiB
Bash
#!/bin/bash
|
|
|
|
# 安装 napcat
|
|
if [ ! -f "napcat/napcat.mjs" ]; then
|
|
unzip -q NapCat.Shell.zip -d ./NapCat.Shell
|
|
cp -rf NapCat.Shell/* napcat/
|
|
rm -rf ./NapCat.Shell
|
|
fi
|
|
if [ ! -f "napcat/config/napcat.json" ]; then
|
|
unzip -q NapCat.Shell.zip -d ./NapCat.Shell
|
|
cp -rf NapCat.Shell/config/* napcat/config/
|
|
rm -rf ./NapCat.Shell
|
|
fi
|
|
|
|
# 配置 WebUI Token
|
|
CONFIG_PATH=/app/napcat/config/webui.json
|
|
|
|
if [ ! -f "${CONFIG_PATH}" ] && [ -n "${WEBUI_TOKEN}" ]; then
|
|
echo "正在配置 WebUI Token..."
|
|
cat > "${CONFIG_PATH}" << EOF
|
|
{
|
|
"host": "0.0.0.0",
|
|
"prefix": "${WEBUI_PREFIX}",
|
|
"port": 6099,
|
|
"token": "${WEBUI_TOKEN}",
|
|
"loginRate": 3
|
|
}
|
|
EOF
|
|
fi
|
|
|
|
# 删除字符串两端的引号
|
|
remove_quotes() {
|
|
local str="$1"
|
|
local first_char="${str:0:1}"
|
|
local last_char="${str: -1}"
|
|
|
|
if [[ ($first_char == '"' && $last_char == '"') || ($first_char == "'" && $last_char == "'") ]]; then
|
|
# 两端都是双引号
|
|
if [[ $first_char == '"' ]]; then
|
|
str="${str:1:-1}"
|
|
# 两端都是单引号
|
|
else
|
|
str="${str:1:-1}"
|
|
fi
|
|
fi
|
|
echo "$str"
|
|
}
|
|
|
|
if [ -n "${MODE}" ]; then
|
|
cp /app/templates/$MODE.json /app/napcat/config/onebot11.json
|
|
fi
|
|
|
|
rm -rf "/tmp/.X1-lock"
|
|
|
|
: ${NAPCAT_GID:=0}
|
|
: ${NAPCAT_UID:=0}
|
|
usermod -o -u ${NAPCAT_UID} napcat
|
|
groupmod -o -g ${NAPCAT_GID} napcat
|
|
usermod -g ${NAPCAT_GID} napcat
|
|
chown -R ${NAPCAT_UID}:${NAPCAT_GID} /app
|
|
|
|
gosu napcat Xvfb :1 -screen 0 1080x760x16 +extension GLX +render > /dev/null 2>&1 &
|
|
sleep 2
|
|
|
|
export FFMPEG_PATH=/usr/bin/ffmpeg
|
|
export DISPLAY=:1
|
|
cd /app/napcat
|
|
if [ -n "${ACCOUNT}" ]; then
|
|
gosu napcat /opt/QQ/qq --no-sandbox -q $ACCOUNT
|
|
else
|
|
gosu napcat /opt/QQ/qq --no-sandbox
|
|
fi
|