From 392768d0b5c4a9be7b5f2ffcea45d6bc138b77e4 Mon Sep 17 00:00:00 2001 From: Meng Sen Date: Tue, 5 Aug 2025 12:09:43 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=91=E5=B8=83=E5=BA=94=E7=94=A8=20AstrBot?= =?UTF-8?q?=20NapCat?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Meng Sen --- apps/astrbot-napcat/4.8.95/data.yml | 78 ++++++++++++++++++ apps/astrbot-napcat/4.8.95/docker-compose.yml | 49 +++++++++++ apps/astrbot-napcat/4.8.95/envs/default.env | 2 + apps/astrbot-napcat/4.8.95/envs/global.env | 2 + apps/astrbot-napcat/4.8.95/scripts/init.sh | 17 ++++ .../4.8.95/scripts/uninstall.sh | 10 +++ apps/astrbot-napcat/4.8.95/scripts/upgrade.sh | 17 ++++ apps/astrbot-napcat/README.md | 46 +++++++++++ apps/astrbot-napcat/data.yml | 14 ++++ apps/astrbot-napcat/logo.png | Bin 0 -> 11774 bytes apps/astrbot-napcat/logo.svg | 13 +++ 11 files changed, 248 insertions(+) create mode 100644 apps/astrbot-napcat/4.8.95/data.yml create mode 100644 apps/astrbot-napcat/4.8.95/docker-compose.yml create mode 100644 apps/astrbot-napcat/4.8.95/envs/default.env create mode 100644 apps/astrbot-napcat/4.8.95/envs/global.env create mode 100644 apps/astrbot-napcat/4.8.95/scripts/init.sh create mode 100644 apps/astrbot-napcat/4.8.95/scripts/uninstall.sh create mode 100644 apps/astrbot-napcat/4.8.95/scripts/upgrade.sh create mode 100644 apps/astrbot-napcat/README.md create mode 100644 apps/astrbot-napcat/data.yml create mode 100644 apps/astrbot-napcat/logo.png create mode 100644 apps/astrbot-napcat/logo.svg diff --git a/apps/astrbot-napcat/4.8.95/data.yml b/apps/astrbot-napcat/4.8.95/data.yml new file mode 100644 index 000000000..1d39da663 --- /dev/null +++ b/apps/astrbot-napcat/4.8.95/data.yml @@ -0,0 +1,78 @@ +additionalProperties: + formFields: + - default: "/home/astrbot-napcat" + edit: true + envKey: ASTRBOT_ROOT_PATH + labelZh: 数据持久化路径 + labelEn: Data persistence path + required: true + type: text + - default: 6185 + edit: true + envKey: PANEL_APP_PORT_HTTP + labelZh: WebUI 端口 + labelEn: WebUI port + required: true + rule: paramPort + type: number + - default: 6195 + edit: true + envKey: PANEL_APP_PORT_WECOM + labelZh: 企业微信 WebHook + labelEn: WeCom WebHook + required: true + rule: paramPort + type: number + - default: 11451 + edit: true + envKey: PANEL_APP_PORT_WECHAT + labelZh: 个人微信 WebHook + labelEn: WeChat WebHook + required: true + rule: paramPort + type: number + - default: 6199 + edit: true + envKey: PANEL_APP_PORT_QQ_WH + labelZh: QQ WebHook + labelEn: QQ WebHook + required: true + rule: paramPort + type: number + - default: 6196 + edit: true + envKey: PANEL_APP_PORT_QQ_API + labelZh: QQ API + labelEn: QQ API + required: true + rule: paramPort + type: number + - default: 6099 + edit: true + envKey: PANEL_APP_PORT_NAPCAT + labelZh: NapCat 端口 + labelEn: NapCat port + required: true + rule: paramPort + type: number + - default: "02:42:ac:11:00:02" + edit: true + envKey: NAPCAT_MAC_ADDRESS + labelZh: NapCat 容器 MAC 地址 + labelEn: NapCat container MAC address + required: true + type: text + - default: 1000 + edit: true + envKey: NAPCAT_UID + labelZh: NapCat 容器 UID + labelEn: NapCat container UID + required: true + type: number + - default: 1000 + edit: true + envKey: NAPCAT_GID + labelZh: NapCat 容器 GID + labelEn: NapCat container GID + required: true + type: number diff --git a/apps/astrbot-napcat/4.8.95/docker-compose.yml b/apps/astrbot-napcat/4.8.95/docker-compose.yml new file mode 100644 index 000000000..94819a562 --- /dev/null +++ b/apps/astrbot-napcat/4.8.95/docker-compose.yml @@ -0,0 +1,49 @@ +networks: + 1panel-network: + external: true + +services: + napcat: + image: mlikiowa/napcat-docker:v4.8.95 + container_name: napcat-${CONTAINER_NAME} + restart: always + networks: + - 1panel-network + ports: + - ${PANEL_APP_PORT_NAPCAT}:6099 + mac_address: ${NAPCAT_MAC_ADDRESS:-02:42:ac:11:00:02} + env_file: + - ${GLOBAL_ENV_FILE:-/etc/1panel/envs/global.env} + - ${ENV_FILE:-/etc/1panel/envs/default.env} + volumes: + - ${ASTRBOT_ROOT_PATH}/data:/AstrBot/data + - ${ASTRBOT_ROOT_PATH}/ntqq:/app/.config/QQ + environment: + - TZ=Asia/Shanghai + - MODE=astrbot + - NAPCAT_UID=${NAPCAT_UID:-1000} + - NAPCAT_GID=${NAPCAT_GID:-1000} + astrbot: + image: soulter/astrbot:v3.5.23 + container_name: ${CONTAINER_NAME} + labels: + createdBy: "Apps" + restart: always + networks: + - 1panel-network + ports: + - ${PANEL_APP_PORT_HTTP}:6185 + - ${PANEL_APP_PORT_QQ_WH}:6199 + - ${PANEL_APP_PORT_QQ_API}:6196 + - ${PANEL_APP_PORT_WECOM}:6195 + - ${PANEL_APP_PORT_WECHAT}:11451 + env_file: + - ${GLOBAL_ENV_FILE:-/etc/1panel/envs/global.env} + - ${ENV_FILE:-/etc/1panel/envs/default.env} + volumes: + - /etc/localtime:/etc/localtime:ro + - ${ASTRBOT_ROOT_PATH}/data:/AstrBot/data + - ${ASTRBOT_ROOT_PATH}/ntqq:/app/.config/QQ + - ${ASTRBOT_ROOT_PATH}/napcat/config:/app/napcat/config + environment: + - TZ=Asia/Shanghai diff --git a/apps/astrbot-napcat/4.8.95/envs/default.env b/apps/astrbot-napcat/4.8.95/envs/default.env new file mode 100644 index 000000000..cd05f46e6 --- /dev/null +++ b/apps/astrbot-napcat/4.8.95/envs/default.env @@ -0,0 +1,2 @@ +# copyright© 2024 XinJiang Ms Studio +ENV_FILE=.env diff --git a/apps/astrbot-napcat/4.8.95/envs/global.env b/apps/astrbot-napcat/4.8.95/envs/global.env new file mode 100644 index 000000000..e10989fe4 --- /dev/null +++ b/apps/astrbot-napcat/4.8.95/envs/global.env @@ -0,0 +1,2 @@ +# copyright© 2024 XinJiang Ms Studio +TZ=Asia/Shanghai diff --git a/apps/astrbot-napcat/4.8.95/scripts/init.sh b/apps/astrbot-napcat/4.8.95/scripts/init.sh new file mode 100644 index 000000000..07fb8c3fe --- /dev/null +++ b/apps/astrbot-napcat/4.8.95/scripts/init.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +if [ -f .env ]; then + source .env + + # setup-1 add default values + CURRENT_DIR=$(pwd) + sed -i '/^ENV_FILE=/d' .env + sed -i '/^GLOBAL_ENV_FILE=/d' .env + echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env + echo "GLOBAL_ENV_FILE=${CURRENT_DIR}/envs/global.env" >> .env + + echo "Check Finish." + +else + echo "Error: .env file not found." +fi diff --git a/apps/astrbot-napcat/4.8.95/scripts/uninstall.sh b/apps/astrbot-napcat/4.8.95/scripts/uninstall.sh new file mode 100644 index 000000000..c86c4fbca --- /dev/null +++ b/apps/astrbot-napcat/4.8.95/scripts/uninstall.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +if [ -f .env ]; then + source .env + + echo "Check Finish." + +else + echo "Error: .env file not found." +fi diff --git a/apps/astrbot-napcat/4.8.95/scripts/upgrade.sh b/apps/astrbot-napcat/4.8.95/scripts/upgrade.sh new file mode 100644 index 000000000..07fb8c3fe --- /dev/null +++ b/apps/astrbot-napcat/4.8.95/scripts/upgrade.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +if [ -f .env ]; then + source .env + + # setup-1 add default values + CURRENT_DIR=$(pwd) + sed -i '/^ENV_FILE=/d' .env + sed -i '/^GLOBAL_ENV_FILE=/d' .env + echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env + echo "GLOBAL_ENV_FILE=${CURRENT_DIR}/envs/global.env" >> .env + + echo "Check Finish." + +else + echo "Error: .env file not found." +fi diff --git a/apps/astrbot-napcat/README.md b/apps/astrbot-napcat/README.md new file mode 100644 index 000000000..5647b3111 --- /dev/null +++ b/apps/astrbot-napcat/README.md @@ -0,0 +1,46 @@ +# AstrBot + +AstrBot 是一个松耦合、异步、支持多消息平台部署、具有易用的插件系统和完善的大语言模型(LLM)接入功能的聊天机器人及开发框架。 + +![AstrBot](https://file.lifebus.top/imgs/astrbot_cover.png) + +![](https://img.shields.io/badge/%E6%96%B0%E7%96%86%E8%90%8C%E6%A3%AE%E8%BD%AF%E4%BB%B6%E5%BC%80%E5%8F%91%E5%B7%A5%E4%BD%9C%E5%AE%A4-%E6%8F%90%E4%BE%9B%E6%8A%80%E6%9C%AF%E6%94%AF%E6%8C%81-blue) + +## 安装说明 + +> 默认用户名: `astrbot` +> +> 默认密码: `astrbot` + +## 特性 + +### 大语言模型对话 + +支持各种大语言模型,包括 OpenAI API、Google Gemini、Llama、Deepseek、ChatGLM 等,支持接入本地部署的大模型,通过 +Ollama、LLMTuner。具有多轮对话、人格情境、多模态能力,支持图片理解、语音转文字(Whisper)。 + +### 多消息平台接入 + +支持接入 QQ(OneBot、QQ 官方机器人平台)、QQ +频道、企业微信、微信公众号、飞书、Telegram、钉钉、Discord、KOOK、VoceChat。支持速率限制、白名单、关键词过滤、百度内容审核。 + +### Agent + +原生支持部分 Agent 能力,如代码执行器、自然语言待办、网页搜索。对接 Dify 平台,便捷接入 Dify 智能助手、知识库和 Dify +工作流。 + +### 插件扩展 + +深度优化的插件机制,支持开发插件扩展功能,极简开发。已支持安装多个插件。 + +### 可视化管理面板 + +支持可视化修改配置、插件管理、日志查看等功能,降低配置难度。集成 WebChat,可在面板上与大模型对话。 + +### 高稳定性、高模块化 + +基于事件总线和流水线的架构设计,高度模块化,低耦合。 + +--- + +![Ms Studio](https://file.lifebus.top/imgs/ms_blank_001.png) diff --git a/apps/astrbot-napcat/data.yml b/apps/astrbot-napcat/data.yml new file mode 100644 index 000000000..d8c263e21 --- /dev/null +++ b/apps/astrbot-napcat/data.yml @@ -0,0 +1,14 @@ +additionalProperties: + key: astrbot + name: AstrBot + tags: + - WebSite + - Local + shortDescZh: 多平台大模型机器人基础设施 + shortDescEn: The Multi-Platform LLM Bot Infrastructure + type: website + crossVersionUpdate: true + limit: 0 + website: https://astrbot.app/ + github: https://github.com/AstrBotDevs/AstrBot/ + document: https://astrbot.app/ diff --git a/apps/astrbot-napcat/logo.png b/apps/astrbot-napcat/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..cf9392030dcce76fd84cce44446f7dc1afbdb2fe GIT binary patch literal 11774 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 zN{x=iH9k%~Kp{Aeqbu>tN~MxhgFiI@0ANdAY5>yzKRwW-d(Fo#M|J%=GXeQDdFLO~ z`1truEq~en4*<60Z3$p{9Y8P`R8>`#Dl01$yByQl)v}35{wj0*0+UUEoSTXO)4KqwswR&JzH;TV#;;%3^5vna$G~6XGLeQNih7iA3T?lc0&Iwdv){maDpY5d%_|QmK?i z$3_*8Ur`_sm>T@k)Be*3emVdGfIWE&0MgtcAel@mnM_X22uw^&sG_1$OKNJgWXaO0 zwQ6LRN~JVDKCZE=W4d~E?50|aii(P6(Y3>k^4g%@l(_tW)Osb-yLe8R<`5uhYEYl=_nE(}%G7Fk z=61{J|D9$(0D!cD1prAm4d62e_UQxu%sc*>zgskO-~MdBW;Xa?@CN{-6*K^(%{H*l z^=tZLEt@$DAZgaSd>Z`#0A?zR03dyKHX!}`TzCCNa_I$;X+WQC@Sp8*007&HCIF;m z8sHiDXE$?DpKXetfgb=cQ_%&0>1MmMBEH;$nr)D0;0FL?Qq%!px)Qm}f?~i20JxR& z!+`w4;06GIe>i#%004ss0000OL;wH)z#swu000IN0000mhyVZpfI$QR000ak0001B z5CH%H0D}ks000<70002MAOZjY00t2N001zE0001hK?DE*01P4k003YR0RR91g9rcs z02o97006)s0ssI21`z-N05FIE004kN1ONa43?cvk0ALUS0001k2mk;87(@U70Kgyu z000065dZ)HFo*yE0DwUR0000CA^-pYU=RTS004ss0000OL;wH)z#swu000IN0000m zhyVZpfI$QR000ak0001B5CH%H0D}ks000<70002MAOZjY00t2N001zE0001hK?DE* z01P4k003YR0RR91g9rcs02o97006)s0ssI21`z-N05FIE004kN1ONa43?cvk0ALUS z0001k2mk;87(@U70Kgyu000065dZ)HFo*yE0DwUR0000CA^-pYU=RTS004ss0000O zL;wH)z#swu000IN0000mhyVZpfI$QR000ak0001B5CH%H0D}ks000<70002MAOZjY z00t2N001zE0001hK?DE*01P4k003YR0RR91g9rcs02o97006)s0ssI21`z-N05FIE z004kN1ONa43?cvk0ALUS0001k2mk;87(@U70Kgyu000065dZ)HFo*yE0DwUR0000C zA^-pYU=RTS004ss0000OL;wH)z#swu000IN0000mhyVZpfI$QR000ak0001B5CH%H z0D}ks000<70002MAOZjY00t2N001zE0001hK?DE*01P4k003YR0RR91g9rcs02o97 z006)s0ssI21`z-N05FIE004kN1ONa43?cvk0ALUS0001k2mk;87(@U70Kgyu00006 z5dZ)HFo*yE0DwUR0000CA^-pYU=RTS004ss0000OL;wH)z#swu000IN0000mhyVZp zfI$QR000ak0001B5CH%H0D}ks000<70002MAOZjY00t2N001zE0001hK?DE*01P4k z003YR0RR91g9rcs02o97006)s0ssI21`z-N05FIE004kN1ONa43?cvk0ALUS0001k z2mk;87(@U70Kgyu000065dZ)HFo*yE0DwUR0000CA^-pYU=RTS004ss0000OL;wH) zz#swu000IN0000mhyVZpfI$QR000ak0001B5CH%H0D}ks000<70002MAOZjY00t2N z001zE0001hK?DE*01P4k003YR0RR91g9rcs02o97006)s0ssI21`z-N05FIE004kN z1ONa43?cvk0ALUS0001k2mk;87(@U70Kgyu000065dZ)HFo*yE0DwUR0000CA^-pY gU=RTS004vjKQ?5CnAY1Wod5s;07*qoM6N<$f@9*XEC2ui literal 0 KcmV+b0RR6000031 diff --git a/apps/astrbot-napcat/logo.svg b/apps/astrbot-napcat/logo.svg new file mode 100644 index 000000000..76f1e0e1d --- /dev/null +++ b/apps/astrbot-napcat/logo.svg @@ -0,0 +1,13 @@ + + 新建项目 + + + + + + +