# InsightReply 🚀 InsightReply 是一款专为独立开发者与数字游民设计的 **AI 驱动 X (Twitter) 自动化营销套件**。 它通过高可用爬虫监控社媒热点,利用大语言模型(如 Gemini、OpenAI)提取互动风格,并自动在浏览器拓展层或管理后台生成极具转化率的爆款回复。 --- ## 🗂️ 核心架构 InsightReply 采用现代化解耦的三端架构: 1. **`/server` (后端主脑)** - 核心语言:Golang 1.22 + GORM + Chi Router - 数据库:PostgreSQL 14+ - 功能模块:Nitter 高可用爬虫引擎、多模态 AI 接入层、策略派发与遥测统计引擎。 2. **`/web` (SaaS 管理控制台)** - 核心选型:Vue 3 + Vite + Tailwind 玻璃态美学 - 功能模块:数据指标大盘、策略雷达与组合词配置、生成表现记录仪表板。 3. **`/extension` (Chrome 浏览器助手)** - 核心选型:CRXJS + Vue 3 - 功能模块:侵入 X 原生界面,一键触发 AI 分析、克隆高赞评论语言风格。 --- ## 🛠️ 本地开发指南 (Local Development) ### 1. 启动 PostgreSQL 数据库 > **注意**:本项目已禁用 Go 服务自动迁移。请使用本项目支持的 MCP 服务 (`InsightReply_PostgreSQL`) 或手动执行 `docs/schema.sql` 来同步数据库结构。 ### 2. 配置与启动后端 (Go Server) ```bash cd server # 复制环境变量模板并填入真实的 Key (特别是数据库与大模型 Key) cp .env.example .env # 获取依赖并运行 go mod tidy go run cmd/server/main.go # 默认后端将运行在 http://localhost:8080 ``` ### 3. 配置与启动 Web 后台控制台 (Vue) ```bash cd web npm install # 确保 web/.env 中的 VITE_API_BASE_URL=http://localhost:8080/api/v1 # (本地环境直连,已配置完成) npm run dev # 访问 http://localhost:5173 ``` ### 4. 配置与编译 Chrome 扩展 (Extension) ```bash cd extension npm install # 确保 extension/.env 中的 VITE_API_BASE_URL=http://localhost:8080/api/v1 npm run dev ``` 打开 Chrome -> `chrome://extensions/` -> 开启「开发者模式」 -> 点击「加载已解压的扩展程序」 -> 选择 `extension/dist` 目录进入调试。 --- ## 🚀 生产部署指南 (Production Deployment) 本系统采用原生 **Docker Compose 后端 + 本地 Caddy 高性能网关反代 + 自动化 Gitea Actions CI/CD**。 ### 0. 准备与环境变量隔离 1. **对于 `/web`**:生产环境已自动配置为相对路径:`VITE_API_BASE_URL=/api/v1`。无需变动。 2. **对于 `/extension`**:修改 `extension/.env.production`,写入**你服务器真实的 Caddy HTTPS 域名绝对路径**: ```env # extension/.env.production VITE_API_BASE_URL=https://insight.buildapp.eu.org/api/v1 ``` ### 1. 服务器环境准备 服务器需提前安装 `docker`, `docker-compose`, 与 `caddy`。 ### 2. 部署后端 Docker (包含日志持久化映射) 在服务器的 `/var/admin/InsightReply/server` 目录下放置你真实的 `.env` 配置文件。随后执行启动指令,后端将在 Docker 隔离网内暴露出 `8009` 端口供本地宿主机 Caddy 本地调用。 ```bash cd /var/admin/InsightReply/server # 生产环境使用 docker compose (V2) docker compose up -d --build --remove-orphans ``` > 此时应用将以 `network_mode: host` 模式运行,全局运行日志将自动映射并写入宿主机的 `/app/logs/InsightReply.log` 内以供探查。 ### 3. Caddyfile 反向代理与 SSL 自动签发 在宿主机中编辑 `/etc/caddy/Caddyfile`,配置以下动静分离策略: ```caddyfile # 将此处替换为您的真实商用域名 insight.buildapp.eu.org { # [后端路由] 代理所有 API 请求到 Go Docker 的透传端口 handle /api/* { reverse_proxy insight.buildapp.eu.org } # [前端路由] 静态托管来自 CI/CD 发行的 Vue 3 制品,并支持 SPA 默认寻址 handle { root * /var/admin/InsightReply/web try_files {path} {path}/ /index.html file_server } } ``` 配置完成后使用 `caddy reload` 重载规则并等待几十秒完成 Let's Encrypt 等机构的安全加密证书签发。 ### 4. 配置自动化 CI/CD 所有的部署流水线配置均存放在 `.gitea/workflows` 目录下,支持推送 `main` 分支时利用 Rsync 执行秒级增量部署及无缝重启。