diff --git a/.env b/.env index 6bd3c53..c850e3b 100644 --- a/.env +++ b/.env @@ -1,6 +1,15 @@ # 服务配置 HOST=0.0.0.0 -PORT=8000 + +# ================================ +# 端口配置 - 唯一修改端口的地方 +# ================================ +# 应用端口(容器内端口) +PORT=10003 +# Docker映射到宿主机的端口(docker-compose使用) +HOST_PORT=10001 +# ================================ + DEBUG=false # 文件处理配置 diff --git a/.env.example b/.env.example index 69acca5..d5d5ec0 100644 --- a/.env.example +++ b/.env.example @@ -1,9 +1,18 @@ -# 服务器配置 +# 服务配置 HOST=0.0.0.0 + +# ================================ +# 端口配置 - 唯一修改端口的地方 +# ================================ +# 应用端口(容器内端口) PORT=8000 +# Docker映射到宿主机的端口(docker-compose使用) +HOST_PORT=10001 +# ================================ + DEBUG=false -# 文件上传配置 +# 文件处理配置 UPLOAD_DIR=./uploads MAX_FILE_SIZE=104857600 ALLOWED_EXTENSIONS=.stp,.step,.stp.gz @@ -13,12 +22,12 @@ POINTCLOUD_SAMPLE_COUNT=10000 MESH_QUALITY=high PARALLEL_PROCESSING=true -# PostgreSQL 数据库配置 +# 数据库配置 DB_HOST=localhost DB_PORT=5432 DB_NAME=moldinsight DB_USER=moldinsight_user -DB_PASSWORD=your_secure_password_here +DB_PASSWORD=moldinsight_password # RustFS 对象存储配置 (S3v4 API) RUSTFS_ENDPOINT=http://localhost:9000 diff --git a/README.md b/README.md index e885946..5c2b294 100644 --- a/README.md +++ b/README.md @@ -63,6 +63,7 @@ moldinsight_project/ pip install -r requirements.txt ``` + 2. 配置数据库连接(修改.env文件) 3. 启动服务: @@ -70,4 +71,7 @@ pip install -r requirements.txt python src/main.py ``` -4. 访问 http://localhost:8000 \ No newline at end of file +4. 访问服务 + - 查看端口配置:打开 `.env` 文件查看 `PORT` 的值 + - 默认端口:8000 + - 访问地址:http://localhost:${PORT} \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index 95504f8..4fb7000 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -45,15 +45,16 @@ services: build: . container_name: moldinsight_app ports: - - "10001:8000" # 宿主机端口:容器端口 + - "${HOST_PORT:-10001}:${CONTAINER_PORT:-8000}" # 宿主机端口:容器端口 volumes: - ./uploads:/app/uploads - ./html_output:/app/html_output - ./logs:/app/logs - ./.env:/app/.env:ro environment: - # 应用内部使用8000端口(容器内) - - PORT=8000 + # 应用端口配置(从settings.py读取) + - HOST=${HOST:-0.0.0.0} + - PORT=${CONTAINER_PORT:-8000} # 数据库配置 - DB_HOST=postgres - DB_PORT=5432 diff --git a/src/main.py b/src/main.py index b54341c..dd91ed4 100644 --- a/src/main.py +++ b/src/main.py @@ -111,24 +111,22 @@ async def health(): if __name__ == "__main__": import uvicorn - import os - - # 直接从环境变量获取端口,避免配置导入问题 - host = os.getenv('HOST', '0.0.0.0') - port = int(os.getenv('PORT', '8000')) + + # 从配置文件获取端口配置 + from config.settings import settings print("启动模具几何分析服务 v3.0...") - print(f"访问 http://localhost:{port} 使用网页界面") + print(f"访问 http://localhost:{settings.PORT} 使用网页界面") print("新增功能:") print(" - STP文件解析为JSON数据") print(" - 数据存储到PostgreSQL数据库") print(" - 自动生成3D可视化HTML页面") print(" - 源文件、JSON数据、HTML文件统一管理") - print(f"调试接口: http://localhost:{port}/debug/tasks") + print(f"调试接口: http://localhost:{settings.PORT}/debug/tasks") uvicorn.run( "main:app", - host=host, - port=port, + host=settings.HOST, + port=settings.PORT, reload=True ) \ No newline at end of file diff --git a/start.sh b/start.sh index 53864a6..33a0f34 100644 --- a/start.sh +++ b/start.sh @@ -49,7 +49,8 @@ echo "🔧 检查数据库连接..." # 启动服务 echo "🚀 启动 MoldInsight 服务..." -echo "🌐 服务将在 http://localhost:8000 启动" +PORT=$(grep '^PORT=' .env 2>/dev/null | cut -d'=' -f2 || echo '8000') +echo "🌐 服务将在 http://localhost:${PORT} 启动" echo "📊 功能特性:" echo " - STP文件解析和几何分析" echo " - JSON数据导出" diff --git a/start_fixed.sh b/start_fixed.sh index 53864a6..33a0f34 100644 --- a/start_fixed.sh +++ b/start_fixed.sh @@ -49,7 +49,8 @@ echo "🔧 检查数据库连接..." # 启动服务 echo "🚀 启动 MoldInsight 服务..." -echo "🌐 服务将在 http://localhost:8000 启动" +PORT=$(grep '^PORT=' .env 2>/dev/null | cut -d'=' -f2 || echo '8000') +echo "🌐 服务将在 http://localhost:${PORT} 启动" echo "📊 功能特性:" echo " - STP文件解析和几何分析" echo " - JSON数据导出"