新增 nexus-god-menu-audit-summary.md 汇总巡检交付与日常速查,并链入文档索引。 Co-authored-by: Cursor <cursoragent@cursor.com>
8.4 KiB
1Panel + Docker 一键部署
完整知识文档:docs/project/nexus-1panel-operations-knowledge.md
巡检归档(2026-06-06):docs/project/nexus-god-menu-audit-summary.md
脚本速查(公共仓库 · 无需令牌)
| 脚本 | 用途 | 一条命令 |
|---|---|---|
quick-install.sh |
仅装 Nexus(1Panel 已就绪) | 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_monitor(30s) |
Redis/MySQL/WebSocket 自检 |
| Layer 3 | 宿主机 health_monitor.sh(cron) |
/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.html→install.html.bak,外网/app/install.html返回 404(正常) - 登录:
https://你的域名/app/ - 验收:
sudo nx verify
MySQL / Redis(1Panel 应用商店)
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 会:
- 将 Nexus 加入
1panel-network(docker/docker-compose.1panel.yml) - 自动探测 MySQL/Redis 容器名写入
docker/.env.prod(含NEXUS_REDIS_URL=redis://1Panel-redis-xxxx:6379/0) - 安装向导步骤 3 预填 MySQL/Redis 容器名
安装步骤
- 应用商店 → 安装 MySQL、Redis
- 数据库 → 创建库
nexus、用户nexus(仅授权nexus库),记下密码 nx update后打开安装向导步骤 3(主机应已预填1Panel-mysql-…)- 填写 MySQL 密码;Redis:用户名通常留空 + 应用参数密码(自动尝试
:pass@/default)
常见错误 1045(Access denied for 'nexus'@'172.18.x.x')
TCP 已通,但 MySQL 用户多为 nexus@localhost,Docker 内 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/。
- 应用商店 → OpenResty
- 网站 → 反代
http://127.0.0.1:8600 - 参考:
deploy/1panel/openresty-nexus.conf.example
密钥
新机自动生成 NEXUS_SECRET_KEY / NEXUS_API_KEY / NEXUS_ENCRYPTION_KEY → docker/.env.prod,备份 /root/.nexus-install-secrets-*.env。
MySQL 密码在 1Panel 自建库时设定,向导步骤 3 填写。
| 场景 | 命令 |
|---|---|
| 新机 | curl | quick-install.sh |
| 迁机 | nexus-1panel.sh install --from-env /path/to/.env |
| 更新 | update.sh 或 nx 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