博客社交AI聊天平台

Zahaawii-stack是一个结合博客/社交媒体应用与基于RAG的AI聊天机器人的全栈平台,适用于个人和学术项目。

  • by Zahaawii
  • JavaScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 Zahaawii/Zahaawii-stack

使用说明

扎哈维烟囱

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-<commit> -推送到GHCR-部署到登台

推至 main:-构建所有服务映像-标记为 :prod 和 :sha-<commit> -推送到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自动化
  • 容器化部署策略
  • 安全的反向代理路由

许可证

个人和学术项目。