aaf887507f
上一版 backend 写死 expose: ["8000"](不暴露宿主),但这违背"全局服
务的最终映射到宿主机只能受 .env 中的端口配置决定"的原则——调试场景下
.env 没办法把 backend 暴露到宿主。
修正:backend ports 改为 "${BACKEND_PORT:-}:8000",由 .env 决定:
- BACKEND_PORT 留空/未设 = 不暴露宿主端口(仅经前端 /api 反代)
- BACKEND_PORT=10003 = 暴露宿主 10003(调试 / 压测用)
.env.example 同步加注释说明。
验证:模拟 .env 两种场景下,端口映射完全由 BACKEND_PORT 决定。
Co-Authored-By: Claude Code <noreply@anthropic.com>
95 lines
3.2 KiB
Bash
95 lines
3.2 KiB
Bash
# ================================
|
||
# 端口配置 — 唯一修改宿主机端口的地方
|
||
# ================================
|
||
# 容器内部端口统一 8000(frontend=8000 / backend=8000 / inventory=8001);
|
||
# 服务间通过 docker 网络 gemold_network 上的服务名(如 backend:8000)互通,
|
||
# 不绕宿主。宿主机端口仅暴露浏览器入口与独立模式 API:
|
||
#
|
||
# 浏览器入口(unified 模式:frontend Nginx 对外)
|
||
FRONTEND_PORT=10003
|
||
# moldinsight-only 独立部署时使用
|
||
MOLDINSIGHT_PORT=10003
|
||
# inventory-only 独立部署时使用
|
||
INVENTORY_PORT=10004
|
||
# unified 模式 backend 是否暴露宿主端口:留空 = 不暴露(仅经前端 /api 反代),
|
||
# 设值(如 10003)= 直接暴露(调试 / 压测用)
|
||
# BACKEND_PORT=
|
||
# ================================
|
||
|
||
DEBUG=false
|
||
|
||
# 日志配置
|
||
# LOG_FORMAT: json(生产默认,结构化输出)/ text(开发默认,人可读)
|
||
# LOG_LEVEL: DEBUG / INFO / WARNING / ERROR
|
||
LOG_FORMAT=json
|
||
LOG_LEVEL=INFO
|
||
|
||
# 文件处理配置
|
||
UPLOAD_DIR=./uploads
|
||
MAX_FILE_SIZE=104857600
|
||
ALLOWED_EXTENSIONS=.stp,.step,.stp.gz
|
||
|
||
# 几何处理配置
|
||
POINTCLOUD_SAMPLE_COUNT=10000
|
||
MESH_QUALITY=high
|
||
PARALLEL_PROCESSING=true
|
||
|
||
# 数据库配置(服务器已部署,请填写真实地址)
|
||
DB_HOST=localhost
|
||
DB_PORT=5432
|
||
|
||
# 是否在应用启动时自动执行 alembic 迁移(默认 true,保持单机开发体验)。
|
||
# 多副本/容器编排部署建议设为 false:多个实例同时启动会并发迁移,
|
||
# 改由部署流程单点执行 alembic CLI 或 python -m shared.database.init_db
|
||
AUTO_MIGRATE=true
|
||
DB_NAME=moldinsight
|
||
DB_USER=moldinsight_user
|
||
DB_PASSWORD=moldinsight_password
|
||
|
||
# RustFS / MinIO 兼容对象存储配置(服务器已部署,请填写真实地址)
|
||
RUSTFS_ENDPOINT=http://localhost:9000
|
||
RUSTFS_ACCESS_KEY=your-access-key
|
||
RUSTFS_SECRET_KEY=your-secret-key
|
||
RUSTFS_TIMEOUT=30
|
||
RUSTFS_PRESIGNED_URL_EXPIRES=3600
|
||
|
||
# Redis 配置(服务器已部署,请填写真实地址)
|
||
REDIS_HOST=localhost
|
||
REDIS_PORT=6379
|
||
REDIS_PASSWORD=
|
||
REDIS_DB=0
|
||
|
||
# JWT认证配置
|
||
SECRET_KEY=your-secret-key-change-in-production-min-32-chars
|
||
ALGORITHM=HS256
|
||
ACCESS_TOKEN_EXPIRE_MINUTES=1440
|
||
|
||
# CORS 白名单(逗号分隔,不设置则默认为 [*],生产环境务必设置)
|
||
# CORS_ORIGINS=http://localhost:5173,http://localhost:8000,http://localhost:8001,https://your-domain.com
|
||
|
||
# 管理员账户配置
|
||
ADMIN_USERNAME=admin
|
||
ADMIN_PASSWORD=change-this-to-a-secure-password
|
||
ADMIN_EMAIL=admin@gemold.com
|
||
ADMIN_FULL_NAME=系统管理员
|
||
|
||
# FreeCAD 验证配置(可选)
|
||
# 启用后会增加处理时间,默认禁用
|
||
ENABLE_FREECAD_VERIFICATION=false
|
||
FREECAD_VERIFICATION_TIMEOUT=120
|
||
|
||
# LLM 增强分析配置(可选)
|
||
# 启用后自动生成模具设计评审报告和分模方向推荐
|
||
# 支持 OpenAI 兼容 API(OpenAI / DeepSeek / vLLM / Ollama 等)
|
||
LLM_ENABLED=false
|
||
LLM_API_URL=https://api.openai.com/v1
|
||
LLM_API_KEY=sk-your-api-key
|
||
LLM_MODEL=gpt-4o-mini
|
||
LLM_TIMEOUT=60
|
||
LLM_MAX_TOKENS=2000
|
||
|
||
# Celery/OCC 吞吐调优(可选,默认值在 compose 的 ${CELERY_CONCURRENCY:-2};
|
||
# concurrency 即 OCC 并行分析数,见 docs/topics/performance/OCC_THROUGHPUT.md)
|
||
# CELERY_CONCURRENCY=2
|
||
# CELERY_MAX_TASKS_PER_CHILD=50
|