.env.stats.test 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. # 测试服环境变量
  2. APP_ENV=test
  3. # Prisma Config
  4. # Note: replicaSet parameter removed to avoid transaction permission issues with limited DB users
  5. MYSQL_URL="mysql://boxdbuser:dwR%3D%29whu2Ze@localhost:3306/box_admin"
  6. MONGO_URL="mongodb://boxuser:dwR%3D%29whu2Ze@localhost:27017/box_admin?authSource=admin"
  7. MONGO_STATS_URL="mongodb://boxstatuser:tQlVvHbXhge8RUy@localhost:27017/box_stats?authSource=admin"
  8. # dave local
  9. # MYSQL_URL="mysql://root:123456@localhost:3306/box_admin"
  10. # MONGO_URL="mongodb://admin:ZXcv%21%21996@localhost:27017/box_admin?authSource=admin"
  11. # MONGO_STATS_URL="mongodb://admin:ZXcv%21%21996@localhost:27017/box_stats?authSource=admin"
  12. # office dev env
  13. # MYSQL_URL="mysql://root:123456@192.168.0.100:3306/box_admin"
  14. # MONGO_URL="mongodb://msAdmin:Fl1%2A29MJe%26jLvj@192.168.0.100:27017/box_admin?authSource=admin"
  15. # MONGO_STATS_URL="mongodb://msAdmin:Fl1%2A29MJe%26jLvj@192.168.0.100:27017/box_stats?authSource=admin"
  16. # App set to 0.0.0.0 for local LAN access
  17. APP_HOST=0.0.0.0
  18. APP_PORT=3302
  19. APP_CORS_ORIGIN=*
  20. # JWT
  21. JWT_SECRET=047df8aaa3d17dc1173c5a9a3052ba66c2b0bd96937147eb643319a0c90d132f
  22. JWT_ACCESS_TOKEN_TTL=43200
  23. # RabbitMQ Config
  24. RABBITMQ_URL="amqp://boxrabbit:BoxRabbit%232025@localhost:5672"
  25. RABBITMQ_LOGIN_EXCHANGE="stats.user"
  26. RABBITMQ_LOGIN_QUEUE="stats.user.login.q"
  27. RABBITMQ_LOGIN_ROUTING_KEY="user.login"
  28. RABBITMQ_ADS_CLICK_ROUTING_KEY="stats.ad.click"
  29. # Stats Events Queues & Routing Keys
  30. RABBITMQ_STATS_EXCHANGE="stats.user"
  31. RABBITMQ_STATS_AD_CLICK_QUEUE="stats.ad.click"
  32. RABBITMQ_STATS_AD_CLICK_ROUTING_KEY="stats.ad.click"
  33. RABBITMQ_STATS_VIDEO_CLICK_QUEUE="stats.video.click"
  34. RABBITMQ_STATS_VIDEO_CLICK_ROUTING_KEY="stats.video.click"
  35. RABBITMQ_STATS_AD_IMPRESSION_QUEUE="stats.ad.impression"
  36. RABBITMQ_STATS_AD_IMPRESSION_ROUTING_KEY="stats.ad.impression"
  37. # Stats Aggregation Scheduler (runs every 5 minutes)
  38. # Set to 'false' to disable scheduled aggregation (manual trigger only via API)
  39. STATS_AGGREGATION_ENABLED=true
  40. # Optional: limit aggregation to last N days (leave empty for all-time)
  41. # STATS_AGGREGATION_WINDOW_DAYS=30
  42. # Stats Scoring Configuration
  43. # CTR Smoothing (Laplace): (clicks + alpha) / (impressions + beta)
  44. STATS_CTR_ALPHA=1
  45. STATS_CTR_BETA=2
  46. # Scoring Weights: score = w1*popularity + w2*ctr + w3*recency
  47. # Popularity: log(1 + impressions)
  48. # CTR: smoothed click-through rate
  49. # Recency: 1/(1 + ageDays) based on firstSeenAt
  50. STATS_WEIGHT_POPULARITY=0.5
  51. STATS_WEIGHT_CTR=0.3
  52. STATS_WEIGHT_RECENCY=0.2