我想给 NAS 装个私人网盘,登录进去个人空间是空的
家里 NAS 最容易被高估的第十七件事,是「文件已经在硬盘里,家里人就知道去哪找」。第一件事是相册红点,第十六件事是护照夹和行程表。第十七件事更日常:合同在微信,发票在邮箱,孩子作业在平板下载目录,偶尔还有一份拷到 U 盘的「最终最终版」。我原本以为缺的是再认真一点,把共享文件夹命名清楚。真去看仓库,OpenCloud 把自己写成:自托管的文件同步和分享,ownCloud Infinite Scale 那一支。口号听起来很满。满,不等于个人空间里已经有文件。
这点很重要。我缺的往往不是再一块盘,是一个愿意承认「NAS 上有共享」和「家里人愿意打开同一个入口」中间还隔着账号、证书和你自己懒得教的地方。今天这篇不讲概念。我在本机(ARM64、大约 4C / 3.8G 内存、根盘大约 115G)拉的是包装镜像 ghcr.io/junkerderprovinz/opencloud:latest,仓库 junkerderprovinz/opencloud,采集时公开大约 ★5。镜像是 arm64,digest 对得上。容器起来了。面板也进去了。个人空间写着 This folder has no content。下面都是空桌,不是假装已经把全家文件搬完。
它和 Samba、Nextcloud 都不在同一句话里。Samba 管的是网上邻居。Nextcloud 管的是一整座应用城。OpenCloud 管的是「同一份文件,浏览器里能打开、能分享、能进回收站」——个人空间、Spaces、Shares、账号。这只包装镜像干的事很薄:替你跑一次 opencloud init,按 PUID/PGID 改权限,然后把官方服务交出去。官方自己的 opencloudeu/opencloud 没有这层。家用可以试。买之前最好先把这句摆正:它要进的是你的文件入口,不是一个已经躺在 nasphoto 里、用资源管理器就能点开的共享。
第一次让我愣住的,不是文件列表。是登录页。白底,OpenCloud 标志,Username / Password,底下一个 Log in。没有向导,没有「欢迎来到你的私人网盘」长文。语言还是英文。我预想中的「装上就是中文网盘」,实际看见的是一张还在等管理员口令的门。这点很重要。门不是坏了,它还没把我当成已经住进来的人。
OpenCloud 登录页,用户名密码和 Log in没有文件。第一次打开先是 Sign in。默认管理员是 admin,口令是你自己用环境变量写进去的那串,不是文档里的公开口令。
登录这件事,比按钮更麻烦。文档给的最小命令是 -p 9200:9200,再写 OC_URL='https://192.168.1.10:9200'。我第一次图省事,把宿主端口改成 19200,OC_URL 也写成 https://127.0.0.1:19200。浏览器能打开登录页,点了 Log in 却落到「访问被拒绝」,英文补充:Not logged in。容器日志更直:OIDC 在盒子里面去打 https://127.0.0.1:19200/.well-known/openid-configuration,connection refused。端口映射只对外成立。容器看自己的 127.0.0.1,看不见宿主映射出来的那一层。后来我改成 --network host,OC_URL 对上 9200,门才开。这不是「官方一行命令」。这是「URL 必须是客户端和服务自己都认的那同一个 https 地址」。
进去之后,左侧已经铺开:Personal、Favorites、Shares、Spaces、Deleted files。中间一块大空白,This folder has no content. 底下还有一句:No files found,让我拖文件进来,或者按 New。顶上版本条写 OpenCloud 7.2.4 stable / Up to date。我预想中的「装上就能看见家里那些文件夹」,实际看见的是一张愿意承认自己还没接到活的空桌。空,至少是诚实的空。
登录后的个人空间,提示文件夹没有内容Hi,个人空间。没有合同,没有作业,没有「最终最终版」。提示语比文件列表先到:先拖,或者先按 New。
顺手的地方其实都在这只不算重的容器里,不在宣传语里。第一,镜像真有 arm64。GHCR 上 latest 能直接拉,本机 Architecture=arm64,没有前几天 PaperPull 那种 Exec format error。第二,刚起来大约 250MB,过一会儿掉到大约 97MB。4G 的小盒子还能喘气。第三,包装层会自己跑 opencloud init,日志打出 OPENCLOUD IS READY 再交权。第四,自签证书加上 OC_INSECURE=true,浏览器要你点一次继续,服务自己认自己。第五,它把文件、空间、分享、回收站、账号、管理、应用商店收成一组,而不是让你先装数据库、再装 Redis、再装 PHP。这些都是「跑起来之后」的账。跑起来之后,账比口号沉,也比口号清楚。
落差来得比我预想的早,也比我预想的清楚。Spaces 页标题是 No spaces。说明写着:You don't have access to any spaces. Spaces let your team work on files in a shared environment. 底下 Create space 是灰的,小字:You don't have permission to create spaces。管理员进了个人空间,并不等于家里已经有一间「家庭共享房」。空间是要另开、另授权的。我没有往里丢真实合同和孩子作业——那些带着家庭边界,不该出现在一篇公开软文的截图里。所以你看到的,仍然是没有文件的网盘。
Spaces 页没有空间,创建按钮是灰的No spaces。团队共享那一间还没开门。个人空间有了,不等于家里人已经有一个能一起丢文件的房间。
账号页更像一张工牌。显示名 admin,用户名 admin,邮箱空着,Quota 写 No restriction。Group memberships 只有 users。Password 可以改。Logout 就在旁边。对我来说这很合适——家用工具如果假装已经替你分好家人账号、已经算好每人配额,我会更不放心。可这也是边界:人还是你加,空间还是你开,容器只是值班的文件入口。
账号页:admin、无配额限制、只在 users 组没有家人。配额是无限,不等于盘子是无限。工牌比文件列表先到。
管理页把 General、Storage、Users、Groups、Spaces、Roles、Activity 收在左侧。General 里 Theme 能选 Light / Auto / Dark,Language 能选中文(简体)。默认语言还是 English。右上角一只橙色铃铛:A new version of OpenCloud is available. 点了是应用商店,不是自动升级。这点很重要。面板说 Up to date,商店又说有新版本,两句话可以同时成立:服务是 7.2.4 stable,商店里另有可装的应用。我没有点 Install。家用 NAS 上这种开箱很常见:你不装办公套件,它就先当文件柜;你要在浏览器里改 Word,还得另接 Collabora、OnlyOffice 或它文档里的 Euro Office。
管理页常规设置,语言可改中文,提示有新版本中文在语言列表里。默认还是英文。橙色铃铛不是文件来了,是商店在喊。
应用商店打开是一长串卡片。External Sites、Hello World,再往下能翻到文件相关的扩展。搜索框空着。它愿意承认自己不是 Nextcloud 那种「装上就有一百个插件」的城,更像一个还能往上挂应用的文件内核。对我来说这够用——家里真正要的往往不是第三十个应用,是一个地址、一个账号、一份不会跑到公网网盘的文件。可如果你把它听成「私人版百度网盘 + 在线 Office 全家桶」,商店这一页会先泼冷水。
应用商店列表,External Sites 和 Hello World商店在,办公套件不在默认桌面上。Hello World 排得很靠前,合同并不在。
如果你已经烦了微信文件和「最终最终版」、接受「OC_URL 必须是 https 且内外同一张地址、自签要 OC_INSECURE、9200 留在局域网、admin 口令自己写进环境变量、个人空间先是空的、Spaces 还要另开、在线编辑要另接套件」,也接受第一周列表可能仍是 No files found,可以考虑。本机是 RK 的 ARM64,包装镜像对得上。内存 4G 对这一只容器够用。已经在用 Samba、只是想偶尔在资源管理器里打开共享的,网上邻居还在用就够了,不必为了「浏览器里的私人网盘」再养一只带 OIDC 的入口。9200 不要直接映射到光猫。这点很重要。
不适合的人也清楚。盒子是 ARM、但你坚持把宿主端口改成别的数字、又把 OC_URL 写成映射后的地址、不愿改成反代或 host 网络的,今天这张登录页对你就是「能打开,进不去」,不是「再改一下密码」。完全不想在家里的 Docker 里保存家庭文件索引的,这里多出来的不是面板,是一套会越来越像网盘的元数据。指望它覆盖群晖 Drive、就把「file sharing」听成「装上文件夹自己出现」、就把空桌理解成「同步已经完成」的,会把空桌听漏。文件已经在 Samba 里、并且缺的只是偶尔给爸妈一个链接的,先问自己缺的是网盘,还是已经在跑的那条共享。
对我来说,真正改变习惯的不是 9200 这个数字,是我开始把「NAS 上有文件」和「家里有一个能用浏览器打开的入口」拆开。以前我会怪自己懒,怪家人不肯记 192.168.x.x。现在至少有一个仓库能告诉我:懒不是唯一原因,OIDC 也可能先拒绝你写错的 URL,空间权限也可能先拒绝「我以为管理员能开房」。这句话听起来没有那么刺激,但可能更真实。买之前最好先把预期摆正:它给的是一台只值班文件、不替你搬家、不保证端口映射和 OC_URL 能随手改的私人网盘入口,不是一座已经堆满合同的网盘。我这台 ARM 小盒子,今天进了门,桌子上还是空的。
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~
