Files
Nexus/docs/changelog/2026-06-06-1panel-config-wizard-hardening.md
T

47 lines
1.9 KiB
Markdown
Raw Normal View History

# 2026-06-06 — 1Panel 配置 / 安装向导 / nx update 根治
## 摘要
根治安装向导 `/state` 敏感信息泄露、`init-db` db_port NameError、`nx update` 无门控与回滚、配置多层不一致等问题。
## 动机
生产 1Panel 审计发现:升级可覆盖 Redis 密码 URL、向导状态 API 返回明文 token、MySQL 连接失败时抛 NameError、备份失败会阻断或半残升级。
## 涉及文件
- `server/api/install.py` — 白名单 `/state``db_port` 修复、修复后清空 `redis_pass`
- `web/app/install.html``sessionStorage` token、无 token 提示
- `server/config.py` — 连接池占位注释
- `docker/docker-compose.prod.yml``docker-compose.1panel.yml``docker/README.md``docker/.env.prod.example`
- `deploy/nexus-1panel.sh` — 门控、回滚、PENDING 回写、卷双写、Redis 迁移、备份容错
- `deploy/update.sh` — 管道执行 ROOT 回退
- `deploy/sync-install-wizard-to-container.sh` — 非静默、可配置端口
- `tests/test_security_unit.py` — 脱敏与 redis_pass 清理回归
- `docs/design/specs/2026-06-06-1panel-config-hardening-design.md`
- `docs/project/nexus-1panel-operations-knowledge.md`
## 迁移 / 重启
- 无需 DB 迁移
-`nx update` 或重建镜像使部署脚本与后端生效
- 已锁定环境升级后 `NEXUS_INSTALL_WIZARD_PENDING` 应变为 `0`
## 验证方式
```bash
.venv/bin/pytest tests/test_security_unit.py -q
.venv/bin/python -c "import server.main"
ruff check server/ --select F
# 生产
sudo nx update
bash deploy/verify-1panel-install-wizard.sh
curl -s http://127.0.0.1:8600/api/install/state | jq .
```
## 运维注意
- 密钥/Redis URL 轮换:改 `docker/.env.prod``nx update``sync_env_prod_to_volume` 双写卷内 `.env`
- 升级加 `--require-backup` 可在 mysqldump 失败时中止
- 推荐 `cd /opt/nexus && bash deploy/update.sh`,避免 `curl | bash` 路径解析失败