logo NodeSeekbeta

面板重构并迁移新仓库

新面板仓库:https://github.com/NiuStar/network-panel

针对大家关心的两个个问题:

一、一键安装

本文提供三种视角,推荐优先使用“一键脚本”:

  • 一键脚本安装(推荐,默认 SQLite,可选 MySQL+Compose)
  • 二进制一键脚本部署(systemd,Linux)
  • Docker Compose 部署

在开始前,请准备:

  • 一台 Linux 服务器(建议 Ubuntu 20.04+/Debian 11+/CentOS 8+)
  • 已开放面板端口(默认 6365 提供 API;前端静态资源可由反代提供 HTTPS)
  • MySQL 数据库(或在 Docker Compose 中随容器启动)

方式零:一键脚本安装(推荐)

脚本位置:仓库根 panel_install.sh

在线一键安装:

curl -fsSL https://raw.githubusercontent.com/NiuStar/network-panel/refs/heads/main/panel_install.sh -o panel_install.sh \
  && bash panel_install.sh

交互说明:

  • 选择 1)二进制安装:默认 SQLite 模式;将向 /etc/default/network-panel 写入 DB_DIALECT=sqlite,可自定义 DB_SQLITE_PATH(默认 /opt/network-panel/flux.db
  • 选择 2)Docker Compose 安装:使用 MySQL 模式,会在当前目录创建 network-panel/,下载 docker-compose-v4_mysql.yml 重命名为 docker-compose.yaml 并启动

如需更细粒度控制,可参考下文“二进制部署”或“Docker Compose 部署”。


方式一:二进制一键脚本部署(Linux)

脚本位置:scripts/install_server.sh

步骤:
1)下载并执行安装脚本(root 权限):

curl -fsSL https://raw.githubusercontent.com/NiuStar/network-panel/refs/heads/main/scripts/install_server.sh -o install_server.sh \
  && sudo bash install_server.sh

2)按提示选择:

  • 是否使用下载代理前缀(可为空)
  • CPU 架构(默认自动识别)
  • 选择从 GitHub Releases 下载预编译,或本地源码编译(需要已安装 Go)

3)服务与配置:

  • systemd 服务名:network-panel
  • 可执行文件:/usr/local/bin/network-panel-server
  • 工作目录:/opt/network-panel
  • 前端静态资源:安装脚本会自动从 GitHub Release 下载 frontend-dist.zip 并解压至 /opt/network-panel/public/;离线环境可在本地 vite-frontend 目录执行 npm install && npm run build,将 dist/* 手动复制到该目录
  • 环境文件:二进制安装会创建 /etc/default/network-panel/opt/network-panel/.env(systemd 同时读取),并默认写入:DB_DIALECT=sqliteDB_SQLITE_PATH=/opt/network-panel/panel.dbJWT_SECRET=flux-panel-secret
  • 环境配置:/etc/default/network-panel

环境变量说明:

PORT=6365               # 面板后端监听端口
DB_HOST=127.0.0.1
DB_PORT=3306
DB_NAME=flux_panel
DB_USER=flux
DB_PASSWORD=123456
AGENT_VERSION=go-agent-1.0.0  # (可选) 期望的 Agent 版本,用于触发自升级

4)常用命令:

sudo systemctl status network-panel
sudo systemctl restart network-panel
sudo journalctl -u network-panel -f

首次启动会自动创建数据库(如权限允许)与管理员账号(admin_user/admin_user),请尽快登录修改密码。

自升级说明:

  • 后端通过环境变量 AGENT_VERSION 指定期望的 Agent 版本;若为空则使用后端内置默认值。
  • Agent 连接后端 WS 时会携带自身版本;若与期望版本不一致,后端会下发 UpgradeAgent 指令。
  • Agent 将从后端下载 /flux-agent/flux-agent-linux-<arch> 二进制(镜像/发布包已内置常见架构),替换本地 /etc/gost/flux-agent 并尝试重启自身(systemd/service/或进程内 Exec 替换)。

方式二:Docker Compose 部署

仓库内提供 docker-compose-v4.ymldocker-compose-v4_mysql.yml

1)准备环境与变量

  • 确保 Docker 与 Docker Compose 可用
  • 准备 .env 文件,至少包括:
    • 面板访问域名/端口
    • 数据库相关变量(DB_HOST/DB_NAME/DB_USER/DB_PASSWORD)

2)启动服务(MySQL 版示例)

docker compose -f docker-compose-v4_mysql.yml up -d

3)反向代理(可选)

  • 使用仓库内 proxy.sh 可快速配置 Caddy/Nginx 反代,或自行配置 HTTPS 证书与反代至后端端口(默认 6365)

4)升级/重启

docker compose -f docker-compose-v4.yml pull
docker compose -f docker-compose-v4.yml up -d

二、从哆啦A梦面板迁移

支持两种方式将“哆啦A梦面板”的数据迁移到本面板:

  • 方式一(指向原库):复用哆啦A梦的 MySQL 数据库,直接把本面板的数据库配置改为哆啦A梦的数据库连接信息。
  • 方式二(数据拷贝):使用面板内置“数据迁移”功能,填写哆啦A梦数据库信息,自动迁移数据到当前面板所用数据库(SQLite 或 MySQL)。

— 方式一:复用哆啦A梦数据库(直接改配置)

  • 适合想零拷贝、快速切换到新面板的场景。

  • 前置:已掌握哆啦A梦库的连接参数(Host/Port/User/Password/Database)。

  • 步骤:

    1. 确认使用 MySQL 模式:确保未设置或清空 DB_DIALECT(为空即用 MySQL,默认也是 MySQL)。
    2. 设置以下变量为哆啦A梦数据库:DB_HOSTDB_PORTDB_NAMEDB_USERDB_PASSWORD
    3. 重启面板服务。

    示例(Docker Compose)

    • 修改 docker-compose-v4_mysql.yml:30network-panel/docker-compose.yaml:30 中的环境变量:
      • DB_HOST=你的MySQL地址
      • DB_PORT=3306
      • DB_NAME=哆啦A梦的数据库名
      • DB_USER=用户名
      • DB_PASSWORD=密码
    • 启动/重启:docker compose -f docker-compose-v4_mysql.yml up -d

    示例(本机/二进制/systemd)

    • 环境文件:/etc/default/network-panel 或项目根目录 .env
    • 写入(示例):
      • DB_HOST=127.0.0.1
      • DB_PORT=3306
      • DB_NAME=flux_panel
      • DB_USER=flux
      • DB_PASSWORD=123456
      • 确保未设置或清空 DB_DIALECT
    • 重启:systemctl restart network-panel

    验证

    • 登录新面板,应直接看到原有用户/节点/隧道/转发等数据。
    • 若账号权限受限,请为该 MySQL 账号授予相应表的读写权限。

— 方式二:使用面板内置迁移(自动拷贝)

  • 适合想将数据迁移到全新库(如 SQLite 或新建 MySQL)的场景。

  • 思路:新面板按照你的目标数据库运行;进入“数据迁移”页面,填入哆啦A梦库信息,系统会逐表拷贝并显示实时进度。

  • 步骤:

    1. 选择目标库并启动面板:
      • SQLite:设置 DB_DIALECT=sqlite,可选 DB_SQLITE_PATH;重启生效。
      • MySQL:清空 DB_DIALECT,设置 DB_HOST/DB_PORT/DB_NAME/DB_USER/DB_PASSWORD;重启生效。
    2. 打开后台“数据迁移”页面。
    3. 填入哆啦A梦库的 Host、Port(默认3306)、User、Password、Database。
    4. 点“测试连接”,确认源库各表记录数。
    5. 点“开始迁移”:前端显示总进度与逐表插入/源计数;完成后提示“迁移完成”,失败则展示错误原因。
    6. 迁移后建议重新安装/升级 Agent,使节点配置在各节点落盘并生效。

    说明

    • 已适配的核心表:usernodetunnelforwarduser_tunnelspeed_limitvite_configstatistics_flow
    • 大数据量请耐心等待;中断后可通过状态接口再次查看进度。
12345
  • @sudoerx #41 是的,1.0.4之后就只需要升级面板,agent会自动升级

  • 能不能在原哆啦A梦面板备份数据上直接一键迁移啊,感觉这个更适合MJJ哈哈

  • 谢谢楼主分享

  • 脚本管理不够丰富,缺少重启,卸载,停止

  • @TongTong #4 我也是,用Docker Compose 一键安装,然后打不开网址,另外这个脚本没有卸载命令,很不方便

  • @a6366456 #6

    sudo docker ps                 # 查看运行容器
    
    sudo docker ps -a              # 查看所有容器
    
    sudo docker rm id              # 删除所选容器
    
    sudo docker stop id            # 停止所选容器
    
    sudo docker start id           # 启动所选容器
    
    sudo docker restart id         # 重启所选容器
    
    sudo docker --help             # Docker 帮助
    
    sudo docker images             # Docker 镜像
    
    sudo docker --version          # Docker 版本
    
    sudo journalctl -u docker      # Docker 日志
    
    sudo systemctl stop docker     # Docker 停止
    
    sudo systemctl start docker    # Docker 启动
    
    sudo systemctl restart docker  # Docker 重启
    
    sudo systemctl status docker   # Docker 状态
    
    sudo docker compose version    # compose版本
  • ip加端口加/app打开ui,节点对接需要设置ws,wss的话有tls报错。

12345

你好啊,陌生人!

我的朋友,看起来你是新来的,如果想参与到讨论中,点击下面的按钮!

📈用户数目📈

目前论坛共有43680位seeker

🎉欢迎新用户🎉