Skip to content

🚀 使用 Docker Compose 部署 Morphos 文件转换服务器

🚀 使用 Docker Compose 部署 Morphos 文件转换服务器

Morphos 是一个简单纯粹的自托管文件格式转换服务器,支持多种常见的图片和文档格式转换。通过自建 Morphos 服务,你可以完全掌控敏感文件,避免使用第三方转换服务导致隐私泄露的风险。

📖 项目简介

Morphos 是一款新兴的自托管文件格式转换解决方案,由一位后端开发人员用爱发电持续维护。

核心特性: - 多格式支持:支持图片、文档、电子书等多种格式间的相互转换 - 隐私保护:自托管架构确保你的敏感文件不会上传到第三方服务器 - 轻量简洁:界面干净直观,没有复杂设置和广告干扰 - 部署简单:基于 Docker 容器化部署,一键即可运行

支持的主要转换类型: - 图片转图片:如 JPG、PNG、WEBP 等格式互转 - 图片转文档:图片转换为 PDF 文档 - 文档转图片:PDF 等文档转换为图片格式 - 文档转文档:如 Word、PDF、EPUB 等格式间的转换

⚙️ 部署前准备

  1. 环境要求

    • 已安装 Docker 和 Docker Compose
    • 至少 1GB 可用内存
    • 足够的磁盘空间存储临时转换文件
  2. 创建目录结构

mkdir -p morphos/tmp
cd morphos

创建项目目录后,需要设置正确的权限:

chmod 777 tmp

🔧 配置 Docker Compose

  1. 创建 docker-compose.yml 文件

    将以下内容保存到 docker-compose.yml 文件中:

services:
  morphos:
    image: ghcr.io/danvergara/morphos-server:latest  # 官方最新镜像(自动更新功能)
    container_name: morphos  # 容器名称,便于管理(如停止/查看日志)
    restart: unless-stopped  # 容器退出后自动重启(除非手动停止,保障服务稳定)
    ports:
      - 3980:8080  # 端口映射:主机 3980 → 容器 8080(Web 界面访问端口)
    volumes:
      - ./tmp:/tmp  # 临时文件目录:主机 ./tmp → 容器 /tmp(必须设置 777 权限)
    environment:
      TZ: Asia/Shanghai  # 时区(确保日志和处理时间与本地一致)
      MAX_FILE_SIZE: 50M  # 最大上传文件大小限制(默认 50MB,可修改为 100M 等)
#给权限 chmod -R 777 tmp  # 设置目录权限为777,确保容器有写入权限
#请注意,777权限意味着任何用户都可读写执行,在生产环境中请根据您的安全要求谨慎设置。

  1. 关键配置说明

    • image:使用官方最新的 Morphos 服务器镜像
    • ports:将容器的 8080 端口映射到宿主机的 3980 端口,可按需修改宿主机端口
    • volumes:将容器内的 /tmp 目录映射到宿主机的 ./tmp 目录,这是转换文件的临时存储位置
    • environment
    • TZ:设置容器时区,保证时间显示正确
    • MAX_FILE_SIZE:设置允许转换的最大文件大小(默认为 50M)
    • restart: unless-stopped:容器异常退出时自动重启,确保服务高可用

🚀 启动与验证

  1. 启动服务

    docker-compose.yml 文件所在目录执行: bash docker-compose up -d 首次运行会自动从 GitHub 仓库拉取镜像。

  2. 验证部署

    • 查看容器状态bash docker-compose ps 确认状态为 Up 即表示运行正常。

    • 查看启动日志bash docker-compose logs morphos

    • 访问 Web 界面:打开浏览器,访问 http://你的服务器IP:3980

🛠️ 基础配置与使用

  1. 界面介绍

    Morphos 的 Web 界面非常简洁,主要包含: - 文件选择区域:上传需要转换的文件 - 格式选择下拉菜单:根据上传的文件类型显示可转换的目标格式 - 上传/转换按钮:开始转换过程

  2. 基础使用

    • 文件上传:点击界面中的文件选择区域,选择要转换的文件
    • 选择目标格式:系统会根据源文件类型自动显示支持的输出格式
    • 开始转换:点击 "Upload" 按钮开始转换
    • 下载结果:转换完成后点击 "Download" 下载转换后的文件
  3. 文件管理

    所有转换后的文件都会保存在之前映射的 ./tmp 目录中,你可以直接通过文件系统管理这些文件,无需每次都下载。

🔄 维护与管理

1.服务管理

  • 停止服务docker-compose down
  • 重启服务docker-compose restart
  • 更新服务
docker-compose pull
docker-compose up -d

2.数据清理 定期清理 ./tmp 目录中的临时文件,避免磁盘空间被占满:

rm -rf ./tmp/*

3.日志查看

  • 查看实时日志:docker-compose logs -f morphos
  • 查看特定时间日志:docker-compose logs --since=1h morphos

❓ 常见问题排查

  1. 容器启动失败

    • 检查端口冲突:确保宿主机的 3980 端口未被其他程序占用
    • 验证目录权限:确保 ./tmp 目录存在且具有 777 权限
    • 查看详细错误:使用 docker-compose logs morphos 查看具体错误信息
  2. 无法访问 Web 界面

    • 检查防火墙:确保服务器防火墙允许 3980 端口访问
    • 验证服务状态:确认容器正常运行:docker-compose ps
  3. 文件上传或转换失败

    • 检查文件大小:确认文件未超过 MAX_FILE_SIZE 的限制
    • 验证文件格式:确认文件格式在 Morphos 的支持范围内
    • 查看磁盘空间:确保有足够的磁盘空间进行文件转换
  4. 中文文档转换乱码

    • 目前版本在处理中文文档时可能存在字体编码问题,这是已知问题
    • 可尝试使用英文字符的文档,或等待后续版本修复
  5. 转换速度较慢

    • 检查系统资源:使用 docker stats 查看容器资源使用情况
    • 优化文件大小:过大的文件会影响转换速度,可尝试先压缩或拆分

通过以上步骤,你应该能够成功部署并运维自己的 Morphos 文件转换服务。如果在使用过程中遇到特定问题,可以查阅 Morphos 的 GitHub 项目页面获取最新信息和支持。