自建网盘 Cloudreve:飞牛 NAS 一个容器就能装,文件传上去右键甩个链接,配内网穿透在外面也能收发
作者
小编
发布时间

项目介绍
Cloudreve 是一套自己部署的网盘。文件传上去之后,右键点一下就能生成一条分享链接,对方不用注册、不用装客户端,浏览器打开就能下。你也可以把它当成家里的文件中转站:手机上传一份,电脑上打开就能拿到。
它跟直接用 NAS 自带的文件管理最大的区别,就在「分享」这两个字上。自带的文件管理多半是给自己用的,要把一个大文件递给别人,还得另想办法;Cloudreve 把「生成一条谁都能打开的链接」做成了右键菜单里的一项,还能给链接加密码、设过期时间、设成下载一次就失效。
功能上它还支持对接对象存储、多用户和用户组、分享页自定义这些,不过个人自用的话,装完基本就是「传上去、甩链接」这两步。
项目地址:cloudreve/Cloudreve
部署安装
装在自己的 NAS 上之后,它默认只有家里的网络能打开 —— 可「把文件递给别人」这件事,恰恰是在外面才用得上。家里没有公网 IP 的话,可以用 帕斯内网穿透 把它开放到公网,飞牛的应用中心里就能直接装到插件,不用另外找工具。具体的操作步骤可以参考 这份全平台上手指南。下面这套流程在飞牛 NAS 上从头到尾走一遍。
第一步:准备编排文件
下面这份编排可以直接用,只有一处需要按自己的情况改:冒号左边的宿主端口。
1services:2 cloudreve:3 image: cloudreve/cloudreve:latest4 container_name: cloudreve5 restart: unless-stopped6 ports:7 # 左边 3404 是 NAS 上对外的端口,浏览器敲它;右边 5212 是容器里的8 - "3404:5212"9 volumes:10 # 数据库、配置、头像都在这一个目录里,整个文件夹拷走就是一份完整备份11 - ./data:/cloudreve/data12 environment:13 # 不填的话文件时间和日志都是 UTC,差八小时14 TZ: Asia/Shanghai15
端口:冒号左边的 3404 是待会儿在浏览器里输的宿主端口,也是建隧道时要填的那个;右边的 5212 是容器内部的端口,不要动。3404 如果被别的容器占了,换一个没用过的即可。
数据目录:./data 这个文件夹是整个网盘的家 —— 数据库、配置、用户头像都在里面,想备份的话整个文件夹拷走就是一份完整备份,换台机器放回去就能接着用。这里特意用的是路径挂载而不是存储卷,因为飞牛的 Docker 界面里没有管理存储卷的地方,用存储卷的话以后想清掉重来会很麻烦。
时区:TZ 填 Asia/Shanghai。这一行不填的话,文件的上传时间和容器日志都是 UTC,跟本地差八小时。
镜像标签跟着官方走用 latest 就行,不建议自己钉一个具体的版本号 —— 钉死之后上游更新了你这边还停在旧版。
这里要额外说一句:官方给的示例编排是三个容器 —— Cloudreve 自己,加上一个 PostgreSQL 数据库和一个 Redis。上面这份把后两个都省掉了,不是在硬关功能,而是它本来就支持:官方文档写着不配置数据库就用 SQLite 存数据,不配置 Redis 就用内存缓存、正常退出前把缓存写进文件。个人自用这么跑完全够,少两个容器,内存和维护都省下来了。
代价也说清楚:SQLite 不适合多人高并发,官方也建议正经的生产环境换成 PostgreSQL。如果你是自己用、家里几个人用,这个配置一直用下去没问题;哪天真要给几十号人用,再按官方那份编排把数据库换掉即可。
第二步:在飞牛上建 Compose 项目
打开飞牛的 Docker 应用,切到 Compose,点右上角的新增项目。项目名称填 cloudreve。
路径这一栏点开,在「我的文件」下面挑一个空文件夹选中 —— 这个文件夹以后就是这个项目的家,上面编排里那个 ./data 也会建在它下面。
来源选「创建 docker-compose.yml」,把上面那份编排整段贴进去。
下面「创建项目后立即启动」勾上,点创建。镜像五百多兆,拉完一会儿就跑起来了。
想确认它真的起来了,在家里的网络上打开 http://你的NAS地址:3404 —— 看到一个写着「创建新账号」的页面就是好的。先别急着注册,下一步建好隧道再说,原因在后面。
第三步:用内网穿透开放到公网
在飞牛的应用中心里搜 PassNAT,装上,账号登一次。打开插件点创建隧道:名字随便起;传输协议这里选 HTTP;本地 IP 这一栏留空就好,默认就是 127.0.0.1,不用去查 NAS 的局域网地址;本地端口填上面那个 3404。
选 HTTP 而不是 TCP,是因为选了它之后表单上会多出「子域名」和一个顶级域名的下拉 —— 填一个没人用过的子域名、在下拉里挑一个顶级域名,拿到的公网地址就是一个网址,而不是一串 IP 加随机端口。发给别人的时候,网址显然更好念也更好敲。子域名是全平台唯一的,填一个太常见的词多半会提示已存在,换一个就行。
表单里还有「网页访问用户名」和「网页访问密码」两栏,这一步留空。Cloudreve 自己就有账号体系,再叠一层的话每次打开都要先过一道浏览器的认证框。
建好之后点开这条隧道的详情,按一下电源,等状态转成运行中,面板上那个网址就是在外面要用的公网地址。本文后面的网址都写成「你的NAS地址:3404」的形式,那是在家里的网络上用的;出门在外的时候换成 PassNAT 给你的那个网址就行。
如果你不希望它一直挂在公网上,平时把隧道的电源关掉即可,家里的网络照常访问,不用动容器。
怎么用
第一个注册的账号,自己就是管理员
Cloudreve 没有初始口令这回事,容器日志里也不会印出什么密码 —— 它的规则是:第一个注册的账号自动成为管理员。
这就是上一步说「先别急着注册」的原因:隧道通电之后这个地址全世界都打得开,而管理员的位子只有一个、谁先注册谁拿到。所以正确的顺序是建好隧道、通上电,然后马上用公网地址打开,第一件事就是把自己注册上。
注册页填电子邮箱、密码、重复密码就行。之后登录是两步的:先填邮箱点下一步,再填密码。首屏还有一个「使用通行密钥器登录」,那是可选的另一条路,用不用都不影响。
传文件和甩链接
进去之后左上角有个「新建」,菜单里有上传文件、上传目录、从剪贴板上传、离线下载,还能直接创建文件夹和 Markdown、文本这类文件。传一个文件上去,在文件上点右键,菜单里就有「分享」。
分享对话框里可以选「使用密码保护链接」「超时自动过期」「下载后自动过期」,都不选就是一条谁拿到谁能下的链接。点确定,链接就生成好了。
装完必须改的一处设置:站点 URL
这一处是整篇文章最值得记住的地方。刚装好的时候,你生成出来的分享链接长这样:
1http://localhost:5212/s/xxxx
localhost 指的是「打开这个链接的那台机器自己」,所以这条链接发给任何人都打不开,你自己在别的设备上点也打不开。
更容易让人误判的是:这跟你用什么地址访问它没有关系。实测从公网地址登录进去、再生成一条分享,链接照样是 localhost 开头的。所以遇到这个现象的时候,不是穿透没做对,也不是分享功能坏了 —— 它读的是后台里一个叫「站点 URL」的设置,而这个设置的默认值就是 http://localhost:5212。
改法很省事:用公网地址打开管理面板,Cloudreve 自己会弹一个框出来,说你设置的站点 URL 并未包含当前的这个地址,问要不要改,给两个选项 ——「设置为主要站点 URL」和「添加到备选站点 URL」。点第一个就行。
要手动改的话路径是:管理面板 → 参数设置 → 站点信息 → 站点 URL,把「主要」那一栏换成你的公网地址。
设置页上对这一栏的说明是:主要站点 URL 用于与外部服务通信和接受回调(比如:存储提供商),请使用能被公网访问的 URL。
它还支持填多个:你还可以添加其他备选站点 URL,Cloudreve 会根据用户实际访问的 URL 自动选择是否使用。 也就是说你可以把家里的局域网地址和公网地址都填上,在家访问生成局域网链接、在外访问生成公网链接。
改完回去再建一条分享,链接就变成你的公网地址开头的了,这时候发给谁都打得开。建议装完就把这一步做掉 —— 否则等到真要发文件给人的时候才发现链接是废的,会很尴尬。
一点使用上的提醒
这条分享链接是公开的:拿到的人不需要登录就能下载。所以真要发重要东西的时候,把分享对话框里的密码保护打开,或者设一个过期时间。
另外网盘这类东西吃的是磁盘和上行带宽。文件都存在上面说的那个 data 目录里,占的就是 NAS 的空间;别人从公网下载走的是你家宽带的上行,传大文件之前心里有个数就行。
写在最后
整套下来就三件事:一个容器跑起来,一条隧道开出去,进后台把站点 URL 改成公网地址。做完之后,「把一个大文件给别人」这件事就退化成了发一条链接。