V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
jfv
V2EX  ›  NAS

有没有这么一款自建网盘?

  •  
  •   jfv · 312 天前 · 8955 次点击
    这是一个创建于 312 天前的主题,其中的信息可能已经有所发展或是发生改变。
    之前一直用的是 filerun, 不过最近 filerun 升级, 取消了免费版本
    不是不想付费, 而是 filerun 太贵了, 最便宜的版本一年的授权费要 750+
    对比一下在线服务
    icloud 2tb 一年是 800+
    百度云盘 5tb 一年 188
    阿里云盘 8tb 一年 158
    最重要的是在线服务不需要任何的硬件成本和维护成本

    所以现在想更换到另一个自建网盘
    调研了 nextcloud owncloud 之类的服务 感觉都不太适合
    个人主要在意以下功能:
    - 支持 docker 部署, 支持非 root 用户运行
    - 保留硬盘的文件树结构, 因为文件树多个服务在用, 改变文件树的话会影响其他服务, 非 root 运行也是同样原因, 改变文件权限会导致其他服务异常
    - 支持 2fa, 因为网盘可能会放在公网
    - 支持文件分享
    62 条回复    2024-03-05 12:07:48 +08:00
    grit136907108
        1
    grit136907108  
       312 天前
    可以用 alist 搭配各种网盘
    buruoyanyang
        2
    buruoyanyang  
       312 天前
    nextcloud 实在是有点卡。😂
    BeautifulSoap
        3
    BeautifulSoap  
       312 天前
    我寻思,lz 提的这些要求,nextcloud 不都满足吗
    jfv
        4
    jfv  
    OP
       312 天前
    @BeautifulSoap nextcloud 第一点和第二点没找到相关解决方案
    第二点 nextcloud 是每个用户一个文件夹, 而且里面还有个 user-files 的文件夹

    最后, nextcloud 是真的卡
    cqmzgg2023
        5
    cqmzgg2023  
       312 天前
    alist 本地也可以啊
    jfv
        6
    jfv  
    OP
       312 天前
    @grit136907108
    @cqmzgg2023
    alist 感觉更像是网盘本地化, 而不是自建网盘
    yunyuyuan
        7
    yunyuyuan  
       312 天前   ❤️ 3
    有解决方案啊。
    我现在就是 docker-compose 部署 nextcloud ,external storages 挂载我的外部硬盘。首先用 fstab 挂载硬盘到宿主机的 /mnt ,再 volumn 到 container 。可以看到文件夹图标显示的外部存储,事实上我完全没有用 nextcloud 的存储。
    ![]( )
    ![]( )
    yunyuyuan
        8
    yunyuyuan  
       312 天前
    还有我的 nextcloud 一点都不卡啊,N5095+8G 的 mini 主机
    BeautifulSoap
        9
    BeautifulSoap  
       312 天前
    @jfv 看 lz 的提问,似乎你对 docker 不太熟悉? nextcloud 官方就有 docker 镜像,并且默认不以 root 用户运行(以 www-data:www-data 运行,php 运行的程序默认就是这个用户和组)。如果你高兴改的话,改一改 php 配置也能用其他用户运行。

    > 第二点 nextcloud 是每个用户一个文件夹, 而且里面还有个 user-files 的文件夹
    不是很理解为什么这点会成为问题? nextcloud 各用户目录下的数据结构是和目录相同的。你既然用 docker 那么直接把你服务器上的数据目录给 mount 到 nextcloud 容器对应的 `用户名 /files` 文件夹下就结束了。充其量初期需要执行下扫描目录的命令,之后数据就出现在相对应用户里了

    最后,nextcloud 在硬盘和 cpu 性能很差的机子 /服务器上的确非常卡。但是自从我把 nextcoud 移到另一台 ssd 硬盘、E3 的机子上之后,简直如丝般柔顺。
    deorth
        10
    deorth  
       312 天前 via Android
    nextcloud 换了 php8 了,没那么卡了
    lcy630409
        11
    lcy630409  
       312 天前
    在线服务 可以拼车啊
    onedrive 1t 一年也就 40
    iCloud 2t 一年 120
    比自建舒服多了
    hymzhek
        12
    hymzhek  
       312 天前
    yunyuyuan
        13
    yunyuyuan  
       312 天前
    用 docker-compose 的话,给 container 设置用户和组就行了:
    services:
    app:
    image: nextcloud:latest
    user: 1000:1000
    jfv
        14
    jfv  
    OP
       312 天前
    @BeautifulSoap

    我说的不以 root 运行是指通过 `docker run --user uid:gid` 的方式

    第二点确实可以这样解决, 不过新的问题在于手动往磁盘添加文件, nextcloud 不会自动检测到, 体现就是网页上看不到这个文件
    jfv
        15
    jfv  
    OP
       312 天前
    @lcy630409 自建网盘就是为了不用云服务
    zololiu
        16
    zololiu  
       312 天前 via iPhone
    几年没用 filerun 了,刚去看了一眼,不止收费了,界面还变丑了。
    xiri
        17
    xiri  
       312 天前 via Android
    @jfv 这个第二点可以安装 external storage 插件,然后挂载本地目录(上面有老哥已经提到了),这样不涉及 nextcloud 自己维护的文件列表,加新文件不需要重新扫描才能看到。

    这样同时也解决了“nextcloud 是每个用户一个文件夹, 而且里面还有个 user-files 的文件夹”的问题,因为你并不使用它维护的文件夹结构
    ixixi
        18
    ixixi  
       312 天前 via Android
    夸克网盘,淘宝 88vip 送,价格非常低。
    LindsayZhou
        19
    LindsayZhou  
       312 天前
    抖机灵:
    nginx autoindex + sftp (自己改 pam 加 2fa )

    我的 https://io.lin.moe 就是这么做的。
    公开分享的内容单独放了一个文件夹,然后开了 webdav 和 rsync 协议,用来管理内容,也能 ssh sftp 之类的东西上传。
    allence
        20
    allence  
       312 天前
    alist 就合适了,有 docker ,支持 2FA ,除了本地磁盘还支持多网盘协议,挂载 aio
    coolfan
        21
    coolfan  
       312 天前
    @hymzhek 在用,这玩意儿好像不保留目录结构
    dann73580
        22
    dann73580  
       312 天前
    Ifilespace ,作者在 V2EX 宣传过一次
    crazyweeds
        23
    crazyweeds  
       312 天前   ❤️ 1
    开个玩笑,开发出来,你付费吗?哈哈。
    hutng
        24
    hutng  
       312 天前
    cloudreve
    Peelson
        25
    Peelson  
       311 天前
    除了 iCloud 都没有办法解决 Live Photo 的问题 :( 即使可以上传后在线查看 Live Photo ,再下载之后也没有了
    GeekGao
        26
    GeekGao  
       311 天前
    要求不少,愿意付多少钱?
    jfv
        27
    jfv  
    OP
       311 天前
    @GeekGao 我问有没有 我没要求你开发吧
    jfv
        28
    jfv  
    OP
       311 天前
    @yunyuyuan nextcloud 确实支持了, 因为我用的是 linuxserver/nextcloud 这个镜像, 虽然指定了用户也会生成一些 root 权限的文件
    jfv
        29
    jfv  
    OP
       311 天前
    @xiri 这个解决方法可以
    GeekGao
        30
    GeekGao  
       311 天前
    @jfv 因为我有开发过你说的这种程序啊 ,不过不免费。
    IV16SL
        31
    IV16SL  
       311 天前   ❤️ 2
    @Peelson 虽然和主题没什么关系,不过群晖的 photos 对于 Live Photo 上传后即使重新下载还是和原来一样的。
    shenjinpeng
        32
    shenjinpeng  
       311 天前
    minio 开源分布式文件管理
    alist 可以链接各种网盘
    BeautifulSoap
        33
    BeautifulSoap  
       311 天前
    @jfv 我搜了一下,nextcloud 也是支持 docker run --user uid:gid 的,https://github.com/nextcloud/docker/issues/359
    不过我不明白你为什么这么纠结用户。目录都是挂载进去的,把 www-data 用户权限给自己就行了

    > 不过新的问题在于手动往磁盘添加文件, nextcloud 不会自动检测到
    nextcloud 有个 occ 命令可以做到很多事,比如扫描目录变更,用法就是 occ files:scan --all ,这样你添加的文件就能扫描到了。用 cron 每两分钟执行以下就可以
    详细文档 https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/occ_command.html#scan
    如果你用 docker ,官方的 docker 镜像文档也写清楚了怎么在 dcoker 下运行 occ 命令(参考 Using the Nextcloud command-line interface 这一小节)
    https://hub.docker.com/_/nextcloud
    BaseException
        34
    BaseException  
       311 天前   ❤️ 1
    nextcloud 、cloudreve 和 seafile 用户,只有 seafile 能让我坚持使用……
    Sakura
        35
    Sakura  
       311 天前
    学习一下
    wy315700
        36
    wy315700  
       311 天前
    @BaseException
    seafile 至今不肯出 Apple silicon 版本。。。
    BaseException
        37
    BaseException  
       311 天前
    @wy315700 #36 我基本只用 web...
    lizhiqing
        38
    lizhiqing  
       311 天前 via iPhone
    danbai
        39
    danbai  
       311 天前
    alist 挂 smb 完美解决楼主需求
    z583819556
        40
    z583819556  
       311 天前
    我用的这款,感觉还行。
    https://github.com/filebrowser/filebrowser
    way2explore2
        41
    way2explore2  
       311 天前 via Android
    @jfv 我的 nextcloud docker 跑了一个月了

    Official docker compose file 转的 k8s yaml
    chancat
        42
    chancat  
       311 天前 via Android
    咱就是说,你的要求要么自己开发要么找人开发个,不想掏钱就 alist
    palfortime
        43
    palfortime  
       311 天前 via Android
    我的 nextcloud 用 podman 跑,完全不用 root 。
    233373
        44
    233373  
       311 天前
    minion +1
    waringid
        45
    waringid  
       311 天前
    seafile+1
    zgqq
        46
    zgqq  
       311 天前
    暂时没有好的自建网盘,nextcloud 大量同步小文件速度真的被 dropbox 吊打
    Songxwn
        47
    Songxwn  
       311 天前
    考虑性能的话,可以看看 Seafile
    py2ex
        48
    py2ex  
       311 天前
    楼主,如果别人付费给你做这些功能(要维护升级),你愿意接受的最低多少价格是多少?
    换位思考对比一下是不是就不觉得贵了
    利益相关:曾经做过网盘,现在不做了。
    withrock
        49
    withrock  
       311 天前
    目前还没遇到一款合适自己的网盘,seafile 基本可以满足,但缺点也很多,需要自己取舍。
    seafile 的优点明显:
    1.安全。底层是 C+Python 开发的,部分最新模块也在用 golang 重写。(如果有 seafile 的开发者交流群,麻烦拉我进群 WX:libxml )
    2.开源。所有技术组件、所有客户端都是开源的,除了部分商用功能,但也够用。如果技术能力强,可以自己改造。
    3.全平台支持。
    4.部署简单。docker-compose 本地部署,也可以部署在虚拟机。


    但 seafile 的缺点也很明显:
    1.客户端更新不及时,曾经给 seafile-iOS 提过一个 issue ,但没有响应,如果自己有能力,只能自己改 bug 。
    2.曾经想用 iOS 客户端的相册同步功能,但是如果相册照片特别多的话, 这个功能会不稳定,同步失败或者重复。

    说一个既是优点也是缺点的功能:
    底层数据的存储借鉴了 git 的方式,所以这个网盘原生支持版本管理,这个功能吊打其他网盘。但如果想从磁盘得到文件的原始数据,就比较麻烦。可以用 fuse 挂载再拷贝出来的方式,但如果文件较多,拷贝效率比较低。虽然用 git 的方式实现了版本管理,但是又不完全和 git 一样,导致没法用 git 命令操作数据。

    总结:个人猜测现在这家公司的精力都花费在他们的新产品 seatable 上(商业模式相同,商业+开源的 SaaS 智能表格),所以没有时间好好打理 seafile 了。但 seafile 还是目前我最喜欢的网盘。
    jerrywaffle
        50
    jerrywaffle  
       311 天前 via iPhone
    syncthing 可以吗?不用索引
    xiaoz
        51
    xiaoz  
       311 天前 via Android
    可以试试 seafile 用了好几年了,企业级网盘,支持全平台客户端。
    MetroWind
        52
    MetroWind  
       311 天前
    awesome-selfhosted 上面随便一个都可以吧。Docker 什么的自己写个 dockerfile 就好了。
    itfanr
        53
    itfanr  
       311 天前
    保留硬盘的文件树结构 这种网盘不多

    我现在比较懒了,直接用的群晖。
    TubeLover
        54
    TubeLover  
       311 天前
    filerun 虽然明面上转收费了,但是原先的 10 用户免费许可证可以一直使用下去,还能免费更新,只要原先的域名不变即可。升级过程比较复杂,涉及前往管理面板点击升级,然后根据 directions 手动移动 docker 映射文件,修改 docker-compose 的镜像为 8.1 版本。
    sprite82
        55
    sprite82  
       311 天前
    @jfv alist 可以挂载本地目录
    GrayXu
        56
    GrayXu  
       311 天前
    不少人说 seafile ,seafile 确实体验挺好的,但它并不支持“保留硬盘的文件树结构”,
    Peelson
        57
    Peelson  
       311 天前
    @IV16SL 我现在是 unraid 自建方案 iCloudDownload 后给 PhotoPrism 用,但 iCloud 还续费着,看来有必要试试黑群晖了,感谢信息。
    troilus
        58
    troilus  
       310 天前
    sftpgo
    Jacksu
        59
    Jacksu  
       309 天前
    直接 apache 或者 nginx 搭个 webdav 就行了,还能分目录设置权限。
    zololiu
        60
    zololiu  
       25 天前
    黑五入的 Filerun ,几百块钱。
    个人用户不是年付费的吧。
    永久升级,外加五个账号。

    jfv
        61
    jfv  
    OP
       25 天前
    @zololiu
    可能改了价格
    host 不能修改也是个问题
    因为我在局域网和公网用的是不同域名
    zololiu
        62
    zololiu  
       24 天前
    @jfv #61 确实,我买来安装完,激活的时候,要求使用域名访问官方的链接,才能激活。
    但是功能层面还有 UI 颜值,真的是用过目前最好的个人网盘了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5393 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 37ms · UTC 06:57 · PVG 14:57 · LAX 23:57 · JFK 02:57
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.