随机
Enter 搜索 ↑↓ 切换 Esc 清空

fan-files

命令

fan-files 文件管理器(基于 filebrowser 二次开发)部署运维

补充说明

本教程介绍 fan-files 从源码编译、发布 GitHub Release 到目标服务器一键安装、卸载、备份、恢复的完整流程,适用于个人项目自建发布链路。

项目:fan-files|文件管理器 仓库:https://github.com/meimolihan/fan-files

安装与卸载

安装 / 升级

bash -c "$(curl -sSL https://raw.githubusercontent.com/meimolihan/fan-files/main/scripts/install.sh)"
bash -c "$(curl -sSL https://raw.githubusercontent.com/meimolihan/fan-files/main/scripts/install.sh)" \
  -p 8678 -d /var/lib/fan-files -r /vol1/1000 \
  --extra-root "存储空间2=/vol2/1000"

卸载命令

bash scripts/uninstall.sh -y --keep-data
bash -c "$(curl -sSL https://raw.githubusercontent.com/meimolihan/fan-files/main/scripts/uninstall.sh)" -y --keep-data

备份与恢复

备份数据脚本

bash <(curl -sL https://raw.githubusercontent.com/meimolihan/fan-files/main/scripts/fan-files_backup.sh) 6
# 1.下载脚本到 /usr/local/bin/fan-files_backup
curl -fsSL https://raw.githubusercontent.com/meimolihan/fan-files/main/scripts/fan-files_backup.sh -o /usr/local/bin/fan-files_backup

# 2.增加执行权限
chmod +x /usr/local/bin/fan-files_backup

# 3.测试运行一次(保留份数:6)
fan-files_backup 6

# 4.追加 crontab(root):每日凌晨2点30分执行,防重复追加
(crontab -l 2>/dev/null | grep -Fq '/usr/local/bin/fan-files_backup 6') || (crontab -l 2>/dev/null; echo '30 2 * * * /usr/local/bin/fan-files_backup 6 >> /var/log/fan-files_backup.log 2>&1') | crontab -

# 5.验证定时任务是否写入成功
crontab -l

恢复数据脚本

bash <(curl -sL https://raw.githubusercontent.com/meimolihan/fan-files/main/scripts/fan-files_recover.sh)
bash <(curl -sL https://raw.githubusercontent.com/meimolihan/fan-files/main/scripts/fan-files_recover.sh) /path/to/backup

用户与密码管理

基于 filebrowser 扩展的 users 管理命令(按用户名或 ID 定位用户)。

sudo /usr/local/bin/fan-files -c /etc/fan-files/settings.json users find
sudo /usr/local/bin/fan-files -c /etc/fan-files/settings.json users find admin
sudo scripts/reset-password.sh <用户名> '<新密码>'
sudo /usr/local/bin/fan-files -c /etc/fan-files/settings.json users update <用户名> -p '<新密码>'

密码规则:长度须 ≥ minimumPasswordLength(默认 8,按 UTF-8 字节数统计,如 新密码=9 字节可通过),且不能是常见弱密码;校验不通过时命令报错、不修改。含空格/特殊字符的密码用单引号包裹,避免 shell 展开。users update 仅在显式传入 --lockPassword/--dateFormat/--hideDotfiles 时才改动这些字段,不会意外重置其他设置。

脚本命令

命令 说明
bash scripts/install.sh [-p PORT] [-d DATA_DIR] [-r ROOT] [--extra-root LABEL=PATH] [-b BIN] [-y] 安装 / 升级为 systemd 服务
bash scripts/uninstall.sh [-y] [--purge|--keep-data] [-q] 卸载 fan-files
bash scripts/fan-files_backup.sh [保留份数] [备份目录] 备份数据目录为 tar.gz(参数顺序可互换)
bash scripts/fan-files_recover.sh [备份目录] 从备份目录恢复最新备份
bash scripts/reset-password.sh <用户名> '<新密码>' 重置用户密码(自动 sudo)
/usr/local/bin/fan-files version 显示版本信息(fan-files v1.0.1/<commit>)

日常管理命令

操作 命令
启动 systemctl start fan-files
关闭 systemctl stop fan-files
重启 systemctl restart fan-files
状态 systemctl status fan-files
查看实时日志 journalctl -u fan-files -f
查看最近 50 行日志 journalctl -u fan-files -n 50 --no-pager
查看用户列表 sudo /usr/local/bin/fan-files -c /etc/fan-files/settings.json users find
重置用户密码 sudo scripts/reset-password.sh <用户名> '<新密码>'
关闭开机自启 systemctl disable fan-files
端口放行 firewall-cmd --permanent --add-port=8678/tcp && firewall-cmd --reload(firewalld)

数据目录说明