commit
This commit is contained in:
parent
eefa8daa4f
commit
a22869b41f
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -13,4 +13,3 @@ coverage
|
|||
.env.local
|
||||
.env.development.local
|
||||
.env.test.local
|
||||
.env.production.local
|
||||
|
|
|
|||
|
|
@ -0,0 +1 @@
|
|||
REACT_APP_API_URL=https://api.ssk.im
|
||||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue