113 lines
4.0 KiB
Markdown
113 lines
4.0 KiB
Markdown
# 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 数据库
|
||
|
||
### 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 up -d --build
|
||
```
|
||
> 此时应用的全局运行日志将自动映射并写入由于宿主机的 `/root/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 执行秒级增量部署及无缝重启。
|