Files
prompt-optimizer/Dockerfile
linshen 1ad32ca217 refactor: 完全移除 Vercel/Docker 代理功能以修复 SSRF 安全漏洞
修复 #179

## 变更内容

### 核心代码清理 (-2473行)
- 删除 api/proxy.js、api/stream.js、api/vercel-status.js 端点
- 删除 node-proxy/ 服务器实现
- 移除 environment.ts 中的代理检测逻辑
- 简化所有图像适配器和 LLM 服务,直接使用 baseURL
- 移除模型配置中的 useVercelProxy/useDockerProxy 字段

### 基础设施更新
- 更新 Dockerfile 移除 node-proxy 构建
- 更新 nginx.conf 移除代理路由
- 更新 supervisord.conf 移除 node-proxy 进程

### UI 优化
- 移除模型管理界面中的代理选项
- 清理国际化文件中的代理相关翻译
- 删除备份文件 ModelManager.bak.vue

### 文档同步
- 更新技术开发指南,说明功能移除原因
- 更新 Vercel 部署文档,移除代理相关说明
- 更新图像模式文档

## 安全说明

由于内置代理存在 SSRF (服务端请求伪造) 安全风险,完全移除相关功能。
推荐用户使用:
1. 桌面版应用 (无跨域限制)
2. 自建反向代理 (完全控制)
3. LLM 提供商的 CORS 友好端点

## 向后兼容性

历史数据中的 useVercelProxy/useDockerProxy 字段为可选,不会导致破坏性变更。
2025-09-30 22:08:00 +08:00

62 lines
2.0 KiB
Docker
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.
FROM node:20-slim AS base
ENV PNPM_HOME="/pnpm"
ENV PATH="$PNPM_HOME:$PATH"
RUN npm install -g corepack@latest && corepack enable
FROM base AS build
COPY . /app
WORKDIR /app
RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --frozen-lockfile
RUN pnpm run build
RUN pnpm mcp:build
FROM nginx:stable-alpine
# 安装htpasswd工具、dos2unix和supervisor
RUN apk add --no-cache apache2-utils dos2unix supervisor nodejs npm gettext curl
# 安装pnpm
RUN npm install -g pnpm
# 复制Nginx配置
COPY docker/nginx.conf /etc/nginx/conf.d/default.conf
# 复制Web应用
COPY --from=build /app/packages/web/dist /usr/share/nginx/html
# 复制MCP服务器
COPY --from=build /app/packages/mcp-server/dist /app/mcp-server/dist
COPY --from=build /app/packages/mcp-server/package.json /app/mcp-server/
COPY --from=build /app/packages/mcp-server/preload-env.js /app/mcp-server/
COPY --from=build /app/packages/mcp-server/preload-env.cjs /app/mcp-server/
# 复制构建后的包到正确位置MCP服务器依赖
COPY --from=build /app/packages /app/packages
# 复制必要的node_modules
COPY --from=build /app/node_modules /app/node_modules
# 设置默认环境变量(向前兼容)
ENV NGINX_PORT=80
# 设置MCP服务器工作目录
WORKDIR /app/mcp-server
# 复制并设置启动脚本
COPY docker/generate-config.sh /docker-entrypoint.d/40-generate-config.sh
COPY docker/generate-auth.sh /docker-entrypoint.d/30-generate-auth.sh
COPY docker/supervisord.conf /etc/supervisor/conf.d/supervisord.conf
COPY docker/start-services.sh /start-services.sh
# 确保脚本有执行权限
RUN chmod +x /docker-entrypoint.d/40-generate-config.sh
RUN chmod +x /docker-entrypoint.d/30-generate-auth.sh
RUN chmod +x /start-services.sh
# 转换可能的Windows行尾符为Unix格式
RUN dos2unix /docker-entrypoint.d/40-generate-config.sh
RUN dos2unix /docker-entrypoint.d/30-generate-auth.sh
RUN dos2unix /start-services.sh
EXPOSE 80
# 使用自定义启动脚本
CMD ["sh", "/start-services.sh"]