Skip to content

Commit f9cec36

Browse files
committed
docs: update Docker quick-start guide(ZH) with TOML config
1 parent f4a0ebc commit f9cec36

1 file changed

Lines changed: 96 additions & 120 deletions

File tree

docs/quick-start-in-docker.zh.md

Lines changed: 96 additions & 120 deletions
Original file line numberDiff line numberDiff line change
@@ -2,116 +2,100 @@
22

33
## 下载 Docker 镜像
44

5-
```
5+
```shell
66
docker pull ray1ex/asgi-webdav:latest
7+
# 或者
8+
docker pull ghcr.io/rexzhang/asgi-webdav
79
```
810

911
## 零配置体验,全默认配置启动
1012

1113
### 创建并启动容器
1214

13-
```
15+
```shell
1416
docker run --restart always -p 0.0.0.0:8000:8000 \
1517
-v /your/data:/data \
1618
--name asgi-webdav ray1ex/asgi-webdav
1719
```
1820

1921
### 配置说明
2022

21-
因为在 `/your/data` 下没有 `webdav.json` 文件,所以会以全默认配置启动。根目录对应`/your/data`;只有一个账号,用户名`username`,密码`password`,权限无限制。
23+
默认情况下会优先尝试使用 `/data/webdav.toml`, 如何没有找到会尝试使用 `/data/webdav.json`, 如果依然没有找到会使用默认配置。
24+
25+
默认配置下:根目录对应`/your/data`;只有一个账号,用户名`username`,密码`password`,权限无限制。
2226

2327
## 自定义/多账号
2428

2529
### 创建配置文件
2630

27-
创建文件 `/your/data/webdav.json`,修改文件内容如下
28-
29-
```json
30-
{
31-
"account_mapping": [
32-
{
33-
"username": "user_all",
34-
"password": "pw1",
35-
"permissions": [
36-
"+"
37-
]
38-
},
39-
{
40-
"username": "user_litmus",
41-
"password": "pw2",
42-
"permissions": [
43-
"+^/$",
44-
"+^/litmus",
45-
"-^/litmus/other"
46-
]
47-
},
48-
{
49-
"username": "guest",
50-
"password": "pw3",
51-
"permissions": []
52-
}
53-
]
54-
}
31+
创建文件 `/your/data/webdav.toml`,修改文件内容如下
32+
33+
```toml
34+
[[account_mapping]]
35+
username = "user_all"
36+
password = "pw1"
37+
permissions = [ "+" ]
38+
39+
[[account_mapping]]
40+
username = "user_litmus"
41+
password = "pw2"
42+
permissions = [ "+^/$", "+^/litmus", "-^/litmus/other" ]
43+
44+
[[account_mapping]]
45+
username = "guest"
46+
password = "pw3"
47+
permissions = [ ]
5548
```
5649

57-
> 文件格式为 JSON;在最后一个大括弧和方括弧后面不能有逗号 其中 `permissions` 列表内的格式为正则表达式
50+
> 文件格式为 TOML; 在最后一个大括弧和方括弧后面不能有逗号; 其中 `permissions` 列表内的格式为正则表达式
5851
5952
### 配置说明
6053

6154
重启 docker 容器后生效,重启后生效三个账号:
6255

6356
- `user_all` 的密码为 `pw1`,权限为允许访问所有 URL
6457
- `user_litmus`的密码为`pw2`
65-
- 允许访问
66-
- URL `/`
67-
- URL`/litmus`以及其子目录
68-
- 禁止访问
69-
- URL`/litmus/other`以及其子目录
58+
- 允许访问
59+
- URL `/`
60+
- URL`/litmus`以及其子目录
61+
- 禁止访问
62+
- URL`/litmus/other`以及其子目录
7063
- `guest`的密码为`pw3`,无任何 URL 访问权限
7164

72-
> 权限规则不分读写对某个 URL 有权限,既表示对此 URL 下的文件和子路径均有读写权限,并可列出此路径下所有成员
65+
> 权限规则不分读写;对某个 URL 有权限,既表示对此 URL 下的文件和子路径均有读写权限,并可列出此路径下所有成员
7366
7467
## 更复杂的共享目录设置/映射
7568

7669
### 修改配置文件
7770

78-
文件 `/your/data/webdav.json` 内容如下
79-
80-
```json
81-
{
82-
"account_mapping": [
83-
{
84-
"username": "username",
85-
"password": "password",
86-
"permissions": [
87-
"+"
88-
]
89-
}
90-
],
91-
"provider_mapping": [
92-
{
93-
"prefix": "/",
94-
"uri": "file:///data/root"
95-
},
96-
{
97-
"prefix": "/litmus",
98-
"uri": "memory:///"
99-
},
100-
{
101-
"prefix": "/litmus/fs",
102-
"uri": "file:///data/other"
103-
},
104-
{
105-
"prefix": "/litmus/memory",
106-
"uri": "memory:///"
107-
}
108-
]
109-
}
71+
文件 `/your/data/webdav.toml` 内容如下
72+
73+
```toml
74+
[[account_mapping]]
75+
username = "username"
76+
password = "password"
77+
permissions = [ "+" ]
78+
79+
[[provider_mapping]]
80+
prefix = "/"
81+
uri = "file:///data/root"
82+
83+
[[provider_mapping]]
84+
prefix = "/litmus"
85+
uri = "memory:///"
86+
87+
[[provider_mapping]]
88+
prefix = "/litmus/fs"
89+
uri = "file:///data/other"
90+
91+
[[provider_mapping]]
92+
prefix = "/litmus/memory"
93+
uri = "memory:///"
11094
```
11195

11296
### 创建并启动容器
11397

114-
```
98+
```shell
11599
docker run --restart always -p 0.0.0.0:8000:8000 \
116100
-v /your/data:/data -v /your/data/other:/data/other \
117101
--name asgi-webdav ray1ex/asgi-webdav
@@ -121,52 +105,43 @@ docker run --restart always -p 0.0.0.0:8000:8000 \
121105

122106
共享目录路径对应表
123107

124-
| HTTP 路径 | Docker 容器内路径 | 宿主机器路径 |
125-
|------------------|---------------|--------------------|
126-
| `/` | `/data/root` | `/your/data/root` |
127-
| `/litmus` | 内存区域A | |
128-
| `/litmus/fs` | `/data/other` | `/your/data/other` |
129-
| `/litmus/memory` | 内存区域B | |
108+
| HTTP 路径 | Docker 容器内路径 | 宿主机器路径 |
109+
| ---------------- | ----------------- | ------------------ |
110+
| `/` | `/data/root` | `/your/data/root` |
111+
| `/litmus` | 内存区域 A | |
112+
| `/litmus/fs` | `/data/other` | `/your/data/other` |
113+
| `/litmus/memory` | 内存区域 B | |
130114

131-
> 如果不在宿主机上创建 `/your/data/root`这个路径,系统也可以工作但访问 `/` 这个 URL 只会得到一个 404 错误
115+
> 如果不在宿主机上创建 `/your/data/root`这个路径,系统也可以工作;但访问 `/` 这个 URL 只会得到一个 404 错误
132116
133117
## 家目录
134118

135119
### 修改配置文件
136120

137-
```json
138-
{
139-
"account_mapping": [
140-
{
141-
"username": "user_a",
142-
"password": "password",
143-
"permissions": [
144-
"+"
145-
]
146-
},
147-
{
148-
"username": "user_b",
149-
"password": "password",
150-
"permissions": []
151-
}
152-
],
153-
"provider_mapping": [
154-
{
155-
"prefix": "/",
156-
"uri": "file:///data/root"
157-
},
158-
{
159-
"prefix": "/~",
160-
"uri": "file:///data/homes",
161-
"home_dir": true
162-
}
163-
]
164-
}
121+
```toml
122+
[[account_mapping]]
123+
username = "user_a"
124+
password = "password"
125+
permissions = [ "+" ]
126+
127+
[[account_mapping]]
128+
username = "user_b"
129+
password = "password"
130+
permissions = [ ]
131+
132+
[[provider_mapping]]
133+
prefix = "/"
134+
uri = "file:///data/root"
135+
136+
[[provider_mapping]]
137+
prefix = "/~"
138+
uri = "file:///data/homes"
139+
home_dir = true
165140
```
166141

167142
### 创建并启动容器
168143

169-
```
144+
```shell
170145
docker run --restart always -p 0.0.0.0:8000:8000 \
171146
-v /your/data:/data -v /your/data/homes:/data/homes \
172147
--name asgi-webdav ray1ex/asgi-webdav
@@ -176,8 +151,8 @@ docker run --restart always -p 0.0.0.0:8000:8000 \
176151

177152
家目录路径对应表
178153

179-
| 用户 | URL | Docker 容器内路径 | 宿主机器路径 |
180-
|----------|----------|--------------------------|-------------------------------|
154+
| 用户 | URL | Docker 容器内路径 | 宿主机器路径 |
155+
| -------- | -------- | ------------------------ | ----------------------------- |
181156
| `user_a` | `/~` | `/data/homes/user_a` | `/your/data/homes/user_a` |
182157
| `user_a` | `/~/sub` | `/data/homes/user_a/sub` | `/your/data/homes/user_a/sub` |
183158
| `user_b` | `/~` | `/data/homes/user_b` | `/your/data/homes/user_b` |
@@ -189,18 +164,18 @@ docker run --restart always -p 0.0.0.0:8000:8000 \
189164

190165
## 链接客户端
191166

192-
以下以服务端网址为 `https://your.domain.com` 为例实际更常见的网址一般为 `https://your.domain.com/my/dav/sub/dir/path`
167+
以下以服务端网址为 `https://your.domain.com` 为例;实际更常见的网址一般为 `https://your.domain.com/my/dav/sub/dir/path`
193168

194169
如果你的 WebDAV 根路径为 `https://domain` 在 WebDAV 根目录下分别有 `/path1` `/path1/sub1` `/path2`
195-
这几个子目录那么链接的时候分别使用 `https://domain` `https://domain/path1` `https://domain/path1/sub1` `https://domain/path2` 都是可以的
170+
这几个子目录;那么链接的时候分别使用 `https://domain` `https://domain/path1` `https://domain/path1/sub1` `https://domain/path2` 都是可以的
196171

197172
### macOS
198173

199-
`访达/Finder` 的菜单 `前往`-`连接服务器...`然后在弹出窗口中输入 `https://your.domain.com/any/webdav/path`然后点击 `连接` 输入用户名/密码即可
174+
`访达/Finder` 的菜单 `前往`-`连接服务器...`;然后在弹出窗口中输入 `https://your.domain.com/any/webdav/path`;然后点击 `连接` ;输入用户名/密码即可
200175

201176
### Windows
202177

203-
`文件管理器` 左栏 `网络` 处点击鼠标 `右键`选择 `映射网络驱动器``文件夹` 栏目输入 `https://your.domain.com`然后点击 `完成`输入用户名/密码即可
178+
`文件管理器` 左栏 `网络` 处点击鼠标 `右键`;选择 `映射网络驱动器`;`文件夹` 栏目输入 `https://your.domain.com`;然后点击 `完成`;输入用户名/密码即可
204179

205180
## 杂技
206181

@@ -210,11 +185,12 @@ docker run --restart always -p 0.0.0.0:8000:8000 \
210185

211186
配置文件修改方法如下:
212187

213-
```json
214-
{
215-
"http_digest_auth": {
216-
"enable": false,
217-
"enable_rule": "Microsoft-WebDAV-MiniRedir|其他客户端UserAgent"
218-
}
219-
}
188+
```toml
189+
[http_digest_auth]
190+
enable = false
191+
enable_rule = "Microsoft-WebDAV-MiniRedir|其他客户端UserAgent"
220192
```
193+
194+
### 使用自定义的配置文件路径(不推荐)
195+
196+
修改 环境变量 `WEBDAV_CONFIGFILE` 即可. 其默认值为 `/data/webdav.toml`, 服务会在初始化时会尝试读取这个配置文件

0 commit comments

Comments
 (0)