树莓派通过Docker部署webdav服务

滴滴滴

  • 前两天闲来无事,把树莓派重装成了基于Debian11的Raspberry os,整体反应变得比基于Debian12的快了很多,然后重装了OMV6。前段时间用了一段时间Samba,虽说整体于OMV6的Samba没有什么区别,但是OMV6毕竟作为一款专业的NAS系统,还是有很多优势,经过之前的教训,那么之后就不安装拓展和更新了,只使用基础的NAS功能。在安装的过程中也发现了一个问题,树莓派官方的NAS教程,已经移除了OMV的教程,改用自带的Samba服务,想必也有一部分新系统卡顿和硬件弱的原因。
  • 在前两天搭建PhotoPrism的体验中,发现他是支持Webdav功能的,但是我并没有搭建过,并且OMV在OMV5的时候是可以通过插件安装的,但是OMV6已经移除了。简直。。。
  • 所以自己搭建吧!

Webdav

  • 查阅了一些资料,有直接在系统上面部署的,有通过Docker部署的,当然我选择通过Docker部署,通过对比,我找到了hacdias/webdav的镜像,并且通过GITHUB访问到了他的博客,大佬生活过的美汁汁哈!顺便留个言,看了下,也是第一条中文留言。
  • 项目Docker Hub:https://hub.docker.com/r/hacdias/webdav
  • 项目Github:https://github.com/hacdias/webdav
  • 大佬博客:https://hacdias.com/
  • 文章部署参考sunjx97's Blog的使用docker搭建webdav应用
  • 下面简单记录一下部署过程
  • 以我为例:在/home/webdav创建config.yaml文件,内容直接参考的sunjx97's的配置,如果需要多用户的,可以去Github看下。

    # 监听任意网卡,多网卡可指定对应ip
    address: 0.0.0.0
    port: 8081
    auth: true
    prefix: /
    modify: true
    rules: []
    
    # 跨域设置
    cors:
    enabled: true
    credentials: true
    allowed_headers:
      - Depth
    allowed_hosts:
      - http://localhost:8081
    allowed_methods:
      - GET
    exposed_headers:
      - Content-Length
      - Content-Range
    
    # 用户信息,如果 auth 为 true 生效
    users:
    - username: admin
      password: admin
      # 配置自己的 webdav 访问范围,此例为 /data 内所有文件
      scope: /data
    
  • 在/home/webdav/文件夹下创建tongbu文件夹,用于存储文件
  • :/data:/config前方文件路径可以根据实际情况创建,由于我端口8081处于占用状态,更改为18081。其他参数可以自行更改。
  • 调整好参数,执行以下命令即可。
docker run -d --name webdav-go -v /home/webdav/tongbu:/data -v /home/webdav:/config -p 18081:8081 --restart unless-stopped hacdias/webdav:latest --config /config/config.yaml
  • 镜像启动完毕后,我们可以通过IP+端口的方式访问到服务状态。
  • 以阅读APP备份为例,采用本地+webdav的方式。
    已阅读APP为例.jpg
    webdav存储路径.png

结语

  • 该镜像只有8M,并且支持多用户同步,如果个人使用的话,按照上面参数设置即可,多用户的话,可以参考官方配置文件测试。对于拥有成品NAS的用户来说,该功能可以直接部署,但是对于向ARM架构的开发板小盒子之类的,支持的NAS的系统少之又少,受限于性能,部署一些不怎么占性能的程序或者镜像也是一种不错的选择。当他们使用一段时间,发现自己真的对NAS有需求的话,或许会选择一些成品的NAS。

已有 28 条评论

    1. 2023年12月15日 20:25 Windows 10+ · Chrome 120 IP 北京市 鹏博士BGP 回复

      又改了样式(/ω\)

      1. 2023年12月15日 20:30 Android 10 · Edge 119 IP 河南省 移动数据上网公共出口 回复

        升级到最新版了,就成这了。

        1. 2023年12月15日 20:41 Windows 10+ · Chrome 120 IP 北京市 鹏博士BGP 回复

          我还没用最新版,看着升级的内容不大感兴趣

    2. 2023年12月18日 10:17 Windows 10+ · Chrome 120 IP 北京市 电信 回复

      看着有点不太习惯了,不打算魔改一版?

      1. 2023年12月18日 10:39 Windows 10+ · Edge 120 IP 河南省漯河市 联通 回复

        水平有限啊

    3. Potato
      2023年12月24日 14:26 Windows 10+ · Chrome 120 IP 美国 AT&T网络 回复

      我树莓派(ubuntu)上按这个方式部署成功了,但是localhost:8081 没办法显示网页和服务状态,想请教一下是什么原因。

      1. Potato
        2023年12月24日 14:27 Windows 10+ · Chrome 120 IP 美国 AT&T网络 回复

        18081 8081两个端口是试过了,ip也试过好几个,都不显示我加载的文件夹。

        1. 2023年12月24日 16:07 Android 10 · Edge 119 IP 河南省南阳市移动 回复

          你看看docker运行状态哈。是不是有防火墙之类的,或者端口被占用了

          1. Potato
            2023年12月24日 23:29 Windows 10+ · Chrome 120 IP 美国 AT&T网络 回复

            谢谢,但是我看了防火墙是inactive。后面查了一下,可能是树莓派的linux kernel跟docker不匹配造成了。
            你能帮我看看你用的哪个linux kernel和docker版本吗? 我看你这个帖子比较新,应该都差不多时间装的。

            多谢!

            1. 2023年12月25日 11:01 Android 10 · Edge 119 IP 河南省南阳市移动 回复

              docker24.0.7 debian11

            2. zs
              2024年03月02日 02:23 Windows 10+ · Chrome 122 IP 上海市 电信 回复

              应该是你配置映射弄错了,建议检查下配置

发表评论