一、项目介绍
Dufs 是一款独特的实用文件服务器,支持静态服务、上传、搜索、访问控制、webdav...

最近看到 github 上有一个dufs的主题,dufs-material-assets。

dufs-material-assets 实现的功能:
- 标有✨的是dufs原版前端界面未支持,额外添加的功能。

二、dufs 主题实现方式
- 简单概述: 从项目的 GitHub Actions 或 nightly.link 下载前端资源后,假定保存在
dufs-material-assets目录,在启动 dufs 时添加参数--assets dufs-material-assets。 - dufs 配置文件配置指南: 请见https://github.com/sigoden/dufs
2.1 创建 dufs 工作目录
$ mkdir -p /home/application/dufs/
$ mkdir -p /home/application/dufs/bin
$ mkdir -p /home/application/dufs/dufs-material-assets
$ mkdir -p /home/application/dufs/log
$ mkdir -p /home/application/dufs/config
$ mkdir -p /home/application/dufs/files2.2 下载 dufs 二进制文件及主题
#下载 dufs 二进制文件,这里提供的dufs是dufs-material-assets主题所兼容的 dufs 版本,目前是v0.45.0
$ wget https://github.com/TransparentLC/dufs-material-assets/releases/download/v0.45.0/dufs-mod-v0.45.0-x86_64-unknown-linux-musl.zip
#解压dufs二进制文件,并赋予可执行权限
$ unzip dufs-mod-v0.45.0-x86_64-unknown-linux-musl.zip -d /home/application/dufs/bin
$ chmod +x /home/application/dufs/bin
#下载dufs-material-assets主题
$ wget https://nightly.link/TransparentLC/dufs-material-assets/workflows/ci/master/stats.zip
#解压dufs-material-assets主题
$ unzip dufs-material-assets.zip -d /home/application/dufs/dufs-material-assets2.3 配置dufs配置文件
/home/application/dufs/files 为 dufs 文件发布的路径; -p 监听在 50000 端口 ; hidden忽略这些文件名称 .git,.DS_Store,tmp ;assets 表示使用dufs-material-assets 主题 。auth 使用用户名密码认证,加目录权限控制,不写用户名就代表为匿名用户。
cat > /home/application/dufs/config/config.yaml << 'EOF'
serve-path: '/home/application/dufs/files'
bind: 0.0.0.0
port: 50000
hidden:
- tmp
- '*.log'
- '.git'
- '.DS_Store'
- '*.lock'
auth:
- '@/upload:rw,/readme.md'
- 'admin:srebro@/:rw'
allow-all: false
allow-upload: true
allow-delete: true
allow-search: true
allow-symlink: true
allow-archive: true
enable-cors: true
render-index: true
render-try-index: true
render-spa: true
assets: /home/application/dufs/dufs-material-assets
log-format: '$remote_addr "$request" $status $http_user_agent'
log-file: /home/application/dufs/log/dufs.log
compress: low
'EOF'2.4 使用 systemd 管理 dufs
cat > /etc/systemd/system/dufs.service << 'EOF'
[Unit]
Description=Dufs File Server
Documentation=https://github.com/TransparentLC/dufs-material-assets?tab=readme-ov-file
After=network.target
Wants=network.target
[Service]
Type=simple
User=root
Group=root
WorkingDirectory=/home/application/dufs/
ExecStart=/home/application/dufs/bin/dufs --config /home/application/dufs/config/config.yaml
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure
RestartSec=5
StandardOutput=journal
StandardError=journal
SyslogIdentifier=dufs
[Install]
WantedBy=multi-user.target
EOF- 重新加载 systemd 配置
systemctl daemon-reload- 启动服务并设置开机自启
systemctl start dufs
systemctl enable dufs2.5 效果预览


本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 运维小弟