TreeMap
무료 오픈소스 디스크 사용량 시각화 도구로, 사각형 트리맵·중복 파일 탐색·디스크 가득 예측·정리 시 파일을 휴지통으로만 이동한다
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Open-source, self-hosted AI workspace for Web, WeChat and QQ, with multi-model chat, web search and file processing.把 AI 助手接入 Web、微信与 QQ 的开源自托管平台,支持多模型、联网搜索、文件处理和私有部署。
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
把你的 AI 助手接入微信和 QQ。 面向中文用户和小团队的开源自托管 AI 工作台,支持多模型、联网搜索、文件处理和私有部署。 PureChat(仓库名:PureChatNext)让同一个 AI 助手同时服务于 Web、微信和 QQ。你可以直接使用 在线体验 或 腾讯云备用,也可以把数据库、模型密钥、文件和聊天记录完整部署在自己的环境中。 与通用 ChatGPT Clone 相比,PureChat 优先解决中文用户的三个具体问题: • 聊天入口不必迁移:通过微信和 QQ Channel Gateway,在已有通讯工具中直接使用 AI • 数据与成本可控:支持自托管、自备模型 API Key、免费额度账本与用量明细 • 能力可以组合:多模型、联网搜索、文件解析、Agent 和消息渠道共用一套工作台 • 前端:Vite + React Router SPA,开发时运行在 5174 端口 • 服务端:Next.js 16 BFF,负责 API、认证和生产环境的 SPA HTML 壳 • 数据层:PostgreSQL + Drizzle ORM,可使用 Supabase、Neon 或本地 Docker • AI 能力:Vercel AI SDK,支持 OpenAI、DeepSeek、PureChat / AI Gateway 等 ProviderREADME 전문 보기 ↗
把你的 AI 助手接入微信和 QQ。
面向中文用户和小团队的开源自托管 AI 工作台,支持多模型、联网搜索、文件处理和私有部署。
在线体验(正式主站) · Vercel 备用站(功能受限) · Vercel 部署(Gateway 功能受限) · Docker 自托管 · 文档站 · 讨论区
PureChat(仓库名:PureChatNext)让同一个 AI 助手同时服务于 Web、微信和 QQ。你可以先使用正式主站,也可以在主备共享数据库、密钥和必要依赖的前提下使用 Vercel 备用站;也可把数据库、模型密钥、文件和聊天记录完整部署在自己的环境中。Vercel 备用站不运行持久 Channel Gateway,因此不支持微信持久连接、QQ 扫码或 WebSocket,仅支持 QQ Webhook。
与通用 ChatGPT Clone 相比,PureChat 优先解决中文用户的三个具体问题:
技术栈:
5174 端口生产环境以单个 Next.js 项目部署,SPA 静态资源与 API 共用同一域名。
flowchart LR
WeChat[微信] --> Gateway[Channel Gateway]
QQ[QQ] --> Gateway
Web[Web SPA] --> Next[Next.js BFF]
Gateway --> Next
Next --> PG[(PostgreSQL)]
Next --> LLM[OpenAI / DeepSeek / Gateway]
在微信或 QQ 里扫码绑定后,即可私聊或群内 @ 助手,不必再打开单独的网页。
/agents、/new、/stop、/help 等会话指令认证与邮件配置见 邮箱服务与验证。
详细配置见 联网搜索与爬虫。
项目使用 pnpm workspace,将共享能力拆分为 @pure/* 包,便于复用、测试和独立演进。核心包包括环境变量、数据库、模型目录、文件加载、网页爬虫、SSRF 安全请求和聊天渠道适配器。
git clone https://github.com/Hyk260/PureChatNext.git
cd PureChatNext
pnpm install
cp .env.example .env.local
编辑 .env.local,至少准备:
# 本地必须指向 SPA 端口;CORS 默认允许该地址,不必再配相同的 ALLOWED_ORIGINS
APP_URL=http://localhost:5174
# 数据库(云数据库也可以)
DATABASE_DRIVER=neon
DATABASE_URL=postgresql://user:password@host:5432/database
# 生成方式见 .env.example
KEY_VAULTS_SECRET=your-random-secret
AUTH_SECRET=your-random-secret
JWKS_KEY='{"keys":[...]}'
# 至少配置一个可用的模型 Provider
OPENAI_API_KEY=your-api-key
密钥生成和完整变量说明见 .env.example 与 环境变量配置。
pnpm db:migrate
# 推荐:并发启动 Next API / BFF(3000)与 Vite SPA(5174)
pnpm dev
打开 http://localhost:5174。3000 端口只提供 API / BFF,不是开发时的主 UI 入口。
如果需要使用 Alt+Shift 点击页面元素跳转源码:
pnpm dev:inspect
也可以分开启动:
pnpm dev:next # Next API / BFF → http://localhost:3000
pnpm dev:spa # Vite SPA → http://localhost:5174
安装 Docker Desktop 后,可以一次启动 PostgreSQL、Redis、RustFS 和 SearXNG:
pnpm docker:setup:dev
pnpm dev:docker
pnpm db:migrate
pnpm dev
本地 Docker 连接信息会写入 docker-compose/dev/.env,并可按需同步到 .env.local。日常停止和重置:
pnpm dev:docker:down # 停止,保留数据卷
pnpm dev:docker:reset # 确认后删除开发数据并重建
点击下方按钮克隆并创建 Vercel 项目,然后按环境变量文档补齐数据库、认证与模型配置:
项目按单个 Next.js 项目部署,仓库已包含 vercel.json。配置以下内容后即可上线:
pnpm installpnpm build:vercel(先迁移数据库再构建;vercel.json 已写入)APP_URL 和模型 Provider 密钥ALLOWED_ORIGINS;有额外前端域名时再设置,不要使用 *DATABASE_URL(及云托管时的 DATABASE_DRIVER=neon)勾选到 Production / Preview 的 Build,不要设成仅 Runtime构建流程为迁移 → build:spa → 复制 SPA 产物 → next build。迁移失败则部署失败。部署后的静态资源位于 /_spa/**,未匹配的 UI 路径会回退到 SPA HTML 壳。
pnpm docker:setup:deploy
# 修改 docker-compose/deploy/.env 后,一条命令构建并启动
pnpm docker:deploy
首次生成配置后,请修改正式域名和模型密钥。生产 Compose 会在应用启动前自动执行数据库迁移,健康检查地址为 /api/health。
云服务器在线安装(拉 GHCR,无需本机打包):
curl -fsSL https://raw.githubusercontent.com/Hyk260/PureChatNext/main/docker-compose/deploy/install-online.sh \
| sudo APP_URL=https://chat.example.com bash
不便拉镜像时,改用离线包:
# 首次安装
pnpm docker:pack
pnpm docker:upload -- --install --app-url https://chat.example.com # 首次
# 日后升级(自动重新打包并上传)
pnpm docker:pack:upgrade
完整说明见 Docker 自托管。云服务器与 1Panel 见 云服务器部署。
环境变量由 packages/env 统一校验。常用配置如下:
| 变量 | 用途 | 说明 |
|---|---|---|
APP_URL | 当前部署的对外地址 | 本地使用 http://localhost:5174;主站为 https://app.purechat.cn,Vercel 备用站使用 https://next.purechat.cn;CORS 默认允许该地址 |
SITE_CANONICAL_URL | 公开页面的 SEO 主域 | 可选;备用站设置为 https://app.purechat.cn,认证回调仍由 APP_URL 决定 |
ALLOWED_ORIGINS | CORS 额外来源 | 可选;省略时使用 APP_URL。不要使用 * |
DATABASE_DRIVER | 数据库连接模式 | 云数据库使用 neon;本地 / Docker PostgreSQL 使用 node |
DATABASE_URL | PostgreSQL 连接字符串 | Supabase、Neon 或本地 PostgreSQL 均可 |
KEY_VAULTS_SECRET | 敏感配置加密密钥 | 渠道凭证与用户服务商密钥;使用随机高强度密钥 |
AUTH_SECRET / JWKS_KEY | 认证与 JWT 密钥 | 生成方式见 .env.example |
OPENAI_API_KEY / DEEPSEEK_API_KEY | 模型 Provider 密钥 | 网页聊天可选兜底;微信 / QQ 需在设置页保存用户密钥 |
SEARCH_PROVIDERS / CRAWLER_IMPLS | 搜索与爬虫链 | 不需要联网搜索时可以不配置 |
REDIS_URL | 缓存与队列 | 使用 Docker 或托管 Redis 时配置 |
S3_* | 文件对象存储 | 使用 RustFS、MinIO、S3 等兼容服务时配置 |
完整变量列表、认证、邮件、对象存储和联网搜索配置请查看 环境变量详解。
PureChatNext/
├── apps/
│ ├── desktop/ # Electron 桌面应用
│ └── docs/ # 独立 Next.js + Fumadocs 文档站
├── packages/ # @pure/* 工作区包
│ ├── database/ # Drizzle Schema、Model 与迁移
│ ├── env/ # 环境变量校验
│ ├── model-bank/ # 模型目录与定价
│ ├── file-loaders/ # PDF、DOCX、PPTX、Excel 等文档加载
│ ├── web-crawler/ # 网页爬虫实现
│ └── chat-adapter/ # QQ / 微信渠道适配器
├── src/
│ ├── spa/ # Vite SPA 入口与 Router
│ ├── features/ # 业务 UI
│ ├── app/api/ # Next API 路由
│ ├── server/ # 服务端业务与搜索聚合
│ ├── libs/ # 认证、中间件与工具
│ └── components/ # 通用 React 组件
├── docs/ # 文档站与 GitHub 共用的公开 Markdown 内容源
└── scripts/ # 开发、构建、迁移与 Docker 脚本
# 开发
pnpm dev
pnpm dev:inspect
pnpm dev:next
pnpm dev:spa
pnpm dev:docs
# 构建与运行
pnpm build
pnpm build:docs
pnpm start
# 数据库
pnpm db:check
pnpm db:generate
pnpm db:migrate
pnpm db:studio
# 质量检查与测试
pnpm lint
pnpm exec vitest run --silent='passed-only'
# Docker
pnpm docker:validate
pnpm docker:deploy
pnpm dev:docker
pnpm dev:docker:down
| 文档 | 内容 |
|---|---|
| 公开文档站 | 可搜索的正式文档、目录和页面导航 |
| 文档索引 | 全部公开文档与维护规范 |
| 快速开始 | 云数据库与本地开发配置 |
| 开发指南 | 数据库、质量检查与样式约定 |
| 自托管指南 | 部署、基础设施、功能与消息渠道 |
| 开发约定 | AI Agent 与项目开发指南 |
欢迎提交 Issue、参与 Discussion 或发起 Pull Request。开始前请阅读 贡献指南 与 安全政策。提交前请运行:
pnpm lint
pnpm exec vitest run --silent='passed-only'
如果修改了环境变量,请同步更新 packages/env 和 .env.example,并补充对应文档。
本项目基于 MIT License 开源。
Copyright © 2025–2026 Hyk260.