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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 literal 0 HcmV?d00001 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 @@ + + 新建项目 + + + + + + +