From a22869b41f4262787eb39b597e6dfcfa71bc1c8e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B5=AA=E5=AD=90?= Date: Mon, 29 Dec 2025 18:47:42 +0800 Subject: [PATCH] commit --- .env.example | 49 ++++++++++++++++++++++++++++++++++++++++ docker-compose.yml | 17 +++++++------- frontend/.dockerignore | 1 - frontend/.env.production | 1 + frontend/Dockerfile | 4 ++++ 5 files changed, 63 insertions(+), 9 deletions(-) create mode 100644 .env.example create mode 100644 frontend/.env.production diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..0660c84 --- /dev/null +++ b/.env.example @@ -0,0 +1,49 @@ +# ================================== +# Footprint 环境变量配置示例 +# ================================== +# 复制此文件为 .env 并填入真实的配置值 + +# ----------------------------------- +# 域名配置 +# ----------------------------------- +# 前端访问地址 +FRONTEND_URL=https://your-frontend-domain.com + +# 后端 API 地址 +API_URL=https://your-api-domain.com + +# ----------------------------------- +# 安全密钥(请修改为随机生成的密钥) +# ----------------------------------- +# 可以使用以下命令生成随机密钥: +# openssl rand -base64 32 +JWT_SECRET=your-super-secret-jwt-key-change-this-in-production +SESSION_SECRET=your-session-secret-change-this-in-production + +# ----------------------------------- +# OAuth2 - Google +# ----------------------------------- +# 获取地址: https://console.cloud.google.com/ +# 1. 创建项目 → API和服务 → 凭据 +# 2. 创建 OAuth 2.0 客户端ID +# 3. 授权的重定向 URI: https://your-api-domain.com/auth/google/callback +GOOGLE_CLIENT_ID=your-google-client-id +GOOGLE_CLIENT_SECRET=your-google-client-secret +GOOGLE_CALLBACK_URL=https://your-api-domain.com/auth/google/callback + +# ----------------------------------- +# OAuth2 - GitHub +# ----------------------------------- +# 获取地址: https://github.com/settings/developers +# 1. New OAuth App +# 2. Homepage URL: https://your-frontend-domain.com +# 3. Authorization callback URL: https://your-api-domain.com/auth/github/callback +GITHUB_CLIENT_ID=your-github-client-id +GITHUB_CLIENT_SECRET=your-github-client-secret +GITHUB_CALLBACK_URL=https://your-api-domain.com/auth/github/callback + +# ----------------------------------- +# API 速率限制(可选) +# ----------------------------------- +RATE_LIMIT_WINDOW_MS=900000 +RATE_LIMIT_MAX_REQUESTS=100 diff --git a/docker-compose.yml b/docker-compose.yml index bcb77a1..b7baba4 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -13,18 +13,19 @@ services: - PORT=5000 - NODE_ENV=production - DATABASE_PATH=/app/database/footprint.db - - JWT_SECRET=${JWT_SECRET:-your-super-secret-jwt-key} - - SESSION_SECRET=${SESSION_SECRET:-your-session-secret} + - JWT_SECRET=${JWT_SECRET} + - SESSION_SECRET=${SESSION_SECRET} - GOOGLE_CLIENT_ID=${GOOGLE_CLIENT_ID} - GOOGLE_CLIENT_SECRET=${GOOGLE_CLIENT_SECRET} - - GOOGLE_CALLBACK_URL=${GOOGLE_CALLBACK_URL:-http://localhost:5000/auth/google/callback} + - GOOGLE_CALLBACK_URL=${GOOGLE_CALLBACK_URL} - GITHUB_CLIENT_ID=${GITHUB_CLIENT_ID} - GITHUB_CLIENT_SECRET=${GITHUB_CLIENT_SECRET} - - GITHUB_CALLBACK_URL=${GITHUB_CALLBACK_URL:-http://localhost:5000/auth/github/callback} - - FRONTEND_URL=${FRONTEND_URL:-http://localhost:3000} + - GITHUB_CALLBACK_URL=${GITHUB_CALLBACK_URL} + - FRONTEND_URL=${FRONTEND_URL} + - RATE_LIMIT_WINDOW_MS=${RATE_LIMIT_WINDOW_MS:-900000} + - RATE_LIMIT_MAX_REQUESTS=${RATE_LIMIT_MAX_REQUESTS:-100} volumes: - ./backend/database:/app/database - - ./backend/.env:/app/.env restart: unless-stopped networks: - footprint-network @@ -39,11 +40,11 @@ services: build: context: ./frontend dockerfile: Dockerfile + args: + REACT_APP_API_URL: ${API_URL} container_name: footprint-frontend ports: - "3000:80" - environment: - - REACT_APP_API_URL=http://localhost:5000 depends_on: - backend restart: unless-stopped diff --git a/frontend/.dockerignore b/frontend/.dockerignore index ab439ce..d8d1bc1 100644 --- a/frontend/.dockerignore +++ b/frontend/.dockerignore @@ -13,4 +13,3 @@ coverage .env.local .env.development.local .env.test.local -.env.production.local diff --git a/frontend/.env.production b/frontend/.env.production new file mode 100644 index 0000000..4b0b189 --- /dev/null +++ b/frontend/.env.production @@ -0,0 +1 @@ +REACT_APP_API_URL=https://api.ssk.im diff --git a/frontend/Dockerfile b/frontend/Dockerfile index f23cae2..ee658ab 100644 --- a/frontend/Dockerfile +++ b/frontend/Dockerfile @@ -12,6 +12,10 @@ RUN npm install --legacy-peer-deps # 复制源代码 COPY . . +# 构建时传入环境变量(不设置默认值,从 docker-compose 传入) +ARG REACT_APP_API_URL +ENV REACT_APP_API_URL=$REACT_APP_API_URL + # 构建应用 RUN npm run build