OpenWrt 使用 Caddy 配置 WebDAV

OpenWrt 分享文件的方法有很多,适合外网访问管理的选择却很少。WebDAV 服务是少有的比较优秀的选择。在 OpenWrt 上实现 WebDAV 服务的方法有多种,本文暂且只讨论使用 Caddy 完成。

Caddy v1

首先到 Caddy 官网下载对应版本,注意插件选项中需要勾选 http.webdav。将下载下来的 Caddy 程序拷贝到 /usr/bin/caddy,并注意给予执行权限 chmod +x /usr/bin/caddy

然后创建 Caddy 配置文件 /etc/caddy/Caddyfile,如下配置。

0.0.0.0:8080 {
    basicauth / 用户名 密码
    webdav /webdav {
        scope /mnt
    }
}

之后设置系统服务,以便开机启动。创建文件 /etc/init.d/caddy,内容如下。

#!/bin/sh /etc/rc.common

START=99

SERVICE_USE_PID=1
SERVICE_WRITE_PID=1
SERVICE_DAEMONIZE=1

start() {
    service_start /usr/bin/caddy -conf /etc/caddy/Caddyfile
}

stop() {
    service_stop /usr/bin/caddy
}

创建之后不要忘记添加执行权限 chmod +x /etc/init.d/caddy,设置开机启动 /etc/init.d/caddy enable,启动服务 /etc/init.d/caddy start

Caddy 的 WebDAV 服务到此配置完成。

Caddy v2

官网下载链接:https://caddyserver.com/download

启动命令为 caddy run --config Caddyfile,可以参考 v1 的脚本,替换掉之前的 caddy -conf Caddyfile 即可。

v2 的配置文件格式有所变化:

{
    order webdav last
}
:8080 {
    encode gzip
    basicauth {
        用户名 加密格式密码
    }
    webdav {
        root /mnt
        prefix /webdav
    }
}

其中密码不能直接填写明文,需要用命令转换成加密格式才行:

caddy hash-password --plaintext 明文密码

其余配置均可参考 v1 版本。