This commit is contained in:
浪子 2025-12-29 18:47:42 +08:00
parent eefa8daa4f
commit a22869b41f
5 changed files with 63 additions and 9 deletions

49
.env.example Normal file
View File

@ -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

View File

@ -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

View File

@ -13,4 +13,3 @@ coverage
.env.local
.env.development.local
.env.test.local
.env.production.local

1
frontend/.env.production Normal file
View File

@ -0,0 +1 @@
REACT_APP_API_URL=https://api.ssk.im

View File

@ -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