🚀 使用 Docker Compose 部署 Morphos 文件转换服务器
🚀 使用 Docker Compose 部署 Morphos 文件转换服务器
Morphos 是一个简单纯粹的自托管文件格式转换服务器,支持多种常见的图片和文档格式转换。通过自建 Morphos 服务,你可以完全掌控敏感文件,避免使用第三方转换服务导致隐私泄露的风险。
📖 项目简介
Morphos 是一款新兴的自托管文件格式转换解决方案,由一位后端开发人员用爱发电持续维护。
核心特性: - 多格式支持:支持图片、文档、电子书等多种格式间的相互转换 - 隐私保护:自托管架构确保你的敏感文件不会上传到第三方服务器 - 轻量简洁:界面干净直观,没有复杂设置和广告干扰 - 部署简单:基于 Docker 容器化部署,一键即可运行
支持的主要转换类型: - 图片转图片:如 JPG、PNG、WEBP 等格式互转 - 图片转文档:图片转换为 PDF 文档 - 文档转图片:PDF 等文档转换为图片格式 - 文档转文档:如 Word、PDF、EPUB 等格式间的转换
⚙️ 部署前准备
-
环境要求
- 已安装 Docker 和 Docker Compose
- 至少 1GB 可用内存
- 足够的磁盘空间存储临时转换文件
-
创建目录结构
mkdir -p morphos/tmp
cd morphos
创建项目目录后,需要设置正确的权限:
chmod 777 tmp
🔧 配置 Docker Compose
-
创建
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权限意味着任何用户都可读写执行,在生产环境中请根据您的安全要求谨慎设置。
-
关键配置说明:
image:使用官方最新的 Morphos 服务器镜像ports:将容器的 8080 端口映射到宿主机的 3980 端口,可按需修改宿主机端口volumes:将容器内的/tmp目录映射到宿主机的./tmp目录,这是转换文件的临时存储位置environment:TZ:设置容器时区,保证时间显示正确MAX_FILE_SIZE:设置允许转换的最大文件大小(默认为 50M)restart: unless-stopped:容器异常退出时自动重启,确保服务高可用
🚀 启动与验证
-
启动服务
在
docker-compose.yml文件所在目录执行:bash docker-compose up -d首次运行会自动从 GitHub 仓库拉取镜像。 -
验证部署
-
查看容器状态:
bash docker-compose ps确认状态为Up即表示运行正常。 -
查看启动日志:
bash docker-compose logs morphos -
访问 Web 界面:打开浏览器,访问
http://你的服务器IP:3980。
-
🛠️ 基础配置与使用
-
界面介绍
Morphos 的 Web 界面非常简洁,主要包含: - 文件选择区域:上传需要转换的文件 - 格式选择下拉菜单:根据上传的文件类型显示可转换的目标格式 - 上传/转换按钮:开始转换过程
-
基础使用
- 文件上传:点击界面中的文件选择区域,选择要转换的文件
- 选择目标格式:系统会根据源文件类型自动显示支持的输出格式
- 开始转换:点击 "Upload" 按钮开始转换
- 下载结果:转换完成后点击 "Download" 下载转换后的文件
-
文件管理
所有转换后的文件都会保存在之前映射的
./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
❓ 常见问题排查
-
容器启动失败
- 检查端口冲突:确保宿主机的 3980 端口未被其他程序占用
- 验证目录权限:确保
./tmp目录存在且具有 777 权限 - 查看详细错误:使用
docker-compose logs morphos查看具体错误信息
-
无法访问 Web 界面
- 检查防火墙:确保服务器防火墙允许 3980 端口访问
- 验证服务状态:确认容器正常运行:
docker-compose ps
-
文件上传或转换失败
- 检查文件大小:确认文件未超过
MAX_FILE_SIZE的限制 - 验证文件格式:确认文件格式在 Morphos 的支持范围内
- 查看磁盘空间:确保有足够的磁盘空间进行文件转换
- 检查文件大小:确认文件未超过
-
中文文档转换乱码
- 目前版本在处理中文文档时可能存在字体编码问题,这是已知问题
- 可尝试使用英文字符的文档,或等待后续版本修复
-
转换速度较慢
- 检查系统资源:使用
docker stats查看容器资源使用情况 - 优化文件大小:过大的文件会影响转换速度,可尝试先压缩或拆分
- 检查系统资源:使用
通过以上步骤,你应该能够成功部署并运维自己的 Morphos 文件转换服务。如果在使用过程中遇到特定问题,可以查阅 Morphos 的 GitHub 项目页面获取最新信息和支持。