扑克中的黑桃A头像
关注
群晖部署 VERT:浏览器本地转换图片、音频和文档,再配置固定公网访问封面图

群晖部署 VERT:浏览器本地转换图片、音频和文档,再配置固定公网访问

前言

我平时做文件转换时,最不舒服的不是多点几下按钮,而是文件一旦上传到陌生网站,后面到底经过了什么流程自己并不清楚。普通图片问题不大,但如果是方案、合同、报表、客户素材或者还没公开的内容,我更愿意把转换工具掌握在自己手里。VERT 吸引我的地方就在这里:页面可以自己部署,按当前项目说明,很多转换任务通过 WebAssembly 在本地设备上完成,不需要把文件交给远端转换服务器。对我来说,这比“永久免费”“什么都能转”这类口号更值得关注。

这次我把 VERT 部署在群晖上,直接使用 ghcr.io/vert-sh/vert:latest 镜像,把宿主机 3833 映射到容器 80。局域网里先确认页面可以正常打开,再通过群晖套件中心安装 cpolar,在 9200 管理页面里给 VERT 配置公网入口。因为这次目标是长期使用,所以没有先走随机域名,而是直接预留二级子域名 vert1,再回到隧道配置中绑定。整篇我会把“VERT 的本地转换能力”“群晖上的 Web 页面”“cpolar 提供的公网入口”分开说明,不把自托管直接写成绝对安全,也不把支持多种格式夸成所有格式都已经逐项验证。

screenshot-home.png

1. VERT 解决的不是“有没有转换网站”,而是文件要不要交出去

VERT 是一套开源、自托管的文件格式转换工具。

当前功能说明里列出了多种常见格式,包括:

  • 图片:PNG、JPG、WEBP、GIF;
  • 音频:MP3、WAV、FLAC;
  • 文档:DOCX、PDF、Markdown;
  • 以及视频等其他类型。

image-20251124155050174

它比较有辨识度的一点,是使用 WebAssembly 在本地设备上执行转换。

也就是说,页面虽然由群晖上的容器提供,但按当前项目说明,实际转换过程主要发生在当前浏览器所在设备。

screenshot-convert.png

我更愿意把它理解成:

自己托管一个转换入口,再尽量把文件处理留在本地浏览器。

当前介绍里还写到“无文件大小限制”和“支持多种文件格式”。这类描述我按项目说明保留,但不会继续扩大成“任何文件、任何浏览器、任何大小都已经实测没有限制”。

2. 在群晖上先把 VERT 跑起来

先进入群晖的:

Container Manager

image-20251124155258791

然后通过 SSH 进入群晖。

image-20251124155314078

这次没有再拆成 Compose 文件,而是直接用一条 Docker 命令启动:

sudo docker run -d --restart unless-stopped --name vert -p 3833:80 ghcr.io/vert-sh/vert:latest

image-20251124155330291

这条命令里最重要的参数有四个:

  • 容器名:vert
  • 镜像:ghcr.io/vert-sh/vert:latest
  • 宿主机端口:3833
  • 容器端口:80

同时使用:

--restart unless-stopped

让容器在 Docker 服务重启后按当前策略恢复运行。

3. 浏览器先验证局域网访问

容器启动以后,在浏览器打开:

群晖NAS IP:3833

image-20251124155359002

如果页面能正常出现,说明:

群晖 Docker → VERT 容器 → 3833:80 → 局域网浏览器

这一层已经跑通。

我不会因为首页能打开,就直接写成所有转换格式都已经逐个成功。

这次实际验证重点,是 VERT 页面可以从群晖正常提供出来。

4. 自托管以后,为什么还需要公网入口

如果只在家里或者办公室内网使用,到这里其实已经够了。

但文件转换往往是临时需求。

人在外面收到一份 PDF、图片或者音频,如果还得等回到家里才能打开 VERT,就会失去“随手可用”的意义。

所以后面再加入 cpolar。

cpolar 在这里负责的只有:

把已经运行在 3833 的 VERT Web 页面提供到公网。

VERT 负责文件转换逻辑;cpolar 不参与 WebAssembly 转换,也不决定文件格式支持范围。

5. 在群晖套件中心安装 cpolar

这里使用群晖版 cpolar 套件。

先下载与群晖设备对应的套件版本。

如果没有完全一致的型号,当前流程给出的做法是选择相近版本型号的套件。

20221222170135

进入:

套件中心

点击右上角:

手动安装

image-20240111165335915

选择下载好的 cpolar 套件安装包,然后继续。

image-20240111165603922

安装过程中确认授权。

image-20240111165702028

最后点击完成。

image-20240111165721365

到这里,cpolar 套件已经安装到群晖。

6. 打开 cpolar Web 管理页面

安装完成以后,在外部浏览器通过:

群晖局域网 IP + 9200

打开 cpolar Web 管理界面。

登录时使用 cpolar 账号。

image-20250319142205589

后面的隧道创建、域名绑定都在这个页面里完成。

7. 这次直接按长期使用来配置

进入:

隧道管理 → 创建隧道

参数如下:

  • 隧道名称:自定义,但不要和已有隧道重名;
  • 协议:http
  • 本地地址:3833
  • 端口类型:二级子域名
  • 地区:China top

image-20251124155704608

这里和很多“先随机、后固定”的教程不同。

这次目标一开始就是长期使用,所以直接选择:

二级子域名。

当前说明也提到,如果只是测试或非长期使用,可以选择随机域名;随机地址会变化,需要重新获取。

这部分我按当前流程保留,没有额外验证随机域名实际变化周期。

8. 先去预留二级子域名 vert1

进入 cpolar 官网的预留页面。

选择:

保留二级子域名

参数为:

  • 地区:china top
  • 二级子域名:vert1

image-20251124155754725

二级子域名具有唯一性。

这里的 vert1 是当前示例,真正使用时要以自己账号中实际预留成功的名称为准。

9. 把预留好的域名绑定回 VERT 隧道

复制前面预留成功的二级子域名。

回到 cpolar 本地配置页面,把它填到 VERT 隧道的域名配置中,然后创建。

image-20251124155837709

创建完成以后,可以看到当前生成了两条固定公网地址。

image-20251124155902639

这一步真正建立的是:

外部浏览器 → cpolar 固定公网地址 → 群晖 3833 → VERT Web 页面。

10. 从外部设备访问 VERT

最后直接使用生成的固定公网地址,从其他设备打开。

image-20251124155924367

页面能够正常访问。

到这里,这次真正验证完成的是:

群晖部署 VERT → 局域网 3833 页面 → cpolar 二级子域名 vert1 → 外部浏览器访问。

11. 我会怎么理解“私人文件转换工具”

我不会把它简单写成:

“只要自托管,就绝对不会泄露。”

更准确的理解应该分三层。

第一层:Web 页面。
VERT 页面部署在自己的群晖 Docker 里。

第二层:文件转换。
按当前项目说明,VERT 使用 WebAssembly 在本地设备完成转换。

第三层:公网入口。
cpolar 负责让外部设备能访问群晖上的 VERT 页面。

这样职责就比较清楚。

如果真正处理的是敏感合同、内部资料或客户文件,我仍然会继续关注:

  • 当前浏览器是否可信;
  • 公网入口是否只分享给需要的人;
  • 使用的具体转换功能是否符合当前文件类型;
  • 自己是否真正理解这类文件的处理路径。

这比一句“自托管=绝对安全”更实际。

总结

这次真正跑通的主线是:

群晖 → Container Manager → SSH → ghcr.io/vert-sh/vert:latest → 3833:80 → VERT Web → cpolar 群晖套件 → 9200 管理页面 → HTTP 隧道 → 本地 3833 → China top → 二级子域名 vert1 → 固定公网地址 → 外部浏览器访问。

几个细节值得继续留意:

  • 当前 Docker 命令使用 --restart unless-stopped,但没有额外数据卷参数;
  • VERT 的 WebAssembly、本地转换和无文件大小限制属于当前项目功能说明,这次没有额外做网络抓包或极限大文件测试;
  • 页面列出了图片、音频、文档和视频等多种格式,但这次没有把所有格式逐一转换验证;
  • cpolar 只负责 VERT Web 页面的公网入口,不参与文件转换;
  • 这次直接走固定二级子域名,没有先测试随机域名;
  • 固定二级子域名示例是 vert1;
  • 当前步骤显示创建后生成两条固定公网地址,但没有继续把这两条地址的协议差异展开说明。

对我来说,VERT 最有价值的地方不是“又多了一个格式转换网站”,而是把转换入口放到自己能控制的环境里,再尽量让文件处理留在本地设备。如果只是偶尔转一张图片,专门部署没有太大必要;但只要经常处理不适合随便上传第三方网站的文件,这种工具就很容易变成长期保留的基础服务。

转载自 CSDN-专业IT技术社区

原文链接:https://blog.csdn.net/Pocker_Spades_A/article/details/166644189

文章来源转载

评论

赞0

评论列表

微信小程序
QQ小程序

关于作者

点赞数:0
关注数:0
粉丝:0
文章:0
关注标签:0
加入于:--