BingLogyBlog-Backend/.env.example
laobinghu 37742571ae feat: 完成项目初始化并重构部署流程
主要变更:
- 添加完整的项目结构和模块(admin、articles、comments、users、session、oauth2、email、moderation、analytics、jobs 等)
- 实现系统初始化 API(/init/status 和 /init/run)
- 重写部署流程:迁移到 package.json scripts,删除 Makefile
- 优化部署脚本:deploy.sh、healthcheck.sh、backup.sh、restore.sh、verify-env.sh
- 更新 README.md:简化文档,整合部署指南
- 优化 AGENTS.md:精简到约 150 行,包含完整的代码规范和命令速查
- 配置 Docker Compose 自动化部署(prisma migrate deploy + seed)
- 生成 OAuth2 RSA 密钥对支持
- 添加环境变量验证和数据库备份恢复功能
2026-03-28 16:53:25 +08:00

67 lines
1.6 KiB
Plaintext
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.

# ===== Server =====
NODE_ENV=production
PORT=3001
APP_BASE_URL=http://localhost:3001
# ===== DB =====
DATABASE_URL=postgresql://blog:blog@postgres:5432/linkshare?schema=public
# ===== Redis (BullMQ) =====
REDIS_HOST=redis
REDIS_PORT=6379
REDIS_PASSWORD=
# ===== Session (后端登录态 cookie) =====
SESSION_COOKIE_SECRET=change_me
SESSION_COOKIE_NAME=linkshare_session
SESSION_COOKIE_SECURE=false
SESSION_COOKIE_HTTPONLY=true
# ===== OAuth2 Provider =====
OAUTH2_ISSUER=http://localhost:3001
OAUTH2_ACCESS_TOKEN_TTL_SECONDS=3600
OAUTH2_REFRESH_TOKEN_TTL_SECONDS=2592000
OAUTH2_TOKEN_SIGNING_PRIVATE_KEY=-----BEGIN PRIVATE KEY-----
...
-----END PRIVATE KEY-----
OAUTH2_TOKEN_SIGNING_PUBLIC_KEY=-----BEGIN PUBLIC KEY-----
...
-----END PUBLIC KEY-----
# Provider default client给 web/admin 使用)
OAUTH2_DEFAULT_CLIENT_ID=web-client
OAUTH2_DEFAULT_CLIENT_SECRET=change_me
OAUTH2_DEFAULT_REDIRECT_URI=http://localhost:3000/auth/callback
# ===== AI (BYOK via OpenRouter/AiMixHub) =====
AI_PROVIDER=openrouter
AI_API_KEY=change_me
AI_BASE_URL=https://openrouter.ai/api/v1
AI_MODEL_NAME=meta-llama/llama-3.1-70b-instruct
AI_REVIEW_ENABLED=true
AI_REVIEW_TEMPERATURE=0.2
# ===== SMTP =====
SMTP_HOST=smtp.example.com
SMTP_PORT=587
SMTP_USER=user@example.com
SMTP_PASS=change_me
SMTP_FROM="LinkShare Blog <no-reply@example.com>"
# ===== Visitor analytics cookie =====
VISITOR_COOKIE_NAME=linkshare_visitor
VISITOR_COOKIE_MAX_AGE_DAYS=365
# ===== Link access =====
LINK_URL_MODE_DEFAULT=slug_token
# ===== Security =====
PASSWORD_SALT_ROUNDS=12
# ===== Rate Limiting =====
THROTTLE_TTL=60000
THROTTLE_LIMIT=100