news 2026/9/8 20:59:19

ConvertX 自托管文件转换站:5分钟Docker部署,1000+格式随便转

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
ConvertX 自托管文件转换站:5分钟Docker部署,1000+格式随便转

ConvertX 自托管文件转换站:5分钟Docker部署,1000+格式随便转

【免费下载链接】ConvertX💾 Self-hosted online file converter. Supports 1000+ formats ⚙️项目地址: https://gitcode.com/GitHub_Trending/co/ConvertX

工作群里丢来一份 PDF,让你改成可编辑的 Word;同事发来 .tiff 图片,办公电脑打开全是乱码。这类转换用在线转换站做,就得把文件原样上传给第三方服务器,工作资料心里总不踏实。ConvertX 是一个自托管的在线文件转换器,部署在自己服务器上,浏览器里上传、选格式、下载,总共支持一千多种格式,文件从头到尾不离开自己的机器。

为什么选它,而不是在线转换站

  • 文件不出内网:转换过程全部在本地容器里完成,不用把数据交给任何第三方站点,也不用担心文件被留存。
  • 覆盖面广:内置 ImageMagick、FFmpeg、Pandoc、Calibre、Assimp 等二十来个转换引擎,合计支持一千多种格式,图片、视频、文档、电子书、3D 模型都能转。各引擎的接入逻辑集中在 src/converters/main.ts 中统一注册。
  • 支持批量与多账户:一次可以丢多个文件进去转换;带密码保护和多账户功能,放在小团队里共用也没问题。

快速开始:Docker 5分钟部署

准备一台能跑 Docker 的机器(云服务器、NAS、家里的树莓派都行),写一个最小的 compose 文件:

services: convertx: image: ghcr.io/c4illin/convertx container_name: convertx restart: unless-stopped ports: - "3000:3000" environment: - JWT_SECRET=aLongAndSecretStringUsedToSignTheJSONWebToken1234 volumes: - ./data:/app/data

启动命令一条:

docker compose up -d

然后浏览器访问http://localhost:3000,按提示创建第一个账户。注意这个服务默认只允许 localhost 或 HTTPS 访问,第一个账户的权限最高(后续可以关掉注册),不要不设密码就直接暴露到公网。如果不想写 compose 文件,一行docker run -p 3000:3000 -v ./data:/app/data ghcr.io/c4illin/convertx也能跑。

实战走一遍:把 TIFF 图片转成 PNG

以转换一张 .tiff 图片为例,完整流程就 5 步:

  1. 用刚创建的账户登录,进入转换页面,把photo.tiff拖进上传区。
  2. 上传后页面会显示文件名和大小,同时下方按转换器列出所有可选的目标格式,也可以直接在搜索框里输入png快速定位。
  3. 点击选中png,文件开始转换,此时这个任务会出现在 History(历史)页面里,状态从 pending 变为 completed。
  4. 回到转换页面,转换完成的文件旁会出现下载按钮,点击即可拿到photo.png
  5. 想批量处理时,重复第 1 步多拖几个文件进来即可,系统会逐个后台处理,互不影响。

深度定制:常用环境变量

所有环境变量都是可选的,配置项参考 compose.yaml 和 README.md。最常用的是下面几个:

名称默认值作用
JWT_SECRET随机 UUID用于签发登录凭据,建议换成自己的长字符串
HTTP_ALLOWEDfalse允许通过 HTTP 访问,仅限本地使用才开
AUTO_DELETE_EVERY_N_HOURS24每隔 n 小时清理超过 n 小时的旧文件,设0关闭
FFMPEG_ARGS传给 FFmpeg 的额外参数,比如-hwaccel vaapi用硬件加速
MAX_CONVERT_PROCESS0限制同时运行的转换进程数,0为不限制

常见问题:3个容易踩的坑

Q1:打开页面但登录不进去?

默认配置下,服务只认 localhost 或 HTTPS 连接。如果你是通过http://服务器IP:3000这种非 HTTPS 方式访问,就登不上。解决办法是设置HTTP_ALLOWED=true(官方提醒这只能用于本地环境),或者直接给它套一层 HTTPS 反代。

Q2:启动后报 unable to open database file?

这是data目录的权限问题。容器里的用户对你挂载的目录没有写权限,在宿主机上执行chown -R $USER:$USER ./data把目录归属改回当前用户,重启容器即可。

Q3:只想一个人用,怎么防止别人注册?

设置ACCOUNT_REGISTRATION=false关闭注册(默认就是 false)。第一个账户创建之后,后续没人能再注册进来,服务就变成单账户私享模式。

写在最后

ConvertX 适合有一台闲置服务器或 NAS、经常需要批量转换文档图片、又在意文件隐私的个人和小团队,部署完基本不用维护。如果你只是偶尔转个格式、又不想部署任何服务,直接用手机上的转换 App 更省事,这个项目对你就没什么必要。

【免费下载链接】ConvertX💾 Self-hosted online file converter. Supports 1000+ formats ⚙️项目地址: https://gitcode.com/GitHub_Trending/co/ConvertX

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/8 20:59:16

别再手写后台页面了:amis 低代码框架入门指南

别再手写后台页面了:amis 低代码框架入门指南 【免费下载链接】amis 前端低代码框架,通过 JSON 配置就能生成各种页面。 项目地址: https://gitcode.com/GitHub_Trending/am/amis 做后台管理系统,大部分时间都花在表单、表格和详情页上…

作者头像 李华
网站建设 2026/9/8 20:57:02

Ip2region|离线IP地址定位,10微秒出结果

Ip2region|离线IP地址定位,10微秒出结果 【免费下载链接】ip2region Ip2region is an offline IP-to-Region localization library and IP data management framework with both IPv4 and IPv6 supports, 10-microsecond level query efficiency, xdb se…

作者头像 李华
网站建设 2026/9/8 20:54:03

深入理解magnitude:从向量范数到机器学习与信号处理

1. magnitude 是什么:从物理量级到算法世界的核心尺度第一次接触 magnitude 这个词,是在大学物理课上。老师讲地震震级、星等亮度、声音分贝,所有这些看似无关的概念,底层都用同一个数学骨架——对数尺度下的量级比较。后来做了几…

作者头像 李华
网站建设 2026/9/8 20:53:54

电力红外过热检测数据集:VOC+YOLO双格式实战指南

简介:本资源是面向电力行业智能巡检与红外图像识别研究者的专用数据集,聚焦输电线路设备过热异常检测任务,适用于目标检测算法(如YOLO系列、Faster R-CNN等)的训练与验证。数据集共2253张红外图像,全部标注…

作者头像 李华