# midjourney-proxy-node **Repository Path**: lxm520/midjourney-proxy-node ## Basic Information - **Project Name**: midjourney-proxy-node - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-08-25 - **Last Updated**: 2026-04-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Midjourney Proxy Node - Monorepo 项目 一个基于 Node.js 的 Midjourney 代理服务,采用 Monorepo 架构设计。 ## 🚀 特性 - **Monorepo 架构**: 使用 pnpm + Turbo 管理多包项目 - **TypeScript**: 完整的类型支持 - **WebSocket 支持**: 实时通信功能 - **Docker 部署**: 优化的容器化部署方案 - **前端管理后台**: Vue3 + Element Plus 的管理界面 - **安全配置**: Helmet、CORS、速率限制等安全特性 - **健康检查**: 完整的健康监控机制 ## 🏗️ 项目结构 ``` midjourney-proxy-node/ ├── apps/ # 应用层 │ ├── api/ # 主API服务 │ └── admin/ # 管理后台 (Vue3 + Element Plus) ├── packages/ # 共享包 │ ├── auth/ # 认证模块 │ ├── database/ # 数据库模块 │ ├── types/ # 类型定义 │ ├── utils/ # 工具函数 │ └── websocket/ # WebSocket服务 ├── tools/ # 开发工具 └── docker-compose.yml # Docker编排配置 ``` ## 🐳 Docker 部署 ### 快速开始 1. **克隆项目** ```bash git clone cd midjourney-proxy-node ``` 2. **配置环境变量** ```bash cp env.docker .env # 编辑 .env 文件,配置必要的环境变量 ``` 3. **构建并启动** ```bash # 启动所有服务(API + 管理后台) docker-compose up -d --build # 或者分别启动 docker-compose up -d api # 启动API服务 docker-compose up -d admin # 启动管理后台 ``` 4. **查看服务状态** ```bash docker-compose ps docker-compose logs -f api docker-compose logs -f admin ``` ### 服务访问地址 - **API服务**: http://localhost:3000 - **管理后台**: http://localhost:4173 - **健康检查**: http://localhost:3000/health - **WebSocket**: ws://localhost:3000/ws ### 环境变量配置 主要环境变量说明: ```bash # 基础配置 NODE_ENV=production PORT=3000 TZ=Asia/Shanghai # 前端管理后台配置 ADMIN_PORT=4173 ADMIN_HOST=0.0.0.0 # CORS配置 - 支持多个域名,用逗号分隔 CORS_ORIGIN=http://localhost:3000,http://localhost:3001,http://localhost:4173 # 安全配置 HELMET_ENABLED=true COMPRESSION_ENABLED=true RATE_LIMIT_ENABLED=true # JWT配置 JWT_SECRET=your-super-secret-jwt-key # 数据库配置(可选) MYSQL_HOST=mysql MYSQL_PORT=3306 MYSQL_USERNAME=root MYSQL_PASSWORD=password MYSQL_DATABASE=midjourney_proxy # Redis配置(可选) REDIS_HOST=redis REDIS_PORT=6379 REDIS_PASSWORD= REDIS_KEY_PREFIX=midjourney: ``` ## 🔧 开发环境 ### 前置要求 - Node.js >= 20.0.0 - pnpm >= 8.0.0 ### 安装依赖 ```bash pnpm install ``` ### 开发模式 ```bash # 启动所有服务 pnpm dev # 构建项目 pnpm build # 代码检查 pnpm lint pnpm type-check ``` ## 🚀 生产部署 ### 使用 Docker Compose ```bash # 生产环境部署 docker-compose -f docker-compose.yml up -d # 查看日志 docker-compose logs -f api docker-compose logs -f admin # 停止服务 docker-compose down ``` ### 使用 Nginx 反向代理 项目包含完整的 Nginx 配置,支持: - HTTPS 重定向 - WebSocket 代理 - 静态文件缓存 - 安全头设置 - Gzip 压缩 - 前端管理后台代理 启用 Nginx 服务: ```bash # 在 docker-compose.yml 中取消注释 nginx 服务 # 配置 SSL 证书到 nginx/ssl/ 目录 docker-compose up -d nginx ``` ## 🔒 安全特性 - **Helmet**: 安全头设置 - **CORS**: 跨域资源共享控制 - **速率限制**: API 请求频率控制 - **JWT 认证**: 安全的身份验证 - **输入验证**: 请求数据验证 - **HTTPS 支持**: SSL/TLS 加密 ## 📊 监控和健康检查 - **健康检查端点**: `/health` - **Docker 健康检查**: 自动容器重启 - **日志记录**: 结构化日志输出 - **性能监控**: 请求响应时间统计 ## 🐛 故障排除 ### WebSocket 跨域问题 如果遇到 WebSocket 跨域错误,请检查: 1. **CORS 配置**: 确保 `CORS_ORIGIN` 包含前端域名 2. **HTTPS 协议**: 生产环境建议使用 HTTPS 3. **Nginx 配置**: 确保 WebSocket 代理配置正确 ### 前端管理后台访问问题 如果无法访问管理后台: 1. **端口检查**: 确保 4173 端口未被占用 2. **容器状态**: 检查 admin 容器是否正常运行 3. **日志查看**: 查看容器日志排查问题 ### 宝塔面板构建问题 在宝塔面板中构建时,如果遇到内存不足: 1. **清理缓存**: 定期清理 Docker 缓存 2. **增加 Swap**: 在宝塔面板中增加 swap 空间 3. **分批构建**: 避免同时构建多个服务 ### 构建优化 项目已优化 Docker 构建: - **多阶段构建**: 减少最终镜像大小 - **层缓存优化**: 提升构建速度 - **依赖优化**: 只安装生产依赖 - **文件过滤**: 减少构建上下文 - **前端构建**: 优化的Vue3构建流程 ## 📝 许可证 MIT License ## 🤝 贡献 欢迎提交 Issue 和 Pull Request! ## 📞 支持 如有问题,请查看: 1. 项目 Issues 2. 文档说明 3. 环境配置检查