topfans/docker/.env.prod
Lenticular Studio Agent 65ce6bba12 feat: Dify 部署脚本修复 + AI 搭子 MVP 接入
主要改动:

fix(docker/dify-deploy): 修复脚本核心功能
- heredoc 单引号 bug: 'ENVEOF' 改为 ENVEOF,变量正确展开
- 端口默认值 8083/8084/8085 对齐 .env.prod 生产配置
- 加 dc_cmd() 兼容 docker-compose v1/v2 plugin
- openssl rand 生成强随机密码与 SECRET_KEY(42 字符)
- install 跳过已存在 .env,保护用户配置(管理员密码/SECRET_KEY)
- read -p < /dev/tty 兼容非 tty 环境(CI/CD)
- show-config 改用 DIFY_NGINX_PORT(nginx 入口)而非 APP_WEB_PORT

docs(mvp-design): 修正 §3.2 workflow inputs 描述
- 实际只有 query,删除错误的 user_id input 声明
- 节点序列图同步更新

feat(aiChatService): 新增 Dify 客户端与适配器
- service/dify_client.go: Dify Workflow 调用 + SSE 解析
- service/dify_adapter.go: 与现有 chat_service 桥接
- provider/ai_chat_provider.go: Dubbo 入口简化
- main.go: 装配 ConversationRepository + DifyClient

feat(migrations): 新增 AI 搭子会话表 ai_chat.sql
- ai_conversations / ai_messages 表 + 索引

docs: 新增 Dify 集成设计文档
- 2026-06-29-ai-chat-dify-mvp-design.md (MVP 实施级)
- 2026-06-29-ai-chat-dify-integration-v2-design.md (V2 演进路线图)
- docs/dify/角角.yml (Workflow DSL 导出)

config: 更新 env 模板与 docker 配置
- backend/.env.example: DIFY_* 环境变量声明
- docker/.env.prod: DIFY_API_BASE 对齐 8083
- docker/build.sh: 微调
- CLAUDE.md: 项目规范补充

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-02 12:32:34 +08:00

61 lines
2.4 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.

# ===================================================================
# TopFans Docker - Production Environment Variables
# ===================================================================
# IMPORTANT: Change all secrets before deploying to production
# Usage: docker-compose -f docker-compose.prod.yml --profile prod up -d
# ===================================================================
# Database
DB_PASSWORD=postgres123
# JWT Secret
JWT_SECRET=topfans-secret-key-please-change-in-production
# OSS Configuration
OSS_REGION=cn-shanghai
OSS_BUCKET_NAME=top-fans-test
OSS_STS_ROLE_ARN=acs:ram::1387642798143585:role/top-fans-oss-user
OSS_ACCESS_KEY_ID=LTAI5t99tafzfyrzbbEbjryH
OSS_ACCESS_KEY_SECRET=sBmrqG9owzi53hiV4dpE3EL2A5dn9b
OSS_AVATAR_DIR=avatar/
OSS_ASSET_DIR=asset/
OSS_TOKEN_EXPIRE_TIME=3600
# ==================== MiniMax API Configuration ====================
MINIMAX_API_KEY=sk-api-oezuuNMr5iwPdlJ1JgTJTSzhMhGtaUR5Odjjg0ZqVQ7MoMIqLuE_ginMWRkNiAiDgMY6MvTVkYCWSQ8SK1-LuldrFmohCHxCgZIbxsFYr9zxA8z08Eb8nbo
MINIMAX_API_URL=https://api.minimaxi.com/v1/image_generation
# Redis Configuration
REDIS_HOST=topfans-redis
REDIS_PORT=6379
REDIS_PASSWORD=123456
REDIS_DB=0
# ==================== 镭射卡生成器 ====================
# LASER_GEN_PROVIDER:
# openai (默认) - 后端走微达API中转站 /v1/images/edits (5 路并发 + 直接落 OSS)
# minimax - 后端直连 MiniMax
# dify - 调 Dify laser_card_variants_v1 工作流 (阻塞)
LASER_GEN_PROVIDER=openai
# ==================== 中转站 OpenAI 兼容 API微达API / XBCL====================
OPENAI_API_KEY=sk-eIOujD5rUugIRIPecFi3I2rFr6Bhxx1jsRzRm6phyNeeKrCI
OPENAI_BASE_URL=https://api.weda.cc/v1
OPENAI_MODEL=gpt-image-2
# ==================== SMS Configuration ====================
SMS_ACCESS_KEY_ID=LTAI5t6QcdJHpYbCPxM8SXYE
SMS_ACCESS_KEY_SECRET=ybvjSEb7wilMt3qT5nOppYPoNVayCD
SMS_SIGN_NAME=上海顶粉数字科技
SMS_TEMPLATE_CODE=SMS_314621237
SMS_REGION=cn-hangzhou
# ==================== Dify Configuration ====================
# 服务器上部署的 Dify 服务101.132.250.62nginx 转发到 Dify API 容器 5001
# DIFY_API_BASE: Dify 服务的 API 地址v1 是 API 前缀)
# DIFY_API_KEY: 在 Dify 控制台「工作室」→「角角」→「后端服务 API」→「API 密钥」获取,格式: app-xxxxxxxxxxxx
DIFY_API_BASE=http://101.132.250.62:8083/v1
DIFY_API_KEY=app-iCsnp0R2jJppKdmrpoeOxEfL