初始化

This commit is contained in:
zg
2026-07-15 16:08:17 +08:00
parent f0d70aded4
commit 4e0057ece5
89 changed files with 13512 additions and 0 deletions

View File

@@ -0,0 +1,104 @@
---
name: session-20260623-1
description: 2026-06-23 第1次会话 — MoKeeText 项目从零搭建到 Docker 部署
metadata:
type: session
date: 2026-06-23
sessionNumber: 1
startTime: 2026-06-23T14:00:00+08:00
---
# 2026-06-23 第1次会话
## 会话摘要
从零搭建 Web 记事本 MoKeeText包含笔记编辑器Tiptap 增强型、网站账号密码管理、智能导入。技术栈FastAPI + Vue 3 + Vite + MySQL。已部署到生产服务器 Docker。
## 关键决策
### 技术选型
- **做了什么**: 选择 FastAPI + Vue3 + MySQL放弃纯 Jinja2 模板方案
- **原因**: Vue 组件化更适合复杂交互FastAPI 轻量够用
- **结果**: 前后端分离,前端 Vite 构建静态文件,后端纯 API
### 编辑器选型
- **做了什么**: 使用 Tiptap 增强型编辑器
- **原因**: 支持文字颜色、图片粘贴上传、表格、表情,飞书级别体验
- **结果**: Tiptap 通过 esbuild 打包成本地文件(~460KB无需 CDN
### 图片存储
- **做了什么**: 图片存入 MySQL `uploads` 表的 LONGBLOB 字段,不存文件系统
- **原因**: 部署简单,备份只要导出数据库
- **结果**: 上传 API 返回 `/api/file/{id}`,支持 20MB 以内的图片
### 部署架构
- **做了什么**: Docker Compose 部署,前端 Nginx :3006后端 FastAPI :4006
- **原因**: 生产环境标准化
- **结果**: 前端不代理 APIVue 直接跨域请求后端 `https://mokeetext.server.zgitm.com`
## 代码结构
```
mokeeText/
├── app.py # FastAPI 入口 + CORS
├── models.py # 6个模型Folder/Note/Tag/Website/Account/Upload
├── routes/
│ ├── notes.py # 笔记 CRUD + 分享 + 移动
│ ├── websites.py # 网站/账号/文件夹 CRUD + 排序
│ ├── import_api.py # 智能导入解析
│ ├── upload.py # 图片上传/读取存DB
│ └── share.py # 分享公开查看页
├── src/ # Vue 3 源码
│ ├── App.vue # 左导航 + 顶栏 + 底栏
│ ├── views/
│ │ ├── NotesView.vue # 笔记文档列表 + 编辑器
│ │ ├── WebsitesView.vue # 网站管理 + 弹窗
│ │ └── SharesView.vue # 分享管理
│ └── components/
│ ├── NoteEditor.vue # Tiptap 编辑器(图片粘贴/拖拽/预览)
│ ├── Modal.vue # 通用弹窗
│ ├── ConfirmModal.vue # 确认弹窗
│ └── PromptModal.vue # 输入弹窗
├── static/dist/ # Vue 构建产物
├── nginx.conf # 前端 Nginx 配置(纯静态,无代理)
├── Dockerfile # 后端镜像
├── Dockerfile.frontend # 前端镜像
└── docker-compose.yml # 编排
```
## 数据库MySQL 10.20.1.122:3306/mokeetext
- 用户mokeetext / mokee.
- 所有表均有 `created_by` / `updated_by` 字段(默认 admin
- `notes.share_token` + `share_expires_at` 支持分享链接有效期
- `accounts.sort_order` 支持账号排序
## 生产环境
- 服务器101.132.183.138 root/mokee2016.
- 项目目录:/data/mokee/mokeetext
- 前端https://mokeetext.zgitm.com (:3006)
- 后端https://mokeetext.server.zgitm.com (:4006)
- 日志:/data/mokee/mokeetext/logs按天轮转保留30天
- ICP备案湘ICP备19021539号
## UI 特性
- 左侧可收起导航(展开"mokee编辑器",收起"M"
- 笔记页文件夹侧边栏可收起
- 分享链接支持 7天/30天/1年/永久 四种有效期
- 图片点击全屏预览(带关闭按钮)
- Ctrl+S 保存toast 提示
- 弹窗全部 Vue 组件(非浏览器 alert/confirm
- 移动端响应式适配768px 断点)
## 最新改动UI 优化)
- 文件夹用圆点替代 emoji胶囊数量标签
- 左侧导航选中项蓝色左边框指示器
- "mokee编辑器"品牌名(收起显示 M
- 文件夹侧边栏可收起
- 分享页卡片宽度 1100px超宽滚动
- 图片上传存 DB + 粘贴/拖拽自动上传 + 点击预览带关闭按钮
- 前端不代理,直接跨域调后端
- 后端 CORS 已开
- 全站响应式768px 断点)
## 待处理
- [ ] favicon.ico 前端图标
- [ ] mokeetext.server.zgitm.com 反向代理配置(运维处理)
- [ ] 后续可加用户登录/权限系统