[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-82116":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":13,"stars30d":18,"stars90d":16,"forks30d":16,"starsTrendScore":19,"compositeScore":20,"rankGlobal":10,"rankLanguage":10,"license":21,"archived":22,"fork":22,"defaultBranch":23,"hasWiki":24,"hasPages":22,"topics":25,"createdAt":10,"pushedAt":10,"updatedAt":26,"readmeContent":27,"aiSummary":28,"trendingCount":16,"starSnapshotCount":16,"syncStatus":29,"lastSyncTime":30,"discoverSource":31},82116,"Pebble-Web","QingJ01\u002FPebble-Web","QingJ01","A small and elegant email client on the web.","https:\u002F\u002Fpebble.byebug.cn",null,"Rust",33,10,21,5,0,1,12,3,3.12,"Other",false,"master",true,[],"2026-06-12 02:04:23","# Pebble Web\n\n中文 | [English](.\u002FREADME_EN.md)\n\nPebble Web 是一个可自托管的 Web 邮件客户端，基于桌面端 [Pebble](https:\u002F\u002Fgithub.com\u002FQingJ01\u002FPebble) 改造而来，默认面向中文用户编写文档，支持 Docker 部署和浏览器访问。\n\n## 主要功能\n\n- 多账户邮件管理：收件箱、文件夹、会话、星标、归档、回收站\n- 邮件撰写：富文本、Markdown、HTML、附件、回复、转发、草稿\n- 邮件同步：支持 IMAP\u002FSMTP，后台自动同步，可配置同步间隔\n- 全文搜索：基于 Tantivy，支持常用邮件检索条件\n- 批量操作：归档、删除、标记已读\u002F未读、星标\n- 标签与看板：自定义标签、邮件任务看板、上下文备注\n- 稍后处理：邮件延后提醒和待处理列表\n- 邮件翻译：支持 DeepLX、DeepL、通用翻译服务和 LLM 翻译配置\n- 隐私保护：默认阻止远程图片，可维护可信发件人\n- 附件管理：上传暂存、下载、内联附件展示\n- 云端配置备份：通过 WebDAV 备份和恢复设置\n- 双语界面：中文和 English\n\n## 快速开始\n\n### 一键部署\n\n在已安装 Docker 和 Docker Compose 的 Linux 服务器上运行：\n\n```bash\ncurl -fsSL https:\u002F\u002Fraw.githubusercontent.com\u002FQingJ01\u002FPebble-Web\u002Fmaster\u002Fscripts\u002Fdeploy.sh | bash\n```\n\n脚本会自动拉取项目、生成 `.env`、构建镜像并启动服务。默认安装目录为 `~\u002Fpebble-web`，默认端口为 `8080`。\n\n如需自定义目录、端口或登录密码：\n\n```bash\ncurl -fsSL https:\u002F\u002Fraw.githubusercontent.com\u002FQingJ01\u002FPebble-Web\u002Fmaster\u002Fscripts\u002Fdeploy.sh | env PEBBLE_INSTALL_DIR=\u002Fopt\u002Fpebble-web PEBBLE_PORT=8080 PEBBLE_PASSWORD='change-me' bash\n```\n\n### Docker Compose\n\n推荐使用 Docker Compose 部署：\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002FQingJ01\u002FPebble-Web.git\ncd Pebble-Web\ncp .env.example .env\n```\n\n编辑 `.env`，至少设置：\n\n```env\nPEBBLE_PASSWORD=请替换为登录密码\nPEBBLE_JWT_SECRET=请替换为至少32位的随机字符串\n```\n\n启动服务：\n\n```bash\ndocker-compose up -d\n```\n\n浏览器访问：\n\n```text\nhttp:\u002F\u002Flocalhost:8080\n```\n\n### 手动构建\n\n环境要求：\n\n- Rust 1.80+\n- Node.js 20+\n- npm\n\n```bash\ncd frontend\nnpm install\nnpm run build\ncd ..\n\ncargo build --release\n```\n\n运行前设置环境变量：\n\n```bash\nexport PEBBLE_PASSWORD=your-password\nexport PEBBLE_JWT_SECRET=your-random-secret-at-least-32-chars\nexport PEBBLE_DATA_DIR=.\u002Fdata\nexport PEBBLE_STATIC_DIR=.\u002Ffrontend\u002Fdist\n\n.\u002Ftarget\u002Frelease\u002Fpebble-web\n```\n\nWindows PowerShell 示例：\n\n```powershell\n$env:PEBBLE_PASSWORD=\"your-password\"\n$env:PEBBLE_JWT_SECRET=\"your-random-secret-at-least-32-chars\"\n$env:PEBBLE_DATA_DIR=\".\u002Fdata\"\n$env:PEBBLE_STATIC_DIR=\".\u002Ffrontend\u002Fdist\"\n\n.\\target\\release\\pebble-web.exe\n```\n\n## 本地开发\n\n后端：\n\n```bash\ncargo run\n```\n\n前端：\n\n```bash\ncd frontend\nnpm install\nnpm run dev\n```\n\n开发服务器会把前端请求代理到后端服务。\n\n## 配置项\n\n| 变量 | 必填 | 默认值 | 说明 |\n| --- | --- | --- | --- |\n| `PEBBLE_PASSWORD` | 是 | 无 | Web 登录密码 |\n| `PEBBLE_JWT_SECRET` | 是 | 无 | 登录令牌签名密钥，至少 32 字符 |\n| `PEBBLE_PORT` | 否 | `8080` | 服务端口 |\n| `PEBBLE_DATA_DIR` | 否 | `\u002Fdata` | 数据目录 |\n| `PEBBLE_STATIC_DIR` | 否 | `.\u002Ffrontend\u002Fdist` | 前端静态文件目录 |\n| `PEBBLE_SYNC_INTERVAL` | 否 | `300` | 邮件同步间隔，单位秒 |\n| `PEBBLE_ENCRYPTION_KEY` | 否 | 自动生成 | 32 字节 Hex 编码加密密钥 |\n\n安全建议：\n\n- 不要使用 `.env.example` 中的占位密码和密钥。\n- 生产环境请使用 HTTPS 反向代理。\n- 请定期备份 `PEBBLE_DATA_DIR`。\n\n## 数据目录\n\n默认数据目录结构：\n\n```text\ndata\u002F\n├─ pebble.db\n├─ index\u002F\n├─ attachments\u002F\n│  └─ staging\u002F\n└─ encryption.key\n```\n\n其中：\n\n- `pebble.db` 保存账户、邮件元数据、文件夹、标签、规则等信息。\n- `index\u002F` 保存全文搜索索引。\n- `attachments\u002F` 保存附件和上传暂存文件。\n- `encryption.key` 用于本地敏感数据加密，丢失后无法解密已有凭据。\n\n## 技术栈\n\n| 模块 | 技术 |\n| --- | --- |\n| 前端 | React 19、TypeScript、Vite、Tailwind CSS、Zustand、TanStack Query |\n| 编辑器 | TipTap、Markdown 支持 |\n| 后端 | Rust、Axum、Tokio |\n| 存储 | SQLite、rusqlite |\n| 搜索 | Tantivy |\n| 邮件 | IMAP、SMTP |\n| 加密 | AES-256-GCM、Argon2、JWT |\n| 部署 | Docker、Docker Compose |\n\n## 项目结构\n\n```text\nPebble-Web\u002F\n├─ src\u002F                 # Rust Web 后端\n├─ crates\u002F              # Rust workspace 子包\n├─ frontend\u002F            # React 前端\n├─ Dockerfile\n├─ docker-compose.yml\n├─ .env.example\n├─ README.md\n├─ README_EN.md\n└─ LICENSE\n```\n\n## 友情链接\n\n- [LINUX DO](https:\u002F\u002Flinux.do\u002F) — 真诚、友善、团结、专业，共建你我引以为荣的社区\n\n## 许可协议\n\n本项目基于 [GNU Affero General Public License v3.0](.\u002FLICENSE) 开源，SPDX 标识为 `AGPL-3.0-only`。\n","Pebble Web 是一个可自托管的 Web 邮件客户端，基于桌面端 Pebble 改造而来，面向中文用户编写文档。其核心功能包括多账户邮件管理、邮件撰写（支持富文本、Markdown 和 HTML）、IMAP\u002FSMTP 邮件同步、全文搜索、批量操作、标签与看板、稍后处理提醒以及邮件翻译等。技术上，Pebble Web 使用 Rust 语言构建后端服务，前端采用 React 和 TypeScript，支持 Docker 部署和浏览器访问。该项目适合需要高度隐私保护和个人数据控制的个人或小型团队使用，尤其是偏好自托管解决方案的用户。",2,"2026-06-11 04:07:48","CREATED_QUERY"]