补充说明
本教程介绍 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"
- 未指定
-b且本地无构建产物时,脚本自动从 GitHub Release 下载对应架构(amd64/arm64)二进制;也可用-b <路径>指定本地构建产物。
卸载命令
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
--keep-data:保留数据目录(推荐,重装即可恢复)--purge:连数据库一起删除
备份与恢复
备份数据脚本
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,推荐)
sudo scripts/reset-password.sh <用户名> '<新密码>'
- 重置用户密码(CLI 单条命令)
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) |
数据目录说明
- 默认数据目录:
/var/lib/fan-files(含fan-files.db、settings.json等) - 安装记录:
/etc/fan-files.conf - 配置文件:
/etc/fan-files/settings.json - 多根存储:
root+extraRoots(支持合并首页列表,storage字段区分来源) - 首次登录:账号
admin,默认密码见启动日志(登录后建议立即修改)