CuteHttpFileServer搭建_Docker-compose版

CuteHttpFileServer是一个简易的WebDAV网盘程序,上手简单快速,容易使用。所以本次就拿这个来构建一个支持WebDAV协议的网盘。


1.环境:

  • centos7.9
  • docker和docker-compose
  • portainer

Tips:这部分内容本教程就不讲了,没有相关基础的建议去先补课。

2.项目

Tips:由于这个项目开发者似乎已经不再积极开发,所以我找了一个比较活跃的docker项目部署。

3.搭建

3-1.编辑YAML文件

version: '3.3'
services:
    chfs:
        container_name: chfs
        restart: always
        volumes:
            - '/home/docker-compose/chfs/chfs.ini:/app/chfs.ini'
            - '/home/docker-compose/chfs/data:/app/data'
        ports:
            - '10020:666'
        image: docyc/chfs

Tips:请编辑参数以符合你的实际运行环境,上面给出的例子不一定符合你的需求。

3-2.编辑参数配置文件

#---------------------------------------
# 请注意:
#     1,如果不存在键或对应值为空,则不影响对应的配置
#     2,配置项的值,语法如同其对应的命令行参数
#---------------------------------------


# 监听端口
port=666


# 共享根目录,通过字符'|'进行分割
# 注意:
#     1,带空格的目录须用引号包住,如 path="c:\a uply name\folder"
#     2,可配置多个path,分别对应不同的目录
path=/app/data


# IP地址过滤
allow=


#----------------- 账户控制规则 -------------------
# 注意:该键值可以同时存在多个,你可以将每个用户的访问规则写成一个rule,这样比较清晰,如:
#     rule=::
#     rule=root:123456:RW
#     rule=readonlyuser:123456:R
rule=


# 用户操作日志存放目录,默认为空
# 如果赋值为空,表示禁用日志
log=


# 网页标题
html.title=


# 网页顶部的公告板。可以是文字,也可以是HTML标签,此时,需要适用一对``(反单引号,通过键盘左上角的ESC键下面的那个键输出)来包住所有HTML标签。几个例子:
#     1,html.notice=内部资料,请勿传播
#     2,html.notice=`<img src="https://mat1.gtimg.com/pingjs/ext2020/qqindex2018/dist/img/qq_logo_2x.png" width="100%"/>`
#     3,html.notice=`<div style="background:black;color:white"><p>目录说明:</p><ul>一期工程:一期工程资料目录</ul><ul>二期工程:二期工程资料目录</ul></div>`
html.notice=


# 是否启用图片预览(网页中显示图片文件的缩略图),true表示开启,false为关闭。默认开启
image.preview=



# 下载目录策略。disable:禁用; leaf:仅限叶子目录的下载; enable或其他值:不进行限制。
# 默认值为 enable
folder.download=



#-------------- 设置生效后启用HTTPS,注意监听端口设置为443-------------
# 指定certificate文件
ssl.cert=
# 指定private key文件
ssl.key=



# 设置会话的生命周期,单位:分钟,默认为30分钟
session.timeout=0

Tips:由于是在容器里运行,所以上述参数都应该修改为符合容器内部运行环境的参数。

3-3.创建目录与配置文件

touch /home/docker-compose/chfs/chfs.ini

Tips:把上述内容填入保存即可。

3-4.把YAML参数填入portainer的堆栈模板中,并运行即可完成搭建。

3-5.如需更详细的配置,可以按需修改配置文件即可,修改完成后重启堆栈即可。

4.权限设定

参数说明:

rule="USER:PWD:MASK[:DIR:MASK...][|...]"

USER=用户名
PWD=密码
MASK=权限(''=空值;'r'=读;'w'=写;'d'=删)

r=查看+下载
w=上传+创建+重命名
d=上传+创建+重命名+删除

DIR=目录(允许'*'和'?')
[]=中括号中的内容为可选参数
|=用于间隔每个用户之间的参数,每个用户最多4个:

参数例子(来自官网说明):

//匿名用户具有只读权限(默认情况下匿名用户具有读写权限)
//账户ceshizu,密码为ceshizu123,对根目录的权限为只读,但对test目录具有读写权限
//账户yanfazu,密码为yanfazu123,对根目录的权限为只读,但对yanfa目录具有读写权限
chfs --rule="::r|ceshizu:ceshizu123:r:test:rw|yanfazu:yanfazu123:r:yanfa:rw"

//匿名用户什么权限都没有(默认情况下匿名用户具有读写权限)
//账户admin,密码为admin123,具有读写权限
//账户zhangsan,密码为zhangsan123,对根目录的权限为不可读写,但对zhangsanfiles目录具有读写权限
chfs --rule="::|admin:admin123:rw|zhangsan:zhangsan123::zhangsanfiles:rw"

end…