webdav-server 是一个用 Go 写的 WebDAV 服务,单二进制,部署起来很省事。如果你平时需要在不同设备之间传文件,或者想给团队搭一个简单的文档共享,它比 FTP 好使——原生就能被 Finder、Windows 资源管理器挂载,兼容性没得说。
安装
最省心的装法是用 Go 工具链一把梭:
go install github.com/hacdias/webdav/v5@latest
要是环境里没有 Go,直接用 Docker 也行:
docker pull ghcr.io/hacdias/webdav:latest
至于选哪个,看你环境习惯。我自己的开发机上通常会直接 go install,生产环境为了隔离还是 Docker 方便些。
跑起来
配置文件一个 YAML 搞定。最基本的写法长这样:
address: 0.0.0.0
port: 6060
directory: /data
users:
- username: admin
password: "{bcrypt}$2y$10$zEP6oofmXFeHaeMfBNLnP.DO8m.H.Mwhd24/TOX2MWLxAExXi4qgi"
permissions: CRUD
permissions 用 CRUD 四个字母控制,对应创建、读取、更新、删除。密码可以用 bcrypt 哈希,也可以直接把明文放配置里(不推荐),或者用环境变量 {env} 语法引用,比如 password: "{env}MY_PASSWORD"。
然后用配置文件启动:
webdav --config config.yml
Docker 的话:
docker run -p 6060:6060 -v $(pwd)/config.yml:/config.yml -v $(pwd)/data:/data ghcr.io/hacdias/webdav -c /config.yml
6060 端口出来就能通过 WebDAV 客户端连了。
权限控制
webdav-server 支持按用户和路径细粒度控制权限。比如只让某个用户读 /public/docs,还可以用正则限制特定文件类型:
rules:
- path: /confidential
permissions: none
-
