补充说明
本教程介绍 fan-panel 从源码编译、发布 GitHub Release 到目标服务器一键安装、卸载、备份、恢复的完整流程,适用于个人项目自建发布链路。
项目:fan-panel|通用服务器管理面板 仓库:https://github.com/meimolihan/fan-panel Docker 镜像:
mobufan/fan-panel:latest
安装与卸载
安装 / 升级
bash -c "$(curl -sSL https://raw.githubusercontent.com/meimolihan/fan-panel/main/scripts/install.sh)"
- 静默安装 / 升级(指定端口与应用目录、版本)
bash -c "$(curl -sSL https://raw.githubusercontent.com/meimolihan/fan-panel/main/scripts/install.sh)" -p 3002 -a /var/lib/fan-panel -y
- 指定版本与本地产物(跳过远端下载)
bash -c "$(curl -sSL https://raw.githubusercontent.com/meimolihan/fan-panel/main/scripts/install.sh)" -v v1.4.1 -b ./fan-panel_linux_amd64 -w ./fan-panel-assets-1.4.1.tar.gz -y
- 未指定
-b/-w时,脚本自动从 GitHub Release 下载对应架构(amd64/arm64)二进制与前端 web 资源包。
卸载命令
bash scripts/uninstall.sh
- 默认保留数据(
conf/ database/ uploads/),仅删除二进制与 web 资源 - 彻底清除(连同数据库/上传文件/配置)加
--purge
bash scripts/uninstall.sh --purge
- 远程一键卸载
bash -c "$(curl -sSL https://raw.githubusercontent.com/meimolihan/fan-panel/main/scripts/uninstall.sh)" --purge
备份与恢复
备份数据脚本
bash <(curl -sL https://raw.githubusercontent.com/meimolihan/fan-panel/main/scripts/backup.sh)
- 备份默认输出
./fan-panel-backup-<时间戳>.tar.gz(含 database/uploads/conf) - 指定输出路径与应用目录
bash <(curl -sL https://raw.githubusercontent.com/meimolihan/fan-panel/main/scripts/backup.sh) -o /vol2/1000/file/backup/fan-panel-backup.tar.gz -a /var/lib/fan-panel
- 将备份脚本添加到系统定时任务
# 1.下载脚本到 /usr/local/bin/fan-panel_backup
curl -fsSL https://raw.githubusercontent.com/meimolihan/fan-panel/main/scripts/backup.sh -o /usr/local/bin/fan-panel_backup
chmod +x /usr/local/bin/fan-panel_backup
# 2.测试运行一次
fan-panel_backup -o /vol2/1000/file/backup/fan-panel_backup_$(date +%Y%m%d).tar.gz
# 3.追加 crontab(root):每日凌晨2点30分执行,防重复追加
(crontab -l 2>/dev/null | grep -Fq '/usr/local/bin/fan-panel_backup') || (crontab -l 2>/dev/null; echo '30 2 * * * /usr/local/bin/fan-panel_backup -o /vol2/1000/file/backup/fan-panel_backup_$(date +\%Y\%m\%d).tar.gz >> /var/log/fan-panel_backup.log 2>&1') | crontab -
# 4.验证定时任务是否写入成功
crontab -l
恢复数据脚本
bash <(curl -sL https://raw.githubusercontent.com/meimolihan/fan-panel/main/scripts/restore.sh) /path/to/fan-panel-backup-xxx.tar.gz
- 还原前自动停止服务,还原完成后自动重启;
--keep-current可先把当前数据打包留存,防止误覆盖
bash <(curl -sL https://raw.githubusercontent.com/meimolihan/fan-panel/main/scripts/restore.sh) /path/to/backup.tar.gz --keep-current
Docker Compose 部署
mkdir -p /vol1/1000/compose/fan-panel && cd /vol1/1000/compose/fan-panel
services:
fan-panel:
build: .
image: mobufan/fan-panel:latest
container_name: fan-panel
volumes:
- ./conf:/app/conf
- ./uploads:/app/uploads
- ./database:/app/database
- /var/run/docker.sock:/var/run/docker.sock:ro
# - ./runtime:/app/runtime
ports:
- 3222:3002
restart: always
启动:
docker compose up -d
docker ps | grep fan-panel
脚本命令
| 命令 | 说明 |
|---|---|
bash scripts/install.sh [-p PORT] [-a APP_DIR] [-v VERSION] [-b BIN] [-w WEB_TGZ] [-y] |
安装 / 升级为 systemd 服务 |
bash scripts/uninstall.sh [-a APP_DIR] [--purge] |
卸载 fan-panel(默认保留数据) |
bash scripts/backup.sh [-a APP_DIR] [-o OUT_FILE] |
备份 database/uploads/conf 为 tar.gz |
bash scripts/restore.sh <备份.tar.gz> [-a APP_DIR] [--keep-current] |
从备份恢复并重启服务 |
fan-panel -reset-password |
重置 admin 密码为 admin888 |
日常管理命令
| 操作 | 命令 |
|---|---|
| 启动 | systemctl start fan-panel |
| 关闭 | systemctl stop fan-panel |
| 重启 | systemctl restart fan-panel |
| 状态 | systemctl status fan-panel |
| 查看实时日志 | journalctl -u fan-panel -f |
| 查看最近 30 行日志 | journalctl -u fan-panel -n 30 --no-pager |
| 关闭开机自启 | systemctl disable fan-panel |
| 端口放行 | firewall-cmd --permanent --add-port=3002/tcp && firewall-cmd --reload(firewalld) |
应用目录说明
- 默认应用部署目录:
/var/lib/fan-panelfan-panel:后端二进制(从 Release 下载,amd64/arm64 静态编译)web/:前端静态资源(从fan-panel-assets-<ver>.tar.gz解压)conf/conf.ini:主配置(http_port由 install.sh 按-p写入)database/:SQLite 数据库(database.db)uploads/:上传文件目录runtime/:临时文件与日志
- 安装记录:
/etc/fan-panel.conf(APP_NAME、APP_DIR、PORT、VERSION) - 默认账号:
admin/admin888(登录后建议立即修改;忘记密码可fan-panel -reset-password重置)