# 工作台 **Repository Path**: laixideng/workbench ## Basic Information - **Project Name**: 工作台 - **Description**: 一个个人工作台 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-31 - **Last Updated**: 2026-09-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 来熄灯的工作台 一个为私人使用设计的淡紫色任务、日记与回顾工作台,可在电脑和手机浏览器中使用。 ## 主要功能 - 持久任务:完成后继续保留,随时可以再做一次。 - 周期任务:按照每天、每周等周期重复出现。 - 一次性任务:完成后自动归档。 - 完成记录:每次打勾都会保存具体完成时间。 - 日记本:记录每天做过的事情,未来日期不能提前写日记。 - 历史回顾:提供日、周、月三种视图,并按完成数量显示不同深度的颜色。 - 私人锁屏:使用六位数字键盘解锁;本设备当天成功解锁后,刷新或重开浏览器无需重复输入。 - 数据同步:后端通过 SQLite 保存任务、完成记录和日记,供不同设备同步使用。 - 响应式界面:适配电脑和手机,手机端使用可收起的右侧导航栏。 ## 技术结构 - 前端:React 19、Vite - 后端:Node.js HTTP Server - 数据库:SQLite - 生产运行:PM2 - 反向代理:Nginx 项目不依赖 Docker,也不需要单独安装 MySQL。 ## 环境要求 - Node.js `>= 22.13.0` - npm ## 本地运行 ### 1. 安装依赖 ```bash npm install ``` ### 2. 配置环境变量 ```powershell Copy-Item .env.example .env ``` 至少设置: ```env WORKSPACE_PASSWORD=请设置你的六位工作台密码 SESSION_SECRET=请设置至少32个字符的随机字符串 PUBLIC_ORIGIN=http://localhost:5177 COOKIE_SECURE=false ``` 真实密码和其他密钥只应写入本机或服务器的 `.env`,不要提交到 Git。 ### 3. 启动后端 ```bash npm run api ``` 后端默认监听 `http://127.0.0.1:8787`。 ### 4. 启动网页 ```bash npm run dev -- --host 127.0.0.1 --port 5177 ``` 访问 `http://localhost:5177/`。所有工作台页面都会先经过锁屏保护。 ## 锁屏说明 - 工作台只显示六位数字键盘,不显示普通密码输入框。 - 服务端通过 `WORKSPACE_PASSWORD` 验证密码,前端不会把正确密码写进页面文字或日志。 - 成功解锁后,本设备在 `localStorage` 的 `workspace_unlocked_date` 中仅保存当天本地日期,不保存密码。 - 日期变化、主动点击“锁定工作台”或页面恢复时发现日期失效,都会重新进入锁屏。 - 前端日期标记用于当天免重复输入和轻量隐私遮挡;真正部署时仍应启用后端、HTTPS 和安全的 `SESSION_SECRET`。 ## 常用命令 ```bash npm run dev npm run api npm run lint npm run build npm run start npm run api:backup ``` ## 数据与安全 - 本地数据库默认位于 `data/workbench.sqlite`。 - 数据库备份默认保存到 `backups/`。 - `.env`、数据库、备份、日志、密钥、`node_modules` 和构建缓存均应由 `.gitignore` 排除。 - `.env.example` 只能保留示例值,不能填写真实密码或会话密钥。 ## 项目目录 ```text app/ 前端页面、锁屏、任务、日记、历史与同步逻辑 server/ 解锁、数据同步和 SQLite 接口 deploy/ Nginx 与服务器部署配置 data/ 本地数据库(不提交到 Git) backups/ 数据库备份(不提交到 Git) ecosystem.config.cjs PM2 进程配置 .env.example 环境变量示例 ``` ## 服务器部署 当前方案适用于 OpenCloudOS、CentOS、RHEL 类 Linux,使用 Node.js、PM2 和 Nginx。详细步骤见 [`deploy/README.md`](deploy/README.md)。 ## Git 仓库 Gitee:https://gitee.com/laixideng/workbench