Files
geMoldInsight/docs/deployment/PORT_CONFIG.md
T
cjw a548623ea5 📦 build(deploy): Compose 按部署模式拆分三文件——换文件名即换模式一键部署
- docker-compose.yml(unified 默认入口)/ docker-compose.moldinsight.yml / docker-compose.inventory.yml 三文件一一对应三种部署模式,profiles 字段保留(--profile 旧命令双保险可用)
- 修复两个既有部署隐患:moldinsight-only 场景 celery depends_on 悬空;moldinsight service image 统一为 gemold-backend:latest 与 Dockerfile.celery FROM 对齐(废弃 gemold-moldinsight tag)
- gemold_network / uploads_data / html_data 固定 name 命名;inventory-only 不声明卷避免空卷;每文件内 x-base-env anchor 收敛重复 environment(SECRET_KEY/ADMIN_PASSWORD fail-fast 保留)
- 文档同步 11 处:DEPLOYMENT §1.1 一键部署总表 + §2 三模式命令、LINUX_SETUP §6/§11、README、OPERATIONS §4、build.sh/.bat 提示、PORT_CONFIG / DEPLOY_PORT / STORAGE_SETUP / frontend/README
- STATUS.md 补 2026-09-24 批次日志

验证:三文件 YAML 结构静态校验通过;5 个 service environment 键与拆分前逐一比对零丢失(39/39、34/34、39/39、34/34、20/20)

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-24 15:28:13 +08:00

164 lines
3.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 端口配置说明(模块化架构)
> 文档定位:**模块化部署下的端口与环境变量配置补充说明**。
> 当前部署主题入口见 [../DEPLOYMENT.md](../DEPLOYMENT.md),详细 Linux 部署步骤见 [LINUX_SETUP.md](LINUX_SETUP.md)。
> 本文只补充环境变量、端口配置项与 direct run / compose 的映射;端口规划与对外暴露方式以 [DEPLOY_PORT.md](./DEPLOY_PORT.md) 为准。
当前配置中主要需要区分:
- **moldinsight API 端口**
- **inventory API 端口**
- **数据库 / Redis / 对象存储端口**
- **前端访问地址**
---
## 1. 当前主配置位置
对于 Docker Compose 部署,当前主要端口配置来源于:
- [docker-compose.yml](../../docker-compose.yml)(unified,默认入口)
- [docker-compose.moldinsight.yml](../../docker-compose.moldinsight.yml)
- [docker-compose.inventory.yml](../../docker-compose.inventory.yml)
- `.env` / `deploy/.env.example`
注意:这些 compose 文件仅负责项目应用容器,不负责 PostgreSQL / Redis / 对象存储容器。
核心环境变量:
```env
FRONTEND_PORT=80
BACKEND_PORT=8000
MOLDINSIGHT_PORT=8000
INVENTORY_PORT=8001
```
其余基础设施通常为:
```env
DB_PORT=5432
REDIS_PORT=6379
```
对象存储常见端口(由服务器既有服务提供):
```env
RUSTFS_ENDPOINT=http://localhost:9000
```
---
## 2. 各端口的含义
| 变量 / 端口 | 用途 |
|---|---|
| `FRONTEND_PORT` | 前端 Nginx 宿主机暴露端口 |
| `BACKEND_PORT` | unified backend 宿主机暴露端口 |
| `MOLDINSIGHT_PORT` | moldinsight-only 独立部署端口 |
| `INVENTORY_PORT` | inventory-only 独立部署端口 |
| `DB_PORT` | PostgreSQL 端口 |
| `REDIS_PORT` | Redis 端口 |
| `9000` | MinIO/RustFS S3 兼容 API |
| `9001` | MinIO 控制台 |
---
## 3. 推荐配置方式
### 3.1 moldinsight-only
```env
MOLDINSIGHT_PORT=8000
DB_PORT=5432
REDIS_PORT=6379
```
### 3.2 inventory-only
```env
INVENTORY_PORT=8001
DB_PORT=5432
REDIS_PORT=6379
```
### 3.3 full / 模块同时部署
```env
MOLDINSIGHT_PORT=8000
INVENTORY_PORT=8001
DB_PORT=5432
REDIS_PORT=6379
```
---
## 4. direct run 与 Compose 的映射
通过直接运行或 Docker Compose 部署时,端口含义保持一致,但映射方式不同。
### direct run
moldinsight:
```bash
uvicorn src.entrypoints.moldinsight:app --port 8000
```
inventory:
```bash
uvicorn src.entrypoints.inventory:app --port 8001
```
### Docker Compose
Compose 通过端口映射暴露服务:
- moldinsight → `${MOLDINSIGHT_PORT}:8000`
- inventory → `${INVENTORY_PORT}:8001`
当前实际定义见:
- [docker-compose.yml](../../docker-compose.yml)(unified / moldinsight-only)
- [docker-compose.inventory.yml](../../docker-compose.inventory.yml)(inventory-only 的 `INVENTORY_PORT`)
---
## 5. 与前端配置的关系
前端是否使用 unified / split deployment,会影响前端 API 地址配置。
### unified
- 一个 API 基地址
### split
- moldinsight 与 inventory 各自基地址
因此,修改后端端口后,可能还需要同步:
- 前端 `.env`
- Nginx 反向代理
- 浏览器访问地址
---
## 6. 推荐实践
1. **本地开发**
- moldinsight:8000
- inventory:8001
2. **服务器部署**
- 外网只暴露 80/443
- Nginx 反代到 8000 / 8001
3. 修改端口后,同步检查 `.env`、Compose 端口映射、前端环境变量与反向代理配置
---
## 7. 关联文档
- [LINUX_SETUP.md](./LINUX_SETUP.md)
- [DEPLOY_PORT.md](./DEPLOY_PORT.md)
- [archive/BACKEND_MODULARIZATION_BLUEPRINT.md](../archive/BACKEND_MODULARIZATION_BLUEPRINT.md)
- [README.md](../../README.md)