Преглед изворни кода

chore: remove obsolete environment configuration files and add MongoDB keyfile

Dave пре 3 месеци
родитељ
комит
a5a0e56031
11 измењених фајлова са 0 додато и 775 уклоњено
  1. 0 85
      .env.app
  2. 0 85
      .env.app.dev
  3. 0 89
      .env.app.test
  4. 0 32
      .env.docker
  5. 0 92
      .env.mgnt
  6. 0 102
      .env.mgnt.dev
  7. 0 103
      .env.mgnt.test
  8. 0 62
      .env.stats
  9. 0 63
      .env.stats.dev
  10. 0 62
      .env.stats.test
  11. 0 0
      docker/mongo/mongo-keyfile

+ 0 - 85
.env.app

@@ -1,85 +0,0 @@
-# 测试服环境变量
-APP_ENV=test
-
-# Prisma Config
-# MYSQL_URL="mysql://boxdbuser:dwR%3D%29whu2Ze@localhost:3306/box_admin"
-# MONGO_URL="mongodb://boxuser:dwR%3D%29whu2Ze@localhost:27017/box_admin?authSource=admin"
-# MONGO_STATS_URL="mongodb://boxuser:dwR%3D%29whu2Ze@localhost:27017/box_stats?authSource=admin"
-
-# Dave local
-# MYSQL_URL="mysql://root:rootpass@127.0.0.1:3306/box_admin"
-MONGO_URL="mongodb://boxadmin:boxpass@127.0.0.1:27017/box_admin?replicaSet=rs0&authSource=admin"
-MONGO_STATS_URL="mongodb://boxadmin:boxpass@127.0.0.1:27017/box_stats?replicaSet=rs0&authSource=admin"
-
-# office dev env
-# MYSQL_URL="mysql://root:123456@192.168.0.100:3306/box_admin"
-# MONGO_URL="mongodb://msAdmin:Fl1%2A29MJe%26jLvj@192.168.0.100:27017/box_admin?authSource=admin"
-# MONGO_STATS_URL="mongodb://msAdmin:Fl1%2A29MJe%26jLvj@192.168.0.100:27017/box_stats?authSource=admin"
-
-# Redis Config
-REDIS_HOST=127.0.0.1
-# REDIS_HOST=192.168.0.100
-REDIS_PORT=6379
-REDIS_PASSWORD=
-REDIS_DB=0
-REDIS_KEY_PREFIX=
-
-# App set to 0.0.0.0 for local LAN access
-APP_HOST=0.0.0.0
-APP_PORT=3301
-APP_CORS_ORIGIN=*
-
-# Mgnt API for cache sync notifications
-MGNT_API_BASE_URL=http://localhost:3300
-
-# JWT
-JWT_SECRET=047df8aaa3d17dc1173c5a9a3052ba66c2b0bd96937147eb643319a0c90d132f
-JWT_ACCESS_TOKEN_TTL=43200
-
-# RabbitMQ Config
-RABBITMQ_URL="amqp://boxrabbit:BoxRabbit2025@127.0.0.1:5672"
-RABBITMQ_LOGIN_EXCHANGE="stats.user"
-RABBITMQ_LOGIN_QUEUE="stats.user.login.q"
-RABBITMQ_LOGIN_ROUTING_KEY="user.login"
-RABBITMQ_ADS_CLICK_ROUTING_KEY="stats.ad.click"
-# Stats Events Queues & Routing Keys
-RABBITMQ_STATS_EXCHANGE="stats.user"
-RABBITMQ_STATS_AD_CLICK_QUEUE="stats.ad.click"
-RABBITMQ_STATS_AD_CLICK_ROUTING_KEY="stats.ad.click"
-RABBITMQ_STATS_VIDEO_CLICK_QUEUE="stats.video.click"
-RABBITMQ_STATS_VIDEO_CLICK_ROUTING_KEY="stats.video.click"
-RABBITMQ_STATS_AD_IMPRESSION_QUEUE="stats.ad.impression"
-RABBITMQ_STATS_AD_IMPRESSION_ROUTING_KEY="stats.ad.impression"
-
-
-# Recommendation Service Config
-# Channel boost multiplier for same-channel videos (1.0 = no boost, 1.2 = 20% boost)
-RECOMMENDATION_CHANNEL_BOOST=1.1
-# Minimum candidates from tags before falling back to global set
-RECOMMENDATION_MIN_CANDIDATES_BEFORE_FALLBACK=5
-
-# LOCAL IMAGE STORAGE 配置
-IMAGE_ROOT_PATH=/media/dave/DAVEWORKS/works/fctech.my/box-project/box-repo/data/box-images
-IMAGE_ADS_SUBFOLDER=ads-cover
-
-# S3 IMAGE STORAGE 配置
-BOX_IMAGE_S3_ENABLED=false
-AWS_ACCESS_KEY_ID=AKIA6GSNGR5PISMIKCJ4
-AWS_SECRET_ACCESS_KEY=o236gEpw8NkqIaTHmu7d2N2d9NIMqLLu6Mktfyyd
-
-# Bucket name
-AWS_STORAGE_BUCKET_NAME=mybucket-imgs
-
-# The region of your bucket, more info:
-# http://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region
-AWS_S3_REGION_NAME=ap-east-1
-
-# The endpoint of your bucket, more info:
-# http://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region
-AWS_S3_ENDPOINT_URL=https://s3.ap-east-1.amazonaws.com
-
-# 上传限制
-UPLOAD_LIMIT_IMAGE=20
-UPLOAD_LIMIT_VIDEO=100
-UPLOAD_LIMIT_PDF=10
-UPLOAD_LIMIT_DEFAULT=10

+ 0 - 85
.env.app.dev

@@ -1,85 +0,0 @@
-# 测试服环境变量
-APP_ENV=development
-
-# Prisma Config
-# MYSQL_URL="mysql://boxdbuser:dwR%3D%29whu2Ze@localhost:3306/box_admin"
-# MONGO_URL="mongodb://boxuser:dwR%3D%29whu2Ze@localhost:27017/box_admin?authSource=admin"
-# MONGO_STATS_URL="mongodb://boxuser:dwR%3D%29whu2Ze@localhost:27017/box_stats?authSource=admin"
-
-# Dave local
-# MYSQL_URL="mysql://root:123456@localhost:3306/box_admin"
-# MONGO_URL="mongodb://admin:ZXcv%21%21996@localhost:27017/box_admin?authSource=admin"
-# MONGO_STATS_URL="mongodb://admin:ZXcv%21%21996@localhost:27017/box_stats?authSource=admin"
-
-# office dev env
-MYSQL_URL="mysql://root:123456@192.168.0.100:3306/box_admin"
-MONGO_URL="mongodb://msAdmin:Fl1%2A29MJe%26jLvj@192.168.0.100:27017/box_admin?authSource=admin"
-MONGO_STATS_URL="mongodb://msAdmin:Fl1%2A29MJe%26jLvj@192.168.0.100:27017/box_stats?authSource=admin"
-
-# Redis Config
-REDIS_HOST=127.0.0.1
-REDIS_PORT=6379
-REDIS_PASSWORD=
-REDIS_DB=0
-REDIS_KEY_PREFIX=
-
-# App set to 0.0.0.0 for local LAN access
-APP_HOST=0.0.0.0
-APP_PORT=3301
-APP_CORS_ORIGIN=*
-
-# Mgnt API for cache sync notifications
-MGNT_API_BASE_URL=http://localhost:3300
-
-# JWT
-JWT_SECRET=047df8aaa3d17dc1173c5a9a3052ba66c2b0bd96937147eb643319a0c90d132f
-JWT_ACCESS_TOKEN_TTL=43200
-
-# RabbitMQ Config
-RABBITMQ_URL="amqp://boxrabbit:BoxRabbit%232025@localhost:5672"
-RABBITMQ_LOGIN_EXCHANGE="stats.user"
-RABBITMQ_LOGIN_QUEUE="stats.user.login.q"
-RABBITMQ_LOGIN_ROUTING_KEY="user.login"
-RABBITMQ_ADS_CLICK_ROUTING_KEY="stats.ad.click"
-# Stats Events Queues & Routing Keys
-RABBITMQ_STATS_EXCHANGE="stats.user"
-RABBITMQ_STATS_AD_CLICK_QUEUE="stats.ad.click"
-RABBITMQ_STATS_AD_CLICK_ROUTING_KEY="stats.ad.click"
-RABBITMQ_STATS_VIDEO_CLICK_QUEUE="stats.video.click"
-RABBITMQ_STATS_VIDEO_CLICK_ROUTING_KEY="stats.video.click"
-RABBITMQ_STATS_AD_IMPRESSION_QUEUE="stats.ad.impression"
-RABBITMQ_STATS_AD_IMPRESSION_ROUTING_KEY="stats.ad.impression"
-
-
-# Recommendation Service Config
-# Channel boost multiplier for same-channel videos (1.0 = no boost, 1.2 = 20% boost)
-RECOMMENDATION_CHANNEL_BOOST=1.1
-# Minimum candidates from tags before falling back to global set
-RECOMMENDATION_MIN_CANDIDATES_BEFORE_FALLBACK=5
-
-# LOCAL IMAGE STORAGE 配置
-IMAGE_ROOT_PATH=/media/dave/DAVEWORKS/works/fctech.my/box-project/box-repo/data/box-images
-IMAGE_ADS_SUBFOLDER=ads-cover
-
-# S3 IMAGE STORAGE 配置
-BOX_IMAGE_S3_ENABLED=false
-AWS_ACCESS_KEY_ID=AKIA6GSNGR5PISMIKCJ4
-AWS_SECRET_ACCESS_KEY=o236gEpw8NkqIaTHmu7d2N2d9NIMqLLu6Mktfyyd
-
-# Bucket name
-AWS_STORAGE_BUCKET_NAME=mybucket-imgs
-
-# The region of your bucket, more info:
-# http://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region
-AWS_S3_REGION_NAME=ap-east-1
-
-# The endpoint of your bucket, more info:
-# http://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region
-AWS_S3_ENDPOINT_URL=https://s3.ap-east-1.amazonaws.com
-
-# 上传限制
-UPLOAD_LIMIT_IMAGE=20
-UPLOAD_LIMIT_VIDEO=100
-UPLOAD_LIMIT_PDF=10
-UPLOAD_LIMIT_DEFAULT=10
-

+ 0 - 89
.env.app.test

@@ -1,89 +0,0 @@
-# 测试服环境变量
-APP_ENV=test
-
-# Prisma Config
-# Note: replicaSet parameter removed to avoid transaction permission issues with limited DB users
-MYSQL_URL="mysql://boxdbuser:dwR=)whu2Ze@localhost:3306/box_admin"
-MONGO_URL="mongodb://boxuser:dwR%3D%29whu2Ze@localhost:27017/box_admin?authSource=admin"
-MONGO_STATS_URL="mongodb://boxstatuser:tQlVvHbXhge8RUy@localhost:27017/box_stats?authSource=admin"
-
-# Dave local
-# MYSQL_URL="mysql://root:123456@localhost:3306/box_admin"
-# MONGO_URL="mongodb://admin:ZXcv%21%21996@localhost:27017/box_admin?authSource=admin"
-# MONGO_STATS_URL="mongodb://admin:ZXcv%21%21996@localhost:27017/box_stats?authSource=admin"
-
-# office dev env
-# MYSQL_URL="mysql://root:123456@192.168.0.100:3306/box_admin"
-# MONGO_URL="mongodb://msAdmin:Fl1%2A29MJe%26jLvj@192.168.0.100:27017/box_admin?authSource=admin"
-# MONGO_STATS_URL="mongodb://msAdmin:Fl1%2A29MJe%26jLvj@192.168.0.100:27017/box_stats?authSource=admin"
-
-# Redis Config
-REDIS_HOST=127.0.0.1
-REDIS_PORT=6379
-REDIS_PASSWORD=
-REDIS_DB=0
-REDIS_KEY_PREFIX=
-
-# App set to 0.0.0.0 for local LAN access
-APP_HOST=0.0.0.0
-APP_PORT=3301
-APP_CORS_ORIGIN=*
-
-# Mgnt API for cache sync notifications
-MGNT_API_BASE_URL=http://localhost:3300
-
-# JWT
-JWT_SECRET=047df8aaa3d17dc1173c5a9a3052ba66c2b0bd96937147eb643319a0c90d132f
-JWT_ACCESS_TOKEN_TTL=43200
-
-# RabbitMQ Config
-RABBITMQ_URL="amqp://boxrabbit:BoxRabbit%232025@localhost:5672"
-RABBITMQ_LOGIN_EXCHANGE="stats.user"
-RABBITMQ_LOGIN_QUEUE="stats.user.login.q"
-RABBITMQ_LOGIN_ROUTING_KEY="user.login"
-RABBITMQ_ADS_CLICK_ROUTING_KEY="stats.ad.click"
-# Stats Events Queues & Routing Keys
-RABBITMQ_STATS_EXCHANGE="stats.user"
-RABBITMQ_STATS_AD_CLICK_QUEUE="stats.ad.click"
-RABBITMQ_STATS_AD_CLICK_ROUTING_KEY="stats.ad.click"
-RABBITMQ_STATS_VIDEO_CLICK_QUEUE="stats.video.click"
-RABBITMQ_STATS_VIDEO_CLICK_ROUTING_KEY="stats.video.click"
-RABBITMQ_STATS_AD_IMPRESSION_QUEUE="stats.ad.impression"
-RABBITMQ_STATS_AD_IMPRESSION_ROUTING_KEY="stats.ad.impression"
-
-
-# Recommendation Service Config
-# Channel boost multiplier for same-channel videos (1.0 = no boost, 1.2 = 20% boost)
-RECOMMENDATION_CHANNEL_BOOST=1.1
-# Minimum candidates from tags before falling back to global set
-RECOMMENDATION_MIN_CANDIDATES_BEFORE_FALLBACK=5
-
-
-# LOCAL IMAGE STORAGE 配置
-IMAGE_BASE_URL=https://app.boxt3yk.com/images
-IMAGE_ROOT_PATH=/usr/local/apps/box-project/box-images
-IMAGE_ADS_SUBFOLDER=ads-cover
-BOX_IMAGE_LOCAL_ROOT=/usr/local/apps/box-project/box-images
-
-# S3 IMAGE STORAGE 配置
-BOX_IMAGE_S3_ENABLED=false
-AWS_ACCESS_KEY_ID=AKIA6GSNGR5PISMIKCJ4
-AWS_SECRET_ACCESS_KEY=o236gEpw8NkqIaTHmu7d2N2d9NIMqLLu6Mktfyyd
-
-# Bucket name
-AWS_STORAGE_BUCKET_NAME=mybucket-imgs
-
-# The region of your bucket, more info:
-# http://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region
-AWS_S3_REGION_NAME=ap-east-1
-
-# The endpoint of your bucket, more info:
-# http://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region
-AWS_S3_ENDPOINT_URL=https://s3.ap-east-1.amazonaws.com
-
-# 上传限制
-UPLOAD_LIMIT_IMAGE=20
-UPLOAD_LIMIT_VIDEO=100
-UPLOAD_LIMIT_PDF=10
-UPLOAD_LIMIT_DEFAULT=10
-

+ 0 - 32
.env.docker

@@ -1,32 +0,0 @@
-# Shared application configuration for the docker-compose stack
-APP_HOST=0.0.0.0
-APP_CORS_ORIGIN=*
-
-MYSQL_URL="mysql://root:rootpass@box-mysql:3306/box_admin"
-
-# MONGO_URL="mongodb://boxadmin:boxpass@box-mongodb:27017/box_admin?replicaSet=rs0&authSource=admin"
-# MONGO_STATS_URL="mongodb://boxadmin:boxpass@box-mongodb:27017/box_stats?replicaSet=rs0&authSource=admin"
-MONGO_URL="mongodb://boxadmin:boxpass@box-mongodb:27017/box_admin?replicaSet=rs0&authSource=admin"
-MONGO_STATS_URL="mongodb://boxadmin:boxpass@box-mongodb:27017/box_stats?replicaSet=rs0&authSource=admin"
-
-JWT_SECRET=047df8aaa3d17dc1173c5a9a3052ba66c2b0bd96937147eb643319a0c90d132f
-
-REDIS_HOST=box-redis
-REDIS_PORT=6379
-REDIS_PASSWORD=
-REDIS_KEY_PREFIX=
-
-RABBITMQ_URL="amqp://boxrabbit:BoxRabbit2025@box-rabbitmq:5672"
-RABBITMQ_LOGIN_EXCHANGE=stats.user
-RABBITMQ_LOGIN_QUEUE=stats.user.login.q
-RABBITMQ_LOGIN_ROUTING_KEY=user.login
-RABBITMQ_ADS_CLICK_ROUTING_KEY=stats.ad.click
-RABBITMQ_STATS_EXCHANGE=stats.user
-RABBITMQ_STATS_AD_CLICK_QUEUE=stats.ad.click
-RABBITMQ_STATS_VIDEO_CLICK_QUEUE=stats.video.click
-RABBITMQ_STATS_AD_IMPRESSION_QUEUE=stats.ad.impression
-RABBITMQ_STATS_AD_CLICK_ROUTING_KEY=stats.ad.click
-RABBITMQ_STATS_VIDEO_CLICK_ROUTING_KEY=stats.video.click
-RABBITMQ_STATS_AD_IMPRESSION_ROUTING_KEY=stats.ad.impression
-RABBITMQ_DLQ_EXCHANGE=dlq.stats
-RABBITMQ_FALLBACK_REPLAY_ENABLED=false

+ 0 - 92
.env.mgnt

@@ -1,92 +0,0 @@
-# 测试服环境变量
-APP_ENV=test
-
-# Prisma Config
-# MYSQL_URL="mysql://boxdbuser:dwR%3D%29whu2Ze@localhost:3306/box_admin"
-# MONGO_URL="mongodb://boxuser:dwR%3D%29whu2Ze@localhost:27017/box_admin?authSource=admin"
-# MONGO_STATS_URL="mongodb://boxuser:dwR%3D%29whu2Ze@localhost:27017/box_stats?authSource=admin"
-
-# dave local
-# MYSQL_URL="mysql://root:123456@localhost:3306/box_admin"
-# MONGO_URL="mongodb://admin:ZXcv%21%21996@localhost:27017/box_admin?authSource=admin"
-# MONGO_STATS_URL="mongodb://admin:ZXcv%21%21996@localhost:27017/box_stats?authSource=admin"
-
-# MYSQL_URL="mysql://root:rootpass@127.0.0.1:3306/box_admin"
-MONGO_URL="mongodb://boxadmin:boxpass@127.0.0.1:27017/box_admin?authSource=admin"
-MONGO_STATS_URL="mongodb://boxadmin:boxpass@127.0.0.1:27017/box_stats?authSource=admin"
-
-# office dev env
-# MYSQL_URL="mysql://root:123456@192.168.0.100:3306/box_admin"
-# MONGO_URL="mongodb://msAdmin:Fl1%2A29MJe%26jLvj@192.168.0.100:27017/box_admin?authSource=admin"
-# MONGO_STATS_URL="mongodb://msAdmin:Fl1%2A29MJe%26jLvj@192.168.0.100:27017/box_stats?authSource=admin"
-
-# Redis Config
-REDIS_HOST=127.0.0.1
-REDIS_PORT=6379
-REDIS_PASSWORD=
-REDIS_DB=0
-REDIS_KEY_PREFIX=
-
-# RabbitMQ Config: RABBITMQ_URL="amqp://boxrabbit:BoxRabbit2025@localhost:5672"
-# RabbitMQ Config
-RABBITMQ_URL="amqp://boxrabbit:BoxRabbit2025@127.0.0.1:5672"
-RABBITMQ_LOGIN_EXCHANGE="stats.user"
-RABBITMQ_LOGIN_QUEUE="stats.user.login.q"
-RABBITMQ_LOGIN_ROUTING_KEY="user.login"
-RABBITMQ_ADS_CLICK_ROUTING_KEY="stats.ad.click"
-# Stats Events Queues & Routing Keys
-RABBITMQ_STATS_EXCHANGE="stats.user"
-RABBITMQ_STATS_AD_CLICK_QUEUE="stats.ad.click"
-RABBITMQ_STATS_AD_CLICK_ROUTING_KEY="stats.ad.click"
-RABBITMQ_STATS_VIDEO_CLICK_QUEUE="stats.video.click"
-RABBITMQ_STATS_VIDEO_CLICK_ROUTING_KEY="stats.video.click"
-RABBITMQ_STATS_AD_IMPRESSION_QUEUE="stats.ad.impression"
-RABBITMQ_STATS_AD_IMPRESSION_ROUTING_KEY="stats.ad.impression"
-
-
-# App set to 0.0.0.0 for local LAN access
-APP_HOST=0.0.0.0
-APP_PORT=3300
-APP_CORS_ORIGIN=*
-
-# 2FA config
-# node -e "console.log(require('crypto').randomBytes(32).toString('base64'))"
-TWOFA_ENC_KEY=2q89JPacSKDmuU3hJCfKQhDg3sq74QScy0ShYBoQPgM=
-APP_ISSUER=BOX-MGNT
-
-
-# JWT
-JWT_SECRET=047df8aaa3d17dc1173c5a9a3052ba66c2b0bd96937147eb643319a0c90d132f
-JWT_ACCESS_TOKEN_TTL=43200
-
-
-# LOCAL IMAGE STORAGE 配置
-# NOTE: Images are encrypted - frontend needs to access via appropriate endpoint
-# For now, using localhost. Update to actual server IP/domain for remote access
-IMAGE_BASE_URL=http://0.0.0.0:3300/images
-IMAGE_ROOT_PATH=/media/dave/DAVEWORKS/works/fctech.my/box-project/box-repo/data/box-images
-IMAGE_ADS_SUBFOLDER=ads-cover
-BOX_IMAGE_LOCAL_ROOT=/media/dave/DAVEWORKS/works/fctech.my/box-project/box-repo/data/box-images
-
-# S3 IMAGE STORAGE 配置
-BOX_IMAGE_S3_ENABLED=false
-AWS_ACCESS_KEY_ID=AKIA6GSNGR5PISMIKCJ4
-AWS_SECRET_ACCESS_KEY=o236gEpw8NkqIaTHmu7d2N2d9NIMqLLu6Mktfyyd
-
-# Bucket name
-AWS_STORAGE_BUCKET_NAME=mybucket-imgs
-
-# The region of your bucket, more info:
-# http://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region
-AWS_S3_REGION_NAME=ap-east-1
-
-# The endpoint of your bucket, more info:
-# http://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region
-AWS_S3_ENDPOINT_URL=https://s3.ap-east-1.amazonaws.com
-
-# 上传限制
-UPLOAD_LIMIT_IMAGE=20
-UPLOAD_LIMIT_VIDEO=100
-UPLOAD_LIMIT_PDF=10
-UPLOAD_LIMIT_DEFAULT=10
-

+ 0 - 102
.env.mgnt.dev

@@ -1,102 +0,0 @@
-# 测试服环境变量
-APP_ENV=development
-
-# Prisma Config
-MYSQL_URL="mysql://root:123456@192.168.0.100:3306/box_admin"
-MONGO_URL="mongodb://msAdmin:Fl1%2A29MJe%26jLvj@192.168.0.100:27017/box_admin?authSource=admin"
-MONGO_STATS_URL="mongodb://msAdmin:Fl1%2A29MJe%26jLvj@192.168.0.100:27017/box_stats?authSource=admin"
-
-# Redis Config
-REDIS_HOST=127.0.0.1
-REDIS_PORT=6379
-REDIS_PASSWORD=
-REDIS_DB=0
-REDIS_KEY_PREFIX=
-
-# RabbitMQ Config: RABBITMQ_URL="amqp://boxrabbit:BoxRabbit#2025@localhost:5672"
-# RabbitMQ Config
-RABBITMQ_URL="amqp://boxrabbit:BoxRabbit%232025@localhost:5672"
-RABBITMQ_LOGIN_EXCHANGE="stats.user"
-RABBITMQ_LOGIN_QUEUE="stats.user.login.q"
-RABBITMQ_LOGIN_ROUTING_KEY="user.login"
-RABBITMQ_ADS_CLICK_ROUTING_KEY="stats.ad.click"
-# Stats Events Queues & Routing Keys
-RABBITMQ_STATS_EXCHANGE="stats.user"
-RABBITMQ_STATS_AD_CLICK_QUEUE="stats.ad.click"
-RABBITMQ_STATS_AD_CLICK_ROUTING_KEY="stats.ad.click"
-RABBITMQ_STATS_VIDEO_CLICK_QUEUE="stats.video.click"
-RABBITMQ_STATS_VIDEO_CLICK_ROUTING_KEY="stats.video.click"
-RABBITMQ_STATS_AD_IMPRESSION_QUEUE="stats.ad.impression"
-RABBITMQ_STATS_AD_IMPRESSION_ROUTING_KEY="stats.ad.impression"
-
-
-# App set to 0.0.0.0 for local LAN access
-APP_HOST=0.0.0.0
-APP_PORT=3300
-APP_CORS_ORIGIN=*
-
-# 2FA config
-# node -e "console.log(require('crypto').randomBytes(32).toString('base64'))"
-TWOFA_ENC_KEY=2q89JPacSKDmuU3hJCfKQhDg3sq74QScy0ShYBoQPgM=
-APP_ISSUER=BOX-MGNT
-
-
-# JWT
-JWT_SECRET=047df8aaa3d17dc1173c5a9a3052ba66c2b0bd96937147eb643319a0c90d132f
-JWT_ACCESS_TOKEN_TTL=43200
-
-# JAVA 管理 API
-MGNT_API_URL=http://47.76.151.238:83
-MGNT_API_TOKEN=
-
-# IM Chat API
-IMCHAT_API_URL=http://47.76.151.238:88
-IMCHAT_API_TOKEN=
-
-# 游戏服配置
-GAME_SERVER_ADMIN_API_URL=http://119.28.182.132:83
-GAME_SERVER_TOKEN=
-
-# 第三方批量创建用户密钥
-B_BASE_URL=https://wwapi.hxc1t.com
-B_SIGN_SECRET=Z3VhbmNpbmV3ZWl4aWFvMTIzNDU2
-PARTNER_MD5_KEY=160360904be3dd23bf4f1278a74196efdbf3f9b834ce883ef6ae09eb05c5c652
-PARTNER_ITEMS_LIMIT=100
-B_BASE_ORDER_ADD=/open/open/order/add
-B_BASE_ORDER_UPDATE_STATUS=/open/open/order/updateStatus
-B_BASE_CHAT_ADD=/open/order/chat/send
-
-# Oss 配置
-OSS_ACCESS_KEY_ID=AKIA6GSNGR5PHKXR6O6H
-OSS_ACCESS_KEY_SECRET=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
-OSS_BUCKET=ww-buckets
-OSS_REGION=ap-east-1
-
-# LOCAL IMAGE STORAGE 配置
-IMAGE_BASE_URL=http://localhost:3300/images
-IMAGE_ROOT_PATH=/data/box-images
-IMAGE_ADS_SUBFOLDER=ads-cover
-
-# S3 IMAGE STORAGE 配置
-BOX_IMAGE_S3_ENABLED=false
-AWS_ACCESS_KEY_ID=AKIA6GSNGR5PISMIKCJ4
-AWS_SECRET_ACCESS_KEY=o236gEpw8NkqIaTHmu7d2N2d9NIMqLLu6Mktfyyd
-
-# Bucket name
-AWS_STORAGE_BUCKET_NAME=mybucket-imgs
-
-# The region of your bucket, more info:
-# http://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region
-AWS_S3_REGION_NAME=ap-east-1
-
-# The endpoint of your bucket, more info:
-# http://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region
-AWS_S3_ENDPOINT_URL=https://s3.ap-east-1.amazonaws.com
-
-# 上传限制
-UPLOAD_LIMIT_IMAGE=20
-UPLOAD_LIMIT_VIDEO=100
-UPLOAD_LIMIT_PDF=10
-UPLOAD_LIMIT_DEFAULT=10
-
-

+ 0 - 103
.env.mgnt.test

@@ -1,103 +0,0 @@
-# 测试服环境变量
-APP_ENV=test
-
-# Prisma Config
-# MYSQL_URL="mysql://boxdbuser:dwR=)whu2Ze@localhost:3306/box_admin"
-MONGO_URL="mongodb://admin:ZOiIskNE52rxFt5d@localhost:27117/box_admin?authSource=admin"
-MONGO_STATS_URL="mongodb://admin:ZOiIskNE52rxFt5d@localhost:27117/box_stats?authSource=admin"
-
-# Redis Config
-REDIS_HOST=127.0.0.1
-REDIS_PORT=6379
-REDIS_PASSWORD=
-REDIS_DB=0
-REDIS_KEY_PREFIX=
-
-# RabbitMQ Config: RABBITMQ_URL="amqp://boxrabbit:BoxRabbit#2025@localhost:5672"
-# RabbitMQ Config
-RABBITMQ_URL="amqp://boxrabbit:BoxRabbit%232025@localhost:5672"
-RABBITMQ_LOGIN_EXCHANGE="stats.user"
-RABBITMQ_LOGIN_QUEUE="stats.user.login.q"
-RABBITMQ_LOGIN_ROUTING_KEY="user.login"
-RABBITMQ_ADS_CLICK_ROUTING_KEY="stats.ad.click"
-# Stats Events Queues & Routing Keys
-RABBITMQ_STATS_EXCHANGE="stats.user"
-RABBITMQ_STATS_AD_CLICK_QUEUE="stats.ad.click"
-RABBITMQ_STATS_AD_CLICK_ROUTING_KEY="stats.ad.click"
-RABBITMQ_STATS_VIDEO_CLICK_QUEUE="stats.video.click"
-RABBITMQ_STATS_VIDEO_CLICK_ROUTING_KEY="stats.video.click"
-RABBITMQ_STATS_AD_IMPRESSION_QUEUE="stats.ad.impression"
-RABBITMQ_STATS_AD_IMPRESSION_ROUTING_KEY="stats.ad.impression"
-
-
-# App set to 0.0.0.0 for local LAN access
-APP_HOST=0.0.0.0
-APP_PORT=3300
-APP_CORS_ORIGIN=*
-
-# 2FA config
-# node -e "console.log(require('crypto').randomBytes(32).toString('base64'))"
-TWOFA_ENC_KEY=2q89JPacSKDmuU3hJCfKQhDg3sq74QScy0ShYBoQPgM=
-APP_ISSUER=BOX-MGNT
-
-
-# JWT
-JWT_SECRET=047df8aaa3d17dc1173c5a9a3052ba66c2b0bd96937147eb643319a0c90d132f
-JWT_ACCESS_TOKEN_TTL=43200
-
-# JAVA 管理 API
-MGNT_API_URL=http://47.76.151.238:83
-MGNT_API_TOKEN=
-
-# IM Chat API
-IMCHAT_API_URL=http://47.76.151.238:88
-IMCHAT_API_TOKEN=
-
-# 游戏服配置
-GAME_SERVER_ADMIN_API_URL=http://119.28.182.132:83
-GAME_SERVER_TOKEN=
-
-# 第三方批量创建用户密钥
-B_BASE_URL=https://wwapi.hxc1t.com
-B_SIGN_SECRET=Z3VhbmNpbmV3ZWl4aWFvMTIzNDU2
-PARTNER_MD5_KEY=160360904be3dd23bf4f1278a74196efdbf3f9b834ce883ef6ae09eb05c5c652
-PARTNER_ITEMS_LIMIT=100
-B_BASE_ORDER_ADD=/open/open/order/add
-B_BASE_ORDER_UPDATE_STATUS=/open/open/order/updateStatus
-B_BASE_CHAT_ADD=/open/order/chat/send
-
-# Oss 配置
-OSS_ACCESS_KEY_ID=AKIA6GSNGR5PHKXR6O6H
-OSS_ACCESS_KEY_SECRET=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
-OSS_BUCKET=ww-buckets
-OSS_REGION=ap-east-1
-
-# LOCAL IMAGE STORAGE 配置
-IMAGE_BASE_URL=https://app.boxt3yk.com/images
-IMAGE_ROOT_PATH=/usr/local/apps/box-project/box-images
-IMAGE_ADS_SUBFOLDER=ads-cover
-BOX_IMAGE_LOCAL_ROOT=/usr/local/apps/box-project/box-images
-
-# S3 IMAGE STORAGE 配置
-BOX_IMAGE_S3_ENABLED=false
-AWS_ACCESS_KEY_ID=AKIA6GSNGR5PISMIKCJ4
-AWS_SECRET_ACCESS_KEY=o236gEpw8NkqIaTHmu7d2N2d9NIMqLLu6Mktfyyd
-
-# Bucket name
-AWS_STORAGE_BUCKET_NAME=mybucket-imgs
-
-# The region of your bucket, more info:
-# http://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region
-AWS_S3_REGION_NAME=ap-east-1
-
-# The endpoint of your bucket, more info:
-# http://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region
-AWS_S3_ENDPOINT_URL=https://s3.ap-east-1.amazonaws.com
-
-# 上传限制
-UPLOAD_LIMIT_IMAGE=20
-UPLOAD_LIMIT_VIDEO=100
-UPLOAD_LIMIT_PDF=10
-UPLOAD_LIMIT_DEFAULT=10
-
-

+ 0 - 62
.env.stats

@@ -1,62 +0,0 @@
-# 测试服环境变量
-APP_ENV=test
-
-# Prisma Config
-# MYSQL_URL="mysql://boxdbuser:dwR%3D%29whu2Ze@localhost:3306/box_admin"
-# MONGO_URL="mongodb://boxuser:dwR%3D%29whu2Ze@localhost:27017/box_admin?authSource=admin"
-# MONGO_STATS_URL="mongodb://boxuser:dwR%3D%29whu2Ze@localhost:27017/box_stats?authSource=admin"
-
-# dave local
-# MYSQL_URL="mysql://root:rootpass@127.0.0.1:3306/box_admin"
-MONGO_URL="mongodb://boxadmin:boxpass@127.0.0.1:27017/box_admin?replicaSet=rs0&authSource=admin"
-MONGO_STATS_URL="mongodb://boxadmin:boxpass@127.0.0.1:27017/box_stats?replicaSet=rs0&authSource=admin"
-
-
-# office dev env
-# MYSQL_URL="mysql://root:123456@192.168.0.100:3306/box_admin"
-# MONGO_URL="mongodb://msAdmin:Fl1%2A29MJe%26jLvj@192.168.0.100:27017/box_admin?authSource=admin"
-# MONGO_STATS_URL="mongodb://msAdmin:Fl1%2A29MJe%26jLvj@192.168.0.100:27017/box_stats?authSource=admin"
-
-# App set to 0.0.0.0 for local LAN access
-APP_HOST=0.0.0.0
-APP_PORT=3302
-APP_CORS_ORIGIN=*
-
-
-# JWT
-JWT_SECRET=047df8aaa3d17dc1173c5a9a3052ba66c2b0bd96937147eb643319a0c90d132f
-JWT_ACCESS_TOKEN_TTL=43200
-
-# RabbitMQ Config
-RABBITMQ_URL="amqp://boxrabbit:BoxRabbit2025@127.0.0.1:5672"
-RABBITMQ_LOGIN_EXCHANGE="stats.user"
-RABBITMQ_LOGIN_QUEUE="stats.user.login.q"
-RABBITMQ_LOGIN_ROUTING_KEY="user.login"
-RABBITMQ_ADS_CLICK_ROUTING_KEY="stats.ad.click"
-# Stats Events Queues & Routing Keys
-RABBITMQ_STATS_EXCHANGE="stats.user"
-RABBITMQ_STATS_AD_CLICK_QUEUE="stats.ad.click"
-RABBITMQ_STATS_AD_CLICK_ROUTING_KEY="stats.ad.click"
-RABBITMQ_STATS_VIDEO_CLICK_QUEUE="stats.video.click"
-RABBITMQ_STATS_VIDEO_CLICK_ROUTING_KEY="stats.video.click"
-RABBITMQ_STATS_AD_IMPRESSION_QUEUE="stats.ad.impression"
-RABBITMQ_STATS_AD_IMPRESSION_ROUTING_KEY="stats.ad.impression"
-
-# Stats Aggregation Scheduler (runs every 5 minutes)
-# Set to 'false' to disable scheduled aggregation (manual trigger only via API)
-STATS_AGGREGATION_ENABLED=true
-# Optional: limit aggregation to last N days (leave empty for all-time)
-# STATS_AGGREGATION_WINDOW_DAYS=30
-
-# Stats Scoring Configuration
-# CTR Smoothing (Laplace): (clicks + alpha) / (impressions + beta)
-STATS_CTR_ALPHA=1
-STATS_CTR_BETA=2
-
-# Scoring Weights: score = w1*popularity + w2*ctr + w3*recency
-# Popularity: log(1 + impressions)
-# CTR: smoothed click-through rate
-# Recency: 1/(1 + ageDays) based on firstSeenAt
-STATS_WEIGHT_POPULARITY=0.5
-STATS_WEIGHT_CTR=0.3
-STATS_WEIGHT_RECENCY=0.2

+ 0 - 63
.env.stats.dev

@@ -1,63 +0,0 @@
-# 测试服环境变量
-APP_ENV=development
-
-
-# Prisma Config
-# MYSQL_URL="mysql://boxdbuser:dwR%3D%29whu2Ze@localhost:3306/box_admin"
-# MONGO_URL="mongodb://boxuser:dwR%3D%29whu2Ze@localhost:27017/box_admin?authSource=admin"
-# MONGO_STATS_URL="mongodb://boxuser:dwR%3D%29whu2Ze@localhost:27017/box_stats?authSource=admin"
-
-# dave local
-MYSQL_URL="mysql://root:123456@localhost:3306/box_admin"
-MONGO_URL="mongodb://admin:ZXcv%21%21996@localhost:27017/box_admin?authSource=admin"
-MONGO_STATS_URL="mongodb://admin:ZXcv%21%21996@localhost:27017/box_stats?authSource=admin"
-
-
-# office dev env
-# MYSQL_URL="mysql://root:123456@192.168.0.100:3306/box_admin"
-# MONGO_URL="mongodb://msAdmin:Fl1%2A29MJe%26jLvj@192.168.0.100:27017/box_admin?authSource=admin"
-# MONGO_STATS_URL="mongodb://msAdmin:Fl1%2A29MJe%26jLvj@192.168.0.100:27017/box_stats?authSource=admin"
-
-# App set to 0.0.0.0 for local LAN access
-APP_HOST=0.0.0.0
-APP_PORT=3302
-APP_CORS_ORIGIN=*
-
-
-# JWT
-JWT_SECRET=047df8aaa3d17dc1173c5a9a3052ba66c2b0bd96937147eb643319a0c90d132f
-JWT_ACCESS_TOKEN_TTL=43200
-
-# RabbitMQ Config
-RABBITMQ_URL="amqp://boxrabbit:BoxRabbit%232025@localhost:5672"
-RABBITMQ_LOGIN_EXCHANGE="stats.user"
-RABBITMQ_LOGIN_QUEUE="stats.user.login.q"
-RABBITMQ_LOGIN_ROUTING_KEY="user.login"
-RABBITMQ_ADS_CLICK_ROUTING_KEY="stats.ad.click"
-# Stats Events Queues & Routing Keys
-RABBITMQ_STATS_EXCHANGE="stats.user"
-RABBITMQ_STATS_AD_CLICK_QUEUE="stats.ad.click"
-RABBITMQ_STATS_AD_CLICK_ROUTING_KEY="stats.ad.click"
-RABBITMQ_STATS_VIDEO_CLICK_QUEUE="stats.video.click"
-RABBITMQ_STATS_VIDEO_CLICK_ROUTING_KEY="stats.video.click"
-RABBITMQ_STATS_AD_IMPRESSION_QUEUE="stats.ad.impression"
-RABBITMQ_STATS_AD_IMPRESSION_ROUTING_KEY="stats.ad.impression"
-
-# Stats Aggregation Scheduler (runs every 5 minutes)
-# Set to 'false' to disable scheduled aggregation (manual trigger only via API)
-STATS_AGGREGATION_ENABLED=true
-# Optional: limit aggregation to last N days (leave empty for all-time)
-# STATS_AGGREGATION_WINDOW_DAYS=30
-
-# Stats Scoring Configuration
-# CTR Smoothing (Laplace): (clicks + alpha) / (impressions + beta)
-STATS_CTR_ALPHA=1
-STATS_CTR_BETA=2
-
-# Scoring Weights: score = w1*popularity + w2*ctr + w3*recency
-# Popularity: log(1 + impressions)
-# CTR: smoothed click-through rate
-# Recency: 1/(1 + ageDays) based on firstSeenAt
-STATS_WEIGHT_POPULARITY=0.5
-STATS_WEIGHT_CTR=0.3
-STATS_WEIGHT_RECENCY=0.2

+ 0 - 62
.env.stats.test

@@ -1,62 +0,0 @@
-# 测试服环境变量
-APP_ENV=test
-
-# Prisma Config
-# Note: replicaSet parameter removed to avoid transaction permission issues with limited DB users
-MYSQL_URL="mysql://boxdbuser:dwR%3D%29whu2Ze@localhost:3306/box_admin"
-MONGO_URL="mongodb://boxuser:dwR%3D%29whu2Ze@localhost:27017/box_admin?authSource=admin"
-MONGO_STATS_URL="mongodb://boxstatuser:tQlVvHbXhge8RUy@localhost:27017/box_stats?authSource=admin"
-
-# dave local
-# MYSQL_URL="mysql://root:123456@localhost:3306/box_admin"
-# MONGO_URL="mongodb://admin:ZXcv%21%21996@localhost:27017/box_admin?authSource=admin"
-# MONGO_STATS_URL="mongodb://admin:ZXcv%21%21996@localhost:27017/box_stats?authSource=admin"
-
-# office dev env
-# MYSQL_URL="mysql://root:123456@192.168.0.100:3306/box_admin"
-# MONGO_URL="mongodb://msAdmin:Fl1%2A29MJe%26jLvj@192.168.0.100:27017/box_admin?authSource=admin"
-# MONGO_STATS_URL="mongodb://msAdmin:Fl1%2A29MJe%26jLvj@192.168.0.100:27017/box_stats?authSource=admin"
-
-# App set to 0.0.0.0 for local LAN access
-APP_HOST=0.0.0.0
-APP_PORT=3302
-APP_CORS_ORIGIN=*
-
-
-# JWT
-JWT_SECRET=047df8aaa3d17dc1173c5a9a3052ba66c2b0bd96937147eb643319a0c90d132f
-JWT_ACCESS_TOKEN_TTL=43200
-
-# RabbitMQ Config
-RABBITMQ_URL="amqp://boxrabbit:BoxRabbit%232025@localhost:5672"
-RABBITMQ_LOGIN_EXCHANGE="stats.user"
-RABBITMQ_LOGIN_QUEUE="stats.user.login.q"
-RABBITMQ_LOGIN_ROUTING_KEY="user.login"
-RABBITMQ_ADS_CLICK_ROUTING_KEY="stats.ad.click"
-# Stats Events Queues & Routing Keys
-RABBITMQ_STATS_EXCHANGE="stats.user"
-RABBITMQ_STATS_AD_CLICK_QUEUE="stats.ad.click"
-RABBITMQ_STATS_AD_CLICK_ROUTING_KEY="stats.ad.click"
-RABBITMQ_STATS_VIDEO_CLICK_QUEUE="stats.video.click"
-RABBITMQ_STATS_VIDEO_CLICK_ROUTING_KEY="stats.video.click"
-RABBITMQ_STATS_AD_IMPRESSION_QUEUE="stats.ad.impression"
-RABBITMQ_STATS_AD_IMPRESSION_ROUTING_KEY="stats.ad.impression"
-
-# Stats Aggregation Scheduler (runs every 5 minutes)
-# Set to 'false' to disable scheduled aggregation (manual trigger only via API)
-STATS_AGGREGATION_ENABLED=true
-# Optional: limit aggregation to last N days (leave empty for all-time)
-# STATS_AGGREGATION_WINDOW_DAYS=30
-
-# Stats Scoring Configuration
-# CTR Smoothing (Laplace): (clicks + alpha) / (impressions + beta)
-STATS_CTR_ALPHA=1
-STATS_CTR_BETA=2
-
-# Scoring Weights: score = w1*popularity + w2*ctr + w3*recency
-# Popularity: log(1 + impressions)
-# CTR: smoothed click-through rate
-# Recency: 1/(1 + ageDays) based on firstSeenAt
-STATS_WEIGHT_POPULARITY=0.5
-STATS_WEIGHT_CTR=0.3
-STATS_WEIGHT_RECENCY=0.2

+ 0 - 0
docker/mongo/mongo-keyfile.md → docker/mongo/mongo-keyfile