.env.stats 2.3 KB

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