mirror of
https://github.com/NapNeko/NapCat-Docker.git
synced 2025-12-19 06:30:12 +08:00
143 lines
3.2 KiB
Bash
143 lines
3.2 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"
|
|
}
|
|
|
|
: ${WS_ENABLE:='false'}
|
|
: ${WS_PORT:=3001}
|
|
: ${RWS_ENABLE:='false'}
|
|
: ${RWS_ADDRESS:='ws://127.0.0.1:8080/onebot/v11/ws'}
|
|
|
|
# 配置 onebot
|
|
CONFIG_PATH=/app/napcat/config/onebot11_$ACCOUNT.json
|
|
|
|
if [ ! -f "${CONFIG_PATH}" ]; then
|
|
cat > "${CONFIG_PATH}" << EOF
|
|
{
|
|
"http": {
|
|
"enable": false,
|
|
"host": "",
|
|
"port": 3000,
|
|
"secret": "",
|
|
"enableHeart": false,
|
|
"enablePost": false,
|
|
"postUrls": []
|
|
},
|
|
"ws": {
|
|
"enable": false,
|
|
"host": "",
|
|
"port": 3001
|
|
},
|
|
"reverseWs": {
|
|
"enable": false,
|
|
"urls": []
|
|
},
|
|
"GroupLocalTime": {
|
|
"Record": false,
|
|
"RecordList": []
|
|
},
|
|
"debug": false,
|
|
"heartInterval": 30000,
|
|
"messagePostFormat": "array",
|
|
"enableLocalFile2Url": true,
|
|
"musicSignUrl": "",
|
|
"reportSelfMessage": false,
|
|
"token": "",
|
|
"network": {
|
|
"httpServers": [],
|
|
"httpSseServers": [],
|
|
"httpClients": [],
|
|
"websocketServers": [
|
|
{
|
|
"enable": $(remove_quotes $WS_ENABLE),
|
|
"name": "ws",
|
|
"host": "0.0.0.0",
|
|
"port": $(remove_quotes $WS_PORT),
|
|
"reportSelfMessage": false,
|
|
"enableForcePushEvent": true,
|
|
"messagePostFormat": "array",
|
|
"token": "",
|
|
"debug": false,
|
|
"heartInterval": 30000
|
|
}
|
|
],
|
|
"websocketClients": [
|
|
{
|
|
"enable": $(remove_quotes $RWS_ENABLE),
|
|
"name": "rws",
|
|
"url": "$(remove_quotes $RWS_ADDRESS)",
|
|
"reportSelfMessage": false,
|
|
"messagePostFormat": "array",
|
|
"token": "",
|
|
"debug": false,
|
|
"heartInterval": 30000,
|
|
"reconnectInterval": 30000
|
|
}
|
|
],
|
|
"plugins": []
|
|
},
|
|
"parseMultMsg": false
|
|
}
|
|
EOF
|
|
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
|
|
gosu napcat /opt/QQ/qq --no-sandbox -q $ACCOUNT
|