# Changelog — 1Panel + Docker 生产迁移方案

## 摘要

新增 1Panel 替代宝塔的生产迁移 SSOT：多阶段 `Dockerfile.prod`、生产 Compose、OpenResty 反代示例与分阶段 runbook。

## 动机

用户确认采用 **1Panel + Docker Compose** 部署 Nexus，需可执行文档与配置文件，避免继续依赖宝塔路径与手工 tar 前端。

## 涉及文件

| 文件 | 说明 |
|------|------|
| `docs/design/plans/2026-06-04-1panel-docker-production.md` | 迁移主文档（备份→Compose→OpenResty→L5） |
| `Dockerfile.prod` | Node 构建 SPA + Python 镜像 |
| `docker/docker-compose.prod.yml` | 生产栈（DB 不暴露、8600 仅 127.0.0.1） |
| `docker/.env.prod.example` | 生产 env 模板 |
| `deploy/1panel/openresty-nexus.conf.example` | 1Panel 反代片段 |
| `docker/README.md` | 增加 1Panel 快速命令 |
| `.gitignore` | 忽略 `docker/.env.prod` |

## 迁移 / 重启

- 新环境：`docker compose -f docker/docker-compose.prod.yml up -d --build`
- 密钥：从宝塔 `.env` **原样**迁入，禁止重生成

## 验证

```bash
docker compose -f docker/docker-compose.prod.yml --env-file docker/.env.prod config
curl -s http://127.0.0.1:8600/health   # 部署后
```

## 回滚

见计划文档 §7；DNS 指回宝塔旧机 + 恢复 mysqldump。
