Files
Nexus/deploy/README-1panel.md
T
2026-07-08 22:31:31 +08:00

8.4 KiB
Raw Blame History

1Panel + Docker 一键部署

完整知识文档:docs/project/nexus-1panel-operations-knowledge.md
巡检归档(2026-06-06):docs/project/nexus-god-menu-audit-summary.md

脚本速查(公共仓库 · 无需令牌)

脚本 用途 一条命令
quick-install.sh 仅装 Nexus1Panel 已就绪) curl -fsSL "http://66.154.115.8:3000/admin/Nexus/raw/branch/main/deploy/quick-install.sh" | bash
install-1panel-docker.sh 重装服务器全链 curl -fsSL ".../install-1panel-docker.sh" | bash
install-nexus-fresh.sh 全新空库安装 bash deploy/install-nexus-fresh.sh --skip-clone
update.sh 一键更新 curl -fsSL ".../update.sh" | bash
nexus-1panel.sh 底层 install / upgrade bash deploy/nexus-1panel.sh upgrade
fix-1panel-mysql-grant.sh 修复 1045 nexus@Docker bash deploy/fix-1panel-mysql-grant.sh
test-1panel-redis.sh Redis 认证诊断 REDIS_PASS='...' bash deploy/test-1panel-redis.sh
verify-1panel-install-wizard.sh 一键验收(网络/cron/镜像) bash deploy/verify-1panel-install-wizard.sh
install_ops_cron.sh 宿主机 cron(巡检+备份) sudo bash deploy/install_ops_cron.sh
mysql_dump_to_file.sh MySQL 备份(Docker exec db_backup.sh / nx 菜单 [9]
upgrade.sh 自动识别 Docker/Supervisor bash deploy/upgrade.sh
nx 统一运维菜单 nx

档位:--profile 1c4g · 2c8g(默认)· 4c16g


重装服务器(1Panel + Docker + Nexus

curl -fsSL "http://66.154.115.8:3000/admin/Nexus/raw/branch/main/deploy/install-1panel-docker.sh" | bash

4 核 16G

curl -fsSL ".../install-1panel-docker.sh" | bash -s -- --profile 4c16g

已装 1Panel,只装 Nexus

curl -fsSL ".../install-1panel-docker.sh" | bash -s -- --skip-1panel

仅 Nexus Docker

curl -fsSL "http://66.154.115.8:3000/admin/Nexus/raw/branch/main/deploy/quick-install.sh" | bash

安装完成后:https://api.synaglobal.vip/app/install.html


一键更新(日常)

cd /opt/nexus && bash deploy/update.sh
# 或
nx update
# 或菜单
nx    # → [4] 一键更新
选项 说明
--check 仅查 Git,不重建
--no-cache 无缓存重建镜像(entrypoint 变更后必用)
--no-backup 跳过 MySQL 备份
--prune 清理悬空镜像

远程:

curl -fsSL "http://66.154.115.8:3000/admin/Nexus/raw/branch/main/deploy/update.sh" | bash
curl -fsSL ".../update.sh" | bash -s -- --no-cache

NX 全局命令

安装 / 升级 / 首次运行 nx 会自动注册到 /usr/local/bin

# 手动注册(任意目录可用 nx
NEXUS_ROOT=/opt/nexus bash /opt/nexus/deploy/install-nx-cli.sh

nx              # 统一运维菜单
nexus-update    # 等同 update.sh
nexus-fresh     # 等同 install-nexus-fresh.sh
nexus-install   # 等同 quick-install.sh
菜单 / 子命令 功能
[1] 安装向导(档位 / 迁机 / skip-clone
[2] 全新安装 → /app/install.html
[3] 状态 + /health + install.html 归档检查
[4] / nx update 一键更新(备份 + 重建镜像 + 升级后验收)
[5] 重启 Nexus 容器
[6] 日志
[7] 启动 / 停止 Compose 栈
[8] 无缓存重建镜像
[9] 立即备份 MySQL
[e] / nx cron 安装 health_monitor + db_backup crontab
[v] / nx verify 运行 verify-1panel-install-wizard.sh

三层守护(1Panel Docker

机制 说明
Layer 1 Compose restart + 容器 healthcheck 容器崩溃自动拉起
Layer 2 Python self_monitor30s Redis/MySQL/WebSocket 自检
Layer 3 宿主机 health_monitor.shcron /health 连续失败 → docker restart + 可选 Telegram

Layer 3 需在宿主机安装(容器内无法写 crontab):

sudo nx cron
# 或
sudo bash /opt/nexus/deploy/install_ops_cron.sh

MySQL 定时备份:每日 03:00 → /var/backups/nexus/docker exec 进 1Panel MySQL 容器 dump无需宿主机 mysqldump)。


安装完成后

  • 向导锁定后 install.htmlinstall.html.bak,外网 /app/install.html 返回 404(正常)
  • 登录:https://你的域名/app/
  • 验收:sudo nx verify

MySQL / Redis1Panel 应用商店)

Docker 栈仅含 Nexus 容器。MySQL / Redis 在 1Panel 应用商店安装。

1Panel 官方互联方式(必读)

1Panel 维护者说明:应用商店应用使用 bridge + 1panel-network容器之间用容器名通信Docker 内置 DNS),不要用 localhost / 127.0.0.1 / host.docker.internal

场景 正确主机
Nexus → 1Panel MySQL 1Panel-mysql-xxxx(容器列表中的名称)
Nexus → 1Panel Redis 1Panel-redis-xxxx
OpenResty → 应用 127.0.0.1:端口OpenResty 为 host 网络)

nx update / nexus-1panel.sh 会:

  1. 将 Nexus 加入 1panel-networkdocker/docker-compose.1panel.yml
  2. 自动探测 MySQL/Redis 容器名写入 docker/.env.prod(含 NEXUS_REDIS_URL=redis://1Panel-redis-xxxx:6379/0
  3. 安装向导步骤 3 预填 MySQL/Redis 容器名

安装步骤

  1. 应用商店 → 安装 MySQLRedis
  2. 数据库 → 创建库 nexus、用户 nexus(仅授权 nexus 库),记下密码
  3. nx update 后打开安装向导步骤 3(主机应已预填 1Panel-mysql-…
  4. 填写 MySQL 密码;Redis用户名通常留空 + 应用参数密码(自动尝试 :pass@ / default

常见错误 1045Access denied for 'nexus'@'172.18.x.x'

TCP 已通,但 MySQL 用户多为 nexus@localhostDocker 内 Nexus 从 172.x 连接会被拒绝。

在服务器执行(按提示输入 root 密码与 nexus 密码):

cd /opt/nexus && bash deploy/fix-1panel-mysql-grant.sh

或一次性:

MYSQL_ROOT_PASSWORD='1Panel里MySQL的root密码' \
NEXUS_DB_PASSWORD='向导里要填的nexus密码' \
bash /opt/nexus/deploy/fix-1panel-mysql-grant.sh

然后安装向导步骤 3库名/用户 nexus,主机为 1Panel-mysql-xxxx,密码与上面一致。

若仍报 Can't connect to MySQL/Redis on 'host.docker.internal':说明 Nexus 未接入 1panel-network 或未探测到容器名,在服务器执行:

cd /opt/nexus && bash deploy/detect-1panel-services.sh
nx update --no-cache

步骤 2 会 TCP 检测 MySQL/Redis;步骤 4 验证账号密码。

卸载旧 Compose 容器:

bash deploy/uninstall-mysql-compose.sh
bash deploy/uninstall-redis-compose.sh

1Panel 反代

禁止脚本改 /opt/1panel/apps/openresty/

  1. 应用商店 → OpenResty
  2. 网站 → 反代 http://127.0.0.1:8600
  3. 参考:deploy/1panel/openresty-nexus.conf.example

密钥

新机自动生成 NEXUS_SECRET_KEY / NEXUS_API_KEY / NEXUS_ENCRYPTION_KEYdocker/.env.prod,备份 /root/.nexus-install-secrets-*.env

MySQL 密码在 1Panel 自建库时设定,向导步骤 3 填写。

场景 命令
新机 curl | quick-install.sh
迁机 nexus-1panel.sh install --from-env /path/to/.env
更新 update.shnx update

Git:公开仓库 clone / pull / curl | bash 无需令牌。


安装向导验收(服务器执行)

1Panel 终端(root)一键检查网络、容器名预填、cron、镜像版本、本地 /health

cd /opt/nexus && sudo nx verify

未安装:通过后再打开 https://你的域名/app/install.html
已安装install.html 应 HTTP 404;验收检查 crontab、mysql_dump_to_file.sh、容器内 round6/7 代码特性。

常见修复:

cd /opt/nexus && bash deploy/detect-1panel-services.sh
nx update --no-cache

外网 HTTPS 仍失败但脚本本地检查全绿 → 在 1Panel 网站配置反代 http://127.0.0.1:8600(见 deploy/1panel/openresty-nexus.conf.example)。

安装向导热修复

cd /opt/nexus && git pull
bash deploy/update.sh --no-cache
# 或仅同步静态:
bash deploy/sync-install-wizard-to-container.sh