前言
NAS里的文件如果只是"能存进去",其实还没有真正发挥自托管网盘的价值。
真正用起来以后,还会遇到更多需求:手机和电脑都要访问、文件要分享、Office文档希望直接在线处理、不同设备想通过WebDAV挂载,甚至整理好的技术文档还想直接发布成页面。
JmalCloud是一套偏综合型的私有云盘方案。官方文档目前明确支持常见文件预览、Word/Excel/PPT在线编辑、流程图和思维导图、超大文件断点续传、WebDAV以及全文搜索。对于已经有群晖或其他Docker设备的用户,它更像"文件入口 + 在线文档 + WebDAV + 内容发布"的组合。
这篇文章按原稿环境完整跑一遍:先在群晖里通过Docker Compose部署JmalCloud,再测试文件上传、分享和博客页面,最后通过cpolar把9070端口映射到公网。
需要说明的是,原稿使用的是JmalCloud 2.2.35和9070端口方案;当前官方部署方式已经更新,所以正文会保留原稿实操,同时把新旧部署差异单独标出来。
1.JmalCloud能做什么?
JmalCloud是一款开源、自托管的私有云存储项目。按照当前官方文档,它除了基础文件管理,还支持:
- 常见图片、音频、视频和文档预览;
- Word、Excel、PPT在线编辑;
- 流程图和思维导图编辑;
- 超大文件上传和断点续传;
- WebDAV挂载;
- 文本、PDF、Office等文件的全文搜索;
- 自托管部署,数据和服务由自己管理。
因此,对NAS用户来说,它更适合被理解成一个综合文件工作台,而不是单纯的"网页文件夹"。
版本说明 :原稿固定使用
registry.cn-guangzhou.aliyuncs.com/jmalcloud/jmalcloud:2.2.35,并从9070访问主页面。当前JmalCloud官方文档已经要求Docker Compose v2+,官方示例默认从7070访问。下面部署部分仍保留原稿配置,方便复现这篇文章对应的环境。
2.在群晖NAS上部署JmalCloud
先通过SSH进入群晖终端,创建JmalCloud的数据目录并进入:
shell
mkdir -p /data/jmalcloud/files /data/jmalcloud/db && cd /data/jmalcloud
然后创建docker-compose.yaml:
shell
vim docker-compose.yaml
原稿使用下面这份Compose配置:
yaml
version: '3'
services:
jmalcloud:
image: registry.cn-guangzhou.aliyuncs.com/jmalcloud/jmalcloud:2.2.35
restart: always
ports:
- 9070:80
- 9071:8080
- 9072:8088
- 27017:27017
volumes:
- /data/jmalcloud/files/:/jmalcloud/files/
- /data/jmalcloud/db/:/data/db/
这里几个端口分别按原稿保留:
9070:80:JmalCloud主Web页面;9071:8080:原稿后续用于访问博客页面;9072:8088:服务端相关端口;27017:27017:MongoDB端口。
安全提醒:日常使用JmalCloud并不意味着需要把MongoDB的27017端口开放到公网。如果没有外部数据库管理需求,不要通过路由器端口映射或内网穿透公开27017。
保存后启动容器:
shell
docker-compose up -d
容器启动完成后,在浏览器访问:
http://群晖IP:9070
首次进入会看到管理员创建页面。设置用户名和独立强密码后登录即可。
3.实际使用JmalCloud
进入首页后,可以直接上传文件。
文件支持分享链接,可以把指定文件发送给其他设备或用户。按照原稿操作,进入"基本设置"后还能继续进入后台管理页面。
原稿还演示了博客功能:进入"网站设置 → 文档",找到文章编辑入口,编辑完成后发布。随后访问:
http://群晖IP:9071
即可进入JmalCloud博客页面,查看刚刚发布的文章。
需要区分两件事:原稿实际演示了文件上传、分享和博客发布;Word/Excel/PPT、流程图、思维导图、WebDAV和全文搜索则是JmalCloud当前官方文档明确列出的项目能力,但原稿没有逐项演示配置过程。
4.需要外网访问时,再配置cpolar
如果只在家庭局域网中使用,到这里已经够了。
如果还需要在公司、出差或其他网络中打开JmalCloud,可以继续给9070端口增加公网入口。原稿使用cpolar群晖套件。
先下载与群晖型号和DSM版本匹配的cpolar套件,再通过"套件中心 → 手动安装"完成部署。
安装完成后,通过下面的地址进入cpolar Web UI:
http://群晖IP:9200
登录后,如果准备长期使用,可以先保留一个二级子域名。原稿地区选择China Top,名称可以自行设置。
然后回到cpolar Web UI创建HTTP隧道:
- 隧道名称:自定义;
- 本地地址:
9070; - 域名类型:二级子域名;
- Sub Domain:填写刚刚保留的名称;
- 地区:
China Top。
创建后进入"在线隧道列表",即可看到对应公网访问地址。换到手机流量或其他外部网络测试,如果能够正常进入JmalCloud页面,就说明远程访问已经打通。
公网访问提醒:JmalCloud里可能保存个人文件、工作资料甚至分享链接。开放公网访问后,管理员密码不要与NAS账号复用,也不要把不必要的9071、9072、27017等端口一起映射出去。
总结
这套JmalCloud方案最终解决的是"文件已经放进NAS以后,怎么更方便地使用"。
原稿环境中,9070负责JmalCloud主页面,9071用于博客页面;文件可以上传和分享,文章也可以直接发布。需要从外部网络访问时,再通过cpolar给9070端口提供公网入口。
JmalCloud官方目前仍明确支持Word、Excel、PPT、流程图和思维导图在线编辑,也支持大文件断点续传、WebDAV和全文搜索,因此它的定位确实比普通文件浏览器更完整。
不过这篇原稿的Docker方式已经不是当前官方默认部署。现在官方要求Docker Compose v2+,官方文档示例默认从7070访问。因此,如果是全新安装,更建议把本文当作"2.2.35旧版本实操",再以最新官方Compose为部署基准;如果只是维护现有环境,则继续按原稿端口使用即可。
另外,公网访问只需要开放真正使用的Web入口。27017这类数据库端口不要顺手暴露到公网,管理账号也建议使用独立强密码。