forked from datawhale/whale-town-end
* **新增 Zulip 模块**:包含完整的集成服务,涵盖客户端池(client pool)、会话管理及事件处理。 * **新增 WebSocket 网关**:用于处理 Zulip 的实时事件监听与双向通信。 * **新增安全服务**:支持 API 密钥加密存储及凭据的安全管理。 * **新增配置管理服务**:支持配置热加载(hot-reload),实现动态配置更新。 * **新增错误处理与监控服务**:提升系统的可靠性与可观测性。 * **新增消息过滤服务**:用于内容校验及速率限制(流控)。 * **新增流初始化与会话清理服务**:优化资源管理与回收。 * **完善测试覆盖**:包含单元测试及端到端(e2e)集成测试。 * **完善详细文档**:包括 API 参考手册、配置指南及集成概述。 * **新增地图配置系统**:实现游戏地点与 Zulip Stream(频道)及 Topic(话题)的逻辑映射。 * **新增环境变量配置**:涵盖 Zulip 服务器地址、身份验证及监控相关设置。 * **更新 App 模块**:注册并启用新的 Zulip 集成模块。 * **更新 Redis 接口**:以支持增强型的会话管理功能。 * **实现 WebSocket 协议支持**:确保与 Zulip 之间的实时双向通信。
113 lines
3.1 KiB
Plaintext
113 lines
3.1 KiB
Plaintext
# 环境配置模板
|
||
# 复制此文件为 .env 并根据需要修改配置
|
||
|
||
# ===========================================
|
||
# 测试模式配置(开发/测试环境推荐)
|
||
# ===========================================
|
||
# 使用以下配置可以在没有数据库和邮件服务器的情况下进行测试
|
||
# 1. 复制此文件为 .env
|
||
# 2. 保持数据库和邮件配置为注释状态
|
||
# 3. 运行 npm run dev 启动服务
|
||
# 4. 运行测试脚本:./test-api.ps1 (Windows) 或 ./test-api.sh (Linux/macOS)
|
||
|
||
# 应用配置
|
||
NODE_ENV=development
|
||
PORT=3000
|
||
LOG_LEVEL=debug
|
||
|
||
# JWT 配置
|
||
JWT_SECRET=test_jwt_secret_key_for_development_only_32chars
|
||
JWT_EXPIRES_IN=7d
|
||
|
||
# Redis 配置(测试模式:使用文件存储)
|
||
USE_FILE_REDIS=true
|
||
REDIS_HOST=localhost
|
||
REDIS_PORT=6379
|
||
REDIS_PASSWORD=
|
||
REDIS_DB=0
|
||
|
||
# ===========================================
|
||
# 生产环境配置(取消注释并填入真实数据)
|
||
# ===========================================
|
||
|
||
# 数据库配置(生产环境取消注释)
|
||
# DB_HOST=your_mysql_host
|
||
# DB_PORT=3306
|
||
# DB_USERNAME=your_db_username
|
||
# DB_PASSWORD=your_db_password
|
||
# DB_NAME=your_db_name
|
||
|
||
# Redis 配置(生产环境取消注释并设置 USE_FILE_REDIS=false)
|
||
# USE_FILE_REDIS=false
|
||
# REDIS_HOST=your_redis_host
|
||
# REDIS_PORT=6379
|
||
# REDIS_PASSWORD=your_redis_password
|
||
# REDIS_DB=0
|
||
|
||
# 邮件服务配置(生产环境取消注释)
|
||
# EMAIL_HOST=smtp.gmail.com
|
||
# EMAIL_PORT=587
|
||
# EMAIL_SECURE=false
|
||
# EMAIL_USER=your_email@gmail.com
|
||
# EMAIL_PASS=your_app_password
|
||
# EMAIL_FROM="Whale Town Game" <noreply@whaletown.com>
|
||
|
||
# 生产环境设置(生产环境取消注释)
|
||
# NODE_ENV=production
|
||
# LOG_LEVEL=info
|
||
|
||
# ===========================================
|
||
# Zulip 集成配置
|
||
# ===========================================
|
||
|
||
# Zulip 服务器配置
|
||
ZULIP_SERVER_URL=https://zulip.xinghangee.icu/
|
||
ZULIP_BOT_EMAIL=cbot-bot@zulip.xinghangee.icu
|
||
ZULIP_BOT_API_KEY=your_bot_api_key
|
||
|
||
# Zulip API Key加密密钥(生产环境必须配置,至少32字符)
|
||
# ZULIP_API_KEY_ENCRYPTION_KEY=your_32_character_encryption_key_here
|
||
|
||
# Zulip 错误处理配置
|
||
ZULIP_DEGRADED_MODE_ENABLED=false
|
||
ZULIP_AUTO_RECONNECT_ENABLED=true
|
||
ZULIP_MAX_RECONNECT_ATTEMPTS=5
|
||
ZULIP_RECONNECT_BASE_DELAY=5000
|
||
ZULIP_API_TIMEOUT=30000
|
||
ZULIP_MAX_RETRIES=3
|
||
|
||
# Zulip 连接限制配置
|
||
ZULIP_MAX_CONNECTIONS=100
|
||
ZULIP_SESSION_TIMEOUT=30
|
||
ZULIP_CLEANUP_INTERVAL=5
|
||
|
||
# Zulip 消息配置
|
||
ZULIP_MESSAGE_RATE_LIMIT=10
|
||
ZULIP_MESSAGE_MAX_LENGTH=10000
|
||
ZULIP_CONTENT_FILTER_ENABLED=true
|
||
# ZULIP_SENSITIVE_WORDS_PATH=config/zulip/sensitive-words.txt
|
||
|
||
# Zulip 允许的Stream列表(逗号分隔,空表示允许所有)
|
||
# ZULIP_ALLOWED_STREAMS=General,Novice Village,Tavern
|
||
|
||
# WebSocket配置
|
||
# WEBSOCKET_PORT=3000
|
||
# WEBSOCKET_NAMESPACE=/game
|
||
# WEBSOCKET_PING_INTERVAL=25000
|
||
# WEBSOCKET_PING_TIMEOUT=5000
|
||
|
||
# ===========================================
|
||
# 监控配置
|
||
# ===========================================
|
||
|
||
# 健康检查间隔(毫秒)
|
||
MONITORING_HEALTH_CHECK_INTERVAL=60000
|
||
|
||
# 错误率阈值(0-1)
|
||
MONITORING_ERROR_RATE_THRESHOLD=0.1
|
||
|
||
# API响应时间阈值(毫秒)
|
||
MONITORING_RESPONSE_TIME_THRESHOLD=5000
|
||
|
||
# 内存使用阈值(0-1)
|
||
MONITORING_MEMORY_THRESHOLD=0.9 |