docker Desktop 本地验证: - 镜像构建成功(edu/admin-portal:test) - 容器运行正常(端口 4003) - /api/health、/api/ready、/login、/admin/dashboard 全部 200 修复项: - next.config.js 添加 output: standalone - package.json 添加 autoprefixer 依赖 - login/layout.tsx 提供 AuthProvider/ToastProvider 部署配置: - docker-compose.deploy.yml 添加 admin-portal 服务 - deploy.env.example 添加 ADMIN_PORTAL_PORT 下游工作清单(nextstep.md): - api-gateway: 缺 /api/admin/graphql 路由 - teacher-bff: 缺 16 Query + 11 Mutation - iam: 缺 BatchGetUsers 等 RPC
57 lines
1.8 KiB
Plaintext
57 lines
1.8 KiB
Plaintext
# 服务器部署环境变量模板
|
||
# 使用方式:复制到 /opt/edu/.env 并填入生产值
|
||
# cp infra/deploy.env.example /opt/edu/.env
|
||
# vim /opt/edu/.env
|
||
#
|
||
# 安全警告:
|
||
# - 此文件含敏感信息,禁止提交到 Git
|
||
# - .gitignore 已忽略 .env
|
||
# - 仅 SRE AI 或人类决策者可编辑
|
||
|
||
# ============ 数据库(服务器已有 MySQL)============
|
||
# DATABASE_URL 中的 host 需用容器名(如 edu-mysql)而非 localhost
|
||
# 因为应用容器通过 edu-shared 网络访问 MySQL 容器
|
||
DATABASE_URL=mysql://edu:changeme@edu-mysql:3306/next_edu_cloud
|
||
|
||
# ============ Redis(服务器已有 Redis)============
|
||
# 同理用容器名
|
||
REDIS_URL=redis://edu-redis:6379
|
||
|
||
# ============ JWT(生产密钥,必须修改)============
|
||
# 生成方式:openssl rand -hex 32
|
||
JWT_SECRET=CHANGE_ME_TO_STRONG_RANDOM_SECRET
|
||
JWT_ISSUER=next-edu-cloud
|
||
JWT_AUDIENCE=next-edu-cloud
|
||
|
||
# ============ 服务端口 ============
|
||
API_GATEWAY_PORT=8080
|
||
TEACHER_PORTAL_PORT=3000
|
||
ADMIN_PORTAL_PORT=4003
|
||
|
||
# ============ Kafka(P3+ 启用,留空则 Outbox publisher 持续重试)============
|
||
KAFKA_BROKERS=
|
||
|
||
# ============ 可观测性(P6 启用)============
|
||
# OTLP collector 端点,留空则服务跳过 trace 上报
|
||
OTEL_EXPORTER_OTLP_ENDPOINT=http://otel-collector:4318
|
||
LOG_LEVEL=info
|
||
|
||
# ============ Neo4j(content 服务,留空则降级模式)============
|
||
NEO4J_URL=
|
||
NEO4J_PASSWORD=
|
||
|
||
# ============ Elasticsearch(msg 服务,留空则降级模式)============
|
||
ES_URL=
|
||
|
||
# ============ ClickHouse(data-ana 服务,留空则降级模式)============
|
||
CLICKHOUSE_HOST=
|
||
CLICKHOUSE_PORT=8123
|
||
CLICKHOUSE_DATABASE=edu_analytics
|
||
CLICKHOUSE_USER=
|
||
CLICKHOUSE_PASSWORD=
|
||
|
||
# ============ LLM 配置(ai 服务,留空则降级模式)============
|
||
OPENAI_API_KEY=
|
||
OPENAI_BASE_URL=https://api.openai.com/v1
|
||
ANTHROPIC_API_KEY=
|