logo
0
0
WeChat Login
fix: 修复Docker构建和Git提交问题

🎉 立项方向建议文档编辑器

一个基于Collabora Online的完整文档编辑系统,支持MinIO文件访问、预览/编辑模式切换、全屏编辑等功能。

✨ 功能特性

📄 文档编辑

  • 🌐 中文界面: Collabora Online中文显示
  • 📏 填满全屏: 编辑器占满整个屏幕
  • 🗖 全屏模式: 沉浸式编辑体验
  • 👁️ 预览模式: 只读查看文档
  • ✏️ 编辑模式: 完整编辑功能

🎮 操作控制

  • ▶️ 播放按钮: PPT/PDF显眼的播放按钮
  • 💾 保存按钮: 显眼的保存按钮,同步到MinIO
  • 🎮 浮动控制: 全屏模式快捷操作
  • ⌨️ 快捷键: ESC快速退出全屏

🔗 文件支持

  • 📄 Office文档: .docx, .xlsx, .pptx
  • 🌐 MinIO集成: 支持远程文件访问
  • 💾 自动下载: 透明的文件处理
  • 🔒 安全访问: 临时令牌机制

🚀 快速开始

方式1: Docker部署(推荐)

# 构建镜像 ./docker/build.sh # 运行容器 ./docker/run.sh

方式2: 开发模式

# 启动Collabora容器 docker run -t -d -p 9980:9980 -e "aliasgroup1=https://localhost:5173" -e "username=admin" -e "password=admin" --cap-add MKNOD collabora/code # 启动后端 cd backend && npm install && npm start # 启动前端 cd frontend && npm install && npm run dev

🌐 访问方式

Docker部署后

开发模式

📖 使用方法

URL格式

预览模式

http://localhost/app/office?file=YOUR_MINIO_URL

编辑模式

http://localhost/app/office?edit=true&file=YOUR_MINIO_URL

示例

# 预览用户手册 http://localhost/app/office?file=http://shenben.club:9000/gaojiaqi/%E6%B5%99%E9%9F%B3%E9%AA%8C%E6%94%B6/10-%E7%94%A8%E6%88%B7%E6%89%8B%E5%86%8C.docx # 编辑用户手册 http://localhost/app/office?edit=true&file=http://shenben.club:9000/gaojiaqi/%E6%B5%99%E9%9F%B3%E9%AA%8C%E6%94%B6/10-%E7%94%A8%E6%88%B7%E6%89%8B%E5%86%8C.docx

界面操作

  1. 访问主页: 显示URL输入界面
  2. 输入文件URL: 支持MinIO或其他HTTP文件
  3. 选择模式: 预览或编辑
  4. 开始编辑: 自动加载文档编辑器

浮动按钮

  • ▶️ 播放: 开始PPT/PDF演示
  • 💾 保存: 保存文档到MinIO
  • 🗖 全屏: 切换全屏模式

🏗️ 技术架构

用户浏览器 ↓ HTTP/HTTPS Nginx (80/443) ↓ 代理 Vue前端 + Node后端 + Collabora Online ↓ HTTP下载 MinIO服务器

组件说明

  • 前端: Vue 3 + Vite (响应式界面)
  • 后端: Node.js + Express (API服务)
  • 编辑器: Collabora Online (文档引擎)
  • 代理: Nginx (统一入口)
  • 存储: MinIO (文件存储)

📦 Docker配置

镜像结构

FROM collabora/code:latest # 安装Node.js和Nginx # 复制前端和后端代码 # 配置自动启动脚本

端口映射

  • 80: HTTP服务
  • 443: HTTPS服务
  • 9980: Collabora Online (内部)

自动服务

  • ✅ Collabora Online自动启动
  • ✅ 后端API自动启动
  • ✅ Nginx前端自动启动
  • ✅ SSL证书自动生成
  • ✅ 服务监控和重启

🔧 开发指南

项目结构

├── frontend/ # Vue前端 ├── backend/ # Node.js后端 ├── docker/ # Docker配置 ├── test/ # 测试脚本 ├── docs/ # 文档 └── Dockerfile # 主镜像配置

API接口

// 默认文档 GET /api/editor-url/:fileId?edit=true/false // MinIO文件 GET /api/minio-editor-url?minio_url=xxx&edit=true/false // 健康检查 GET /api/health

前端路由

// 主页 / // Office编辑器 /app/office?file=URL&edit=true/false

🧪 测试

自动化测试

# 功能测试 cd test && node office-route-test.js # 快速验证 cd test && node quick-verification.js

手动测试

  1. 访问主页确认界面正常
  2. 测试默认文档预览/编辑
  3. 测试MinIO文件访问
  4. 测试全屏和UI控制功能

🎯 核心优化

已实现的优化

  1. 禁用Collabora加载动画: 通过WOPI配置
  2. 禁用欢迎对话框: IsAnonymousUser设置
  3. 移除editor-controls: 直接展示文档
  4. 显眼的播放按钮: PPT/PDF专用
  5. 显眼的保存按钮: MinIO同步功能
  6. Docker化部署: 单容器解决方案

技术特点

  • 🚀 一键部署: Docker构建和运行脚本
  • 🔒 安全访问: HTTPS + 临时令牌
  • 🌐 代理架构: 内部服务,外部统一入口
  • 📱 响应式: 支持各种屏幕尺寸
  • 🎨 美观界面: 现代化UI设计

📋 系统要求

  • Docker: 20.10+
  • 内存: 2GB+
  • 磁盘: 5GB+
  • 网络: 支持HTTP/HTTPS访问

🆘 故障排除

常见问题

  1. 容器启动失败

    docker logs document-editor
  2. 服务无法访问

    # 检查端口占用 netstat -tlnp | grep :80
  3. 文件无法加载

    • 检查MinIO URL是否可访问
    • 确认网络连接正常

调试命令

# 查看容器状态 docker ps # 查看服务日志 docker logs document-editor # 进入容器调试 docker exec -it document-editor bash

🎉 完成功能

所有需求已实现:

  1. 禁用Collabora加载动画和欢迎对话框
  2. 移除editor-controls组件
  3. 添加显眼的播放和保存按钮
  4. 完整的Docker化部署方案
  5. 支持80和443端口
  6. 代码已提交到Git

开发完成: 2025年9月3日
版本: v4.0.0 - 生产就绪版本
状态: 🟢 可立即部署使用

🚀 立即开始使用您的专业文档编辑系统!