6b26ccb1e4e61ef18dd2df32c96b95c477977a4d
- 修复 useChat useEffect 只在挂载时执行导致的登录后无历史问题 - 暴露 reloadConversations 函数,App.tsx 登录成功后主动调用 - 添加 DEPLOY.md 生产部署文档(Nginx + PHP-FPM) 2026-05-15
Chat App
一个自托管的 LLM 聊天应用,支持多会话管理、流式响应和模型配置。
技术栈
前端
- React 19 + TypeScript + Vite
- Tailwind CSS 3.4 + shadcn/ui
- SSE 流式接收 AI 回复
后端
- PHP 8.3 + Slim 4
- SQLite 单文件数据库
- JWT 认证
功能特性
- 🖥️ 终端风格登录页
- 💬 多会话聊天管理
- ⚡ SSE 流式响应
- 🔧 模型配置面板(DeepSeek / Kimi / 自定义)
- 🔐 固定密码登录(通过
CHAT_PASSWORD环境变量) - 📱 响应式布局
快速开始
安装依赖
# 前端依赖
npm install
# 后端依赖(PHP + Composer)
cd server && composer install
开发运行
# 同时启动前端和后端
npm run dev
# 前端 http://localhost:3000
# 后端 http://localhost:8000
生产构建
# 构建前端
npm run build
# 后端无需构建,直接部署 server/ 目录即可
环境变量
| 变量 | 说明 | 默认值 |
|---|---|---|
CHAT_PASSWORD |
登录密码 | admin |
JWT_SECRET |
JWT 签名密钥 | 内置默认值 |
部署
将以下目录上传至服务器:
dist/— 前端构建产物server/— PHP 后端源码
配置 Web 服务器将 server/public/ 设为根目录,并设置 dist/ 的别名。
项目结构
chat-app/
├── src/ # 前端源码
├── server/ # PHP 后端
│ ├── public/ # Web 入口
│ └── src/ # 业务代码
├── dist/ # 前端构建产物(Git 忽略)
└── package.json
Description
Languages
TypeScript
87.1%
PHP
9.8%
CSS
1.5%
JavaScript
1.3%
HTML
0.3%