部署
使用 Docker 或其他平台部署 Raypx 到生产环境。
部署
Raypx 基于 TanStack Start 构建,生产输出为标准的 Node.js 服务端应用。本章介绍如何将 Raypx 部署到生产环境。
部署概览
Raypx 提供以下部署方式:
Docker
使用多阶段 Dockerfile 构建镜像,支持 Docker Compose 编排。
环境变量
所有环境变量的完整参考,按功能模块分组。
CI/CD
GitHub Actions 工作流:代码检查、测试和自动构建。
生产构建
使用以下命令进行生产构建:
pnpm build构建产物输出到 .output/ 目录。该目录包含完整的独立应用,可以直接运行,无需源码。
构建命令内部会设置 NODE_ENV=production,以优化产物体积并启用生产模式专属功能(如 HSTS 安全头)。
生产启动
构建完成后,使用以下命令启动生产服务器:
pnpm start该命令等价于:
dotenvx run -- node .output/server/index.mjs使用 dotenvx 加载 .env 文件中的环境变量,然后通过 Node.js 直接运行构建产物。
你也可以直接运行:
node .output/server/index.mjs但这种方式不会自动加载 .env 文件,需要确保所有环境变量已通过系统层面注入。
端口和主机配置
Raypx 的端口和主机通过环境变量控制:
| 环境变量 | 默认值 | 说明 |
|---|---|---|
HOST | 0.0.0.0 | 监听地址。Docker 中默认为 0.0.0.0(所有接口) |
PORT | 3001 | 监听端口 |
开发环境下,Vite 开发服务器固定监听 3001 端口(strictPort: true)。
部署到 Docker 容器时,请确保 EXPOSE 指令与 PORT 环境变量一致,以便容器端口映射正常工作。
健康检查
生产环境部署时,建议为负载均衡器或容器编排系统配置健康检查端点。Raypx 应用在正常启动后即可响应 HTTP 请求。
一个基本的健康检查配置示例:
# HTTP 健康检查
curl -f http://localhost:3001/ || exit 1Docker Compose 中的健康检查配置:
healthcheck:
test: ["CMD", "node", "-e", "require('http').get('http://localhost:3001/', (r) => process.exit(r.statusCode === 200 ? 0 : 1))"]
interval: 30s
timeout: 10s
retries: 3
start_period: 10s