扎哈维烟囱
Zahaawii stack是一个结合博客/社交媒体的全栈平台 基于RAG的AI聊天机器人应用程序。
该系统将传统的web架构(Spring+MySQL)与 通过MCP服务器进行基于矢量的AI检索和受控工具访问。
此存储库包含所有服务、基础架构配置和 结构化单存储库中的CI/CD管道。
______________________________________________________________________
概述
该平台由以下组件组成:
- 博客后端 ---Spring Boot REST API
- 博客前端 ---普通JavaScript客户端
- 个人聊天机器人 ---Node.js(Express)RAG聊天机器人
- MCP服务器 ---基于Spring的模型上下文协议服务器
- 数据库 ---MySQL
聊天机器人旨在:
- 仅当矢量中存在相关数据时才回答问题
数据库
- 检索博客内容
- 通过受控访问创建博客文章
- 严格在定义的检索约束内操作
所有服务都是容器化的,并通过Docker Compose进行部署。图像 通过以下方式构建并发布到GitHub容器注册表(GHCR) GitHub操作工作流。
______________________________________________________________________
建筑
高级设计
客户端\ |\ Apache(反向代理)\ |\ -------------------------------------------------\ 博客后端(春季)---/api\ 节点后端(Express)---/Node\ MCP服务器(Spring)---/MCP\ -------------------------------------------------\ |\ MySQL+矢量数据库
建筑原则
- Apache处理公共流量和TLS终止。
- 所有容器仅绑定到127.0.0.1。
- 没有集装箱港口公开。
- 服务器从不构建应用程序代码。
- 部署使用不可变的容器映像。
- 使用单独的VM在同一VM上并行运行暂存和生产
Docker编写项目和端口。
______________________________________________________________________
仓库结构
扎哈维烟囱/
应用程序/\\
- 博客后端/\\
- 博客前端/\\
- 个人聊天机器人/\\
- mcp服务器/
红外线/\\
- 作曲/\\
- docker-composite.prod.yml\\
- docker-compose.staging.yml\\
- 脚本/\\
- deploy.sh
.github/\\
- 工作流/\\
- release.yml
______________________________________________________________________
技术栈
后端
- Java
- Spring Boot
- 框架
- JPA/JDBC
- MySQL
前端
- 普通JavaScript
- 超文本标记语言
- 层叠样式表
AI/RAG
- Node.js(Express)
- 矢量数据库集成
- 模型上下文协议(MCP)
基础设施
- 码头工人
- Docker Compose
- 服务器
- GitHub操作
- GitHub容器注册表(GHCR)
- Linux虚拟机
______________________________________________________________________
环境
生产
- 由推动触发
main - 使用GHCR
:prod图像标记 - 绑定到固定的本地主机端口
- 通过Apache路由的公共流量
暂存
- 由推动触发
develop - 使用GHCR
:staging图像标记 - 在单独的本地主机端口上并行运行
这两个环境在同一虚拟机上同时运行,使用 单独的Docker Compose项目。
______________________________________________________________________
CI/CD管道
构建和发布流程
推至 develop:-构建所有服务映像-标记为 :staging 和 :sha- -推送到GHCR-部署到登台
推至 main:-构建所有服务映像-标记为 :prod 和 :sha- -推送到GHCR-部署到生产环境
部署包括:
- docker编写拉取
- docker组成-up-d
图像是不可变的,并且有版本控制。
______________________________________________________________________
本地开发
需求
- 码头工人
- Docker Compose
- Java(用于Spring服务)
- Node.js(如果在Docker之外运行,则用于聊天机器人)
- MySQL(如果不使用容器化数据库)
跑
docker compose-f infra/compose/docker-compose.staging.yml up--build
______________________________________________________________________
环境变量
环境变量未提交到存储库。
服务器结构:
/opt/zahaawii堆栈/prod/.env\ /opt/zahaawii堆栈/暂存/.env
典型变量:
- 数据库凭据
- API密钥
- 矢量数据库配置
- 应用程序机密
- GHCR认证(服务器端)
______________________________________________________________________
安全注意事项
- 容器仅绑定到127.0.0.1
- Apache管理TLS终止
- Git中没有存储任何秘密
- 单独的暂存和生产端口
- 通过GHCR进行严格的图像版本控制
- 通过RAG过滤和MCP执行控制AI范围
______________________________________________________________________
项目上下文
Zahaawii stack是一个专注于个人和学术项目的开发项目 日期:
- 全栈架构
- 传统web系统中的AI集成
- CI/CD自动化
- 容器化部署策略
- 安全的反向代理路由
______________________________________________________________________
许可证
个人和学术项目。
