更新
面板和节点分别发布、分别更新。先更新面板,再更新节点。 较新的节点可能不再响应旧面板依赖的某个请求,例如在账户到期的那一刻把它从节点上移除。


面板:从它自己的页面更新
面板每天检查一次是否有新版本,有新版本时显示横幅。设置 → 面板更新 显示已安装的版本、最新版本、此面板的安装方式以及发布说明。
对于用脚本安装的面板,立即更新 会完成整个升级:
- 正在备份:把数据库备份到你的备份目录。
- 正在下载:下载新版本。
- 正在校验:对照随版本发布的校验和进行校验,并试运行一次,确认它能在本服务器上启动。
- 正在安装:安装新版本,把旧程序保留为
/opt/nx-panel/nx-panel.previous。 - 正在重启:你会保持登录状态。面板会有几秒钟无法访问,页面会提示它何时恢复。
如果新版本没能启动,旧程序会在大约十秒内自动恢复,页面显示 已回退。
数据库不会回退
数据库变更只会向前。如果更新后发现问题,第 1 步的备份就是回退的办法。它只能还原到创建它的版本:先重新安装之前的版本(install.sh --version vX.Y.Z),然后在 设置 → 备份 中还原它(见 备份与还原)。
回到旧版本
从带来 设置 → 地址(地址)的版本起,面板以新的形式保存端口、域名、路径和 HTTPS,旧设置会从数据库中删除。在该数据库上启动的旧版本找不到其中任何一项:它会在端口 2095 上以普通 HTTP 启动,没有域名和路径。
- 更新前先备份,并保留它。 从页面更新会在第 1 步自动备份;安装脚本会把 SQLite 数据库复制为
nx.db.bak。 - 不要通过在新版本上安装旧版本来回退。
- 如果从此页面更新失败、旧版本被自动换回,也会发生同样的情况。请再次运行更新(必要时在服务器上运行),或用
nx-panel restore FILE -keep-web-settings=false还原更新前的备份,然后重启面板。
每天检查新版本 可以关闭每日检查。它每天向公开的面板仓库发一次请求,这会让对方知道你服务器的地址。关闭检查后按钮仍然可用。
面板:从命令行更新
再次运行安装程序。它会找到现有安装并就地更新:
bash <(curl -fsSL https://raw.githubusercontent.com/nx-panel/panel/main/install.sh)它会停止服务,把 SQLite 数据库复制为 nx.db.bak,保留旧程序,更新数据库,然后重新启动。你的设置和管理员账户不受影响。使用 PostgreSQL 时,请先自行导出数据库。
Docker 中的面板
容器无法替换自己的镜像,面板更新页面也会这样提示。在 compose 文件所在目录中运行:
docker compose pull && docker compose up -d节点
面板更新 页面中的 节点 部分显示最新的节点版本,以及有多少节点落后于它。
- 更新所有节点 通过 SSH 逐个更新节点。面板没有已授权 SSH 密钥的节点会被跳过。
- 单个节点: 打开它的 安装 抽屉,切换到 自动 (SSH),点击 更新。面板会上传新程序(或拉取新镜像)并重启节点。
- 手动: 在节点服务器上再次运行节点的安装命令。它会找到现有安装,保留配置和证书,只替换程序。
- Docker 中的节点:
docker compose pull && docker compose up -d。
更新会保留节点的证书,因此面板仍能识别它,无需重新注册。
面板上传的是它自己保存的节点程序(此面板已下载)。当这份副本比最新的节点版本旧时,下载最新节点 会刷新它;在此期间更新节点时,会从 GitHub 获取最新版本。
更新期间
面板重启期间节点照常服务:更新面板不会让任何人断开连接。节点如果三分钟无法连上面板,就会停止服务,直到面板恢复,所以不要让面板长时间停机。
