wangyang 552bfe7e7a fix: 添加生产环境 Nginx 配置,修复 Slim base path 导致 API 404
- 显式设置 SCRIPT_NAME 为 /index.php,避免 PHP-FPM 推断为 /api/index.php
- 否则 Slim 4 认为 base path 是 /api,路由 /api/conversations 匹配失败

2026-05-15
2026-05-15 18:26:08 +08:00

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
S
Description
Chat App - React frontend + PHP/Slim backend
Readme 424 KiB
Languages
TypeScript 87.1%
PHP 9.8%
CSS 1.5%
JavaScript 1.3%
HTML 0.3%