Linux(docker)安装搭建CuteHttpFileServer/chfs文件共享服务器

先创建一个chfs相关的文件夹

bash 复制代码
mkdir /home/chfs && cd /home/chfs

创建Dockerfile文件内容

复制代码
FROM alpine:3.7

WORKDIR /chfs

RUN wget http://iscute.cn/tar/chfs/3.1/chfs-linux-amd64-3.1.zip && unzip chfs-linux-amd64-3.1.zip  \
    && mv chfs-linux-amd64-3.1 chfs && chmod +x chfs && mkdir -p /chfs/data && rm -rf /chfs/chfs-linux-amd64-3.1.zip

COPY chfs.ini /chfs

ENTRYPOINT ["/chfs/chfs","--file","/chfs/chfs.ini"]

创建chfs.ini配置文件

配置文件官网文档:chfs.ini配置文件说明

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


# 监听端口
port=


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


# IP地址过滤
allow=


# 用户操作日志存放目录,默认为空
# 如果赋值为空,表示禁用日志
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=


# 文件/目录删除模式:
#    1: 安全删除:移动到系统回收站 [不是所有操作系统都支持,建议使用前进行测试。默认模式]
#    2: 安全删除:移动到chfs的专属回收站: ~/.chfs_trashbin, 程序会删除存储超过1个月的文件
#    3: 真正删除
file.remove=1


#----------------- ------------------------
# 注意: 账户配置区域放置到配置文件的后面
#------------------------------------------



#----------------- 账户及控制规则 -------------------
#     [xxx] xxx即为账户名, 访客的用户名为guest
#     password 账户密码
#     rule.default 账户对所有的目录和文件的访问权限,但可以针对任意子目录进行重新设定访问权限,以覆盖默认的权限
#     rule.none 表示对哪些子目录设置为不可访问的权限,多个目录使用字符'|'分割,也可以分为多行。注意:该子目录本身也不可访问!
#     rule.r 表示对哪些子目录设置为读权限,多个目录使用字符'|'分割,也可以分为多行。注意: 该子目录本身不受影响,影响的只是它所包含的目录和文件!
#     rule.w 表示对哪些子目录设置为写权限,多个目录使用字符'|'分割,也可以分为多行。注意: 该子目录本身不受影响,影响的只是它所包含的目录和文件!
#     rule.d 表示对哪些子目录设置为最高访问权限,多个目录使用字符'|'分割,也可以分为多行。注意: 该子目录本身不受影响,影响的只是它所包含的目录和文件!
#
#   示例:
#        [foo]
#        password=bar
#        rule.default=r
#        rule.none=d:\公司制度|d:\财务票据
#        rule.r=d:\施工项目\2021年
#        rule.r=d:\施工项目\2022年
#        rule.d=d:\个人目录\foo
#
#    该账户名为foo,密码为bar,默认访问权限是读权限,但账户没有"d:\公司制度"和"d:\财务票据"的访问权限,且
#    对"d:\施工项目\2021年"和"d:\施工项目\2021年"只有读权限,对"d:\个人目录\foo"有最高访问权限。
#


#账户xxx,访客的用户名为guest
[xxx]
password=
rule.default=
rule.none=
rule.r=
rule.w=
rule.d=

示例如下,示例如下,示例如下:

复制代码
port=80
path=/chfs/data
allow=
log=/opt/chfs/logs
html.title=
html.notice=`测试`
image.preview=true
ssl.cert=
ssl.key=
folder.download=
file.remove=2
session.timeout=30
[admin]
password=123456
rule.default=RWD
rule.none=
rule.r=
rule.w=
rule.d=
[guest]
password=
rule.default=R
rule.none=
rule.r=
rule.w=
rule.d=

效果如下:

在当目录构建镜像

复制代码
docker build -t chfs-image:1.0 .

运行

复制代码
docker run -d \
  --name chfs \
  -p 8089:80 \
  -v /home/chfs/data:/chfs/data \
  -v /home/chfs/chfs.ini:/chfs/chfs.ini \
  -v /home/chfs/recycle:/root/.chfs_trashbin \
  chfs-image:1.0

-v /home/chfs/recycle:/root/.chfs_trashbin:这是回收站路径,删除模式为2时启用

登录访问,OK,结束。

相关推荐
树℡独4 小时前
ns-3仿真之应用层(五)
服务器·网络·tcp/ip·ns3
嵩山小老虎5 小时前
Windows 10/11 安装 WSL2 并配置 VSCode 开发环境(C 语言 / Linux API 适用)
linux·windows·vscode
Fleshy数模5 小时前
CentOS7 安装配置 MySQL5.7 完整教程(本地虚拟机学习版)
linux·mysql·centos
a41324475 小时前
ubuntu 25 安装vllm
linux·服务器·ubuntu·vllm
Configure-Handler5 小时前
buildroot System configuration
java·服务器·数据库
津津有味道6 小时前
易语言TCP服务端接收刷卡数据并向客户端读卡器发送指令
服务器·网络协议·tcp·易语言
Fᴏʀ ʏ꯭ᴏ꯭ᴜ꯭.7 小时前
Keepalived VIP迁移邮件告警配置指南
运维·服务器·笔记
Genie cloud7 小时前
1Panel SSL证书申请完整教程
服务器·网络协议·云计算·ssl
一只自律的鸡7 小时前
【Linux驱动】bug处理 ens33找不到IP
linux·运维·bug
17(无规则自律)7 小时前
【CSAPP 读书笔记】第二章:信息的表示和处理
linux·嵌入式硬件·考研·高考