dc4593f8b5
Product decision: drop 3389 remote desktop page, API, guacd sidecar, and related tests after unresolved target-side black screen issues.
Nexus Docker
前置
- Docker Desktop(Windows/macOS)或 Docker Engine + Compose v2
快速启动(正常模式)
# 1. 生成密钥(写入 docker/.env,已 gitignore)
python docker/generate_env.py
# 2. 构建并启动
docker compose up -d --build
# 3. 健康检查
curl -s http://localhost:8600/health # 期望: ok
# 4. 打开 SPA
# http://localhost:8600/app/
默认管理员需在安装向导或已有 DB 中配置;若 DB 为空且未跑过 install,可删卷后走安装模式。
安装向导模式
不创建 docker/.env(或清空 NEXUS_SECRET_KEY)时,应用以 安装模式 启动:
完成向导后 .env 会写入容器;nexus-state 卷会在重启时恢复配置。
常用命令
docker compose logs -f nexus
docker compose down # 停止,保留数据卷
docker compose down -v # 停止并删除数据卷(清空 DB)
docker compose build --no-cache nexus
服务
| 环境 | Compose 服务 | 说明 |
|---|---|---|
本地开发 docker-compose.yml |
nexus + mysql + redis | 一键本地联调 |
生产 docker-compose.prod.yml |
仅 nexus | MySQL/Redis 宿主机或 1Panel 自建 |
生产 1Panel:docker/.env.prod 可含 NEXUS_REDIS_URL(供 nx update 探测同步),不经 Compose 注入容器;运行时 Redis/MySQL URL 以安装向导写入的 /app/.env(nexus-state 卷)为准。MySQL NEXUS_DATABASE_URL 仅由向导步骤 3 写入。
生产注意
- 修改
NEXUS_*为强密码;MySQL 使用自建库强密码。 - 建议前置 Nginx/TLS,仅暴露 443。
- 多实例部署需共享 MySQL、Redis;后台任务由 Redis primary lock 保证单实例执行。
1Panel 生产(Compose + OpenResty)
cp docker/.env.prod.example docker/.env.prod # 从宝塔 .env 迁入密钥
docker compose -f docker/docker-compose.prod.yml --env-file docker/.env.prod up -d --build
- 镜像:
Dockerfile.prod(含npm ci+vite build+web/app/install.html安装向导) - 仅绑定
127.0.0.1:8600;OpenResty 反代见deploy/1panel/openresty-nexus.conf.example - 2C8G 调优:
docker/profiles/2c8g.env(NEXUS_MEM_LIMIT+NEXUS_DB_POOL_SIZE=30);外置 MySQL 可参考docker/mysql-prod-2c8g.cnf手工调优 - 完整迁移步骤:
docs/design/plans/2026-06-04-1panel-docker-production.md - 一键安装:
bash deploy/install-1panel-docker.sh - 一键升级:
bash deploy/upgrade-1panel-docker.sh(--check仅查更新)
详见 docs/design/specs/2026-06-03-docker-design.md。