diff --git a/testbox/.env b/testbox/.env new file mode 100644 index 0000000..c343d24 --- /dev/null +++ b/testbox/.env @@ -0,0 +1,238 @@ +# Host and public entry +TESTBOX_DOMAIN=jvapi-test.haiyihy.com +TESTBOX_PUBLIC_BASE_URL=https://jvapi-test.haiyihy.com + +# Infra credentials. Change these before first production-like test. +MYSQL_DATABASE=likei +MYSQL_USER=likei +MYSQL_PASSWORD=change-me-likei +MYSQL_ROOT_PASSWORD=change-me-root +REDIS_PASSWORD= +NACOS_USERNAME=nacos +NACOS_PASSWORD=nacos +NACOS_NAMESPACE_ID=RedCircleServiceTest +NACOS_NAMESPACE_NAME=RedCircleServiceTest + +# Java runtime. Jar is built with Maven profile "test" for Nacos namespace, +# but runtime profile stays prod so existing profile groups still load. +SERVER_PROFILE_ACTIVE=prod +JAVA_XMS=128m +JAVA_XMX_SMALL=384m +JAVA_XMX_MEDIUM=512m +JAVA_METASPACE=192m + +# Nacos-resolved placeholders used by chatapp3-java/nacos_config. +LIKEI_MYSQL_JDBC_URL=jdbc:p6spy:mysql://mysql:3306/likei?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&useSSL=false +LIKEI_MYSQL_USERNAME=likei +LIKEI_MYSQL_PASSWORD=change-me-likei +LIKEI_REDIS_HOST=redis +LIKEI_REDIS_PORT=6379 +LIKEI_REDIS_DATABASE=0 +LIKEI_MONGO_URI=mongodb://mongo:27017/tarab_all + +# RocketMQ is deployed locally. Keep Java producer disabled first so service +# startup is stable; flip to false when you want to test MQ paths. +LIKEI_ROCKETMQ_ACCESS_KEY=test +LIKEI_ROCKETMQ_SECRET_KEY=test +LIKEI_ROCKETMQ_ENDPOINT=rocketmq-proxy:8081 +LIKEI_ROCKETMQ_LOCAL_DISABLE=true + +# Gateway route targets inside the compose network. +LIKEI_GATEWAY_ROUTE_AUTH_URI=http://auth:1000 +LIKEI_GATEWAY_ROUTE_EXTERNAL_URI=http://external:3000 +LIKEI_GATEWAY_ROUTE_ORDER_URI=http://order:2600 +LIKEI_GATEWAY_ROUTE_WALLET_URI=http://wallet:2000 +LIKEI_GATEWAY_ROUTE_LIVE_URI=http://live:2500 +LIKEI_GATEWAY_ROUTE_OTHER_URI=http://other:2400 +LIKEI_GATEWAY_ROUTE_GO_URI=http://golang:2900 +LIKEI_GATEWAY_ROUTE_INVITE_PUBLIC_URI=http://golang:2900 +LIKEI_GATEWAY_ROUTE_INVITE_APP_URI=http://golang:2900 +LIKEI_GATEWAY_ROUTE_REGISTER_REWARD_APP_URI=http://golang:2900 +LIKEI_GATEWAY_ROUTE_INVITE_INTERNAL_URI=http://golang:2900 +LIKEI_GATEWAY_ROUTE_GAME_APP_URI=http://golang:2900 +LIKEI_GATEWAY_ROUTE_GAME_INTERNAL_URI=http://golang:2900 +LIKEI_GATEWAY_ROUTE_GAME_BAISHUN_URI=http://golang:2900 +LIKEI_GATEWAY_ROUTE_FORWARD_URI=http://other:2400 +LIKEI_GATEWAY_FORWARD_ROUTE_AES_KEY=test-forward-route-aes-key +LIKEI_GATEWAY_FORWARD_AES_KEY=test-forward-aes-key + +# Java Feign targets. Runtime profile is prod, so these env vars intentionally +# override application-prod.yml service URLs such as *.prod.svc.cluster.local. +FEIGN_GATEWAY_URL=http://gateway:8080 +FEIGN_WALLET_URL=http://wallet:2000 +FEIGN_OTHER_URL=http://other:2400 +FEIGN_LIVE_URL=http://live:2500 +FEIGN_CONSOLE_URL=http://console:2700/console +FEIGN_AUTH_URL=http://auth:1000 +FEIGN_ORDER_URL=http://order:2600 +FEIGN_EXTERNAL_URL=http://external:3000 + +# Go API / cron. +CHATAPP_HTTP_LISTEN_ADDR=:2900 +CHATAPP_HTTP_INTERNAL_CALLBACK_SECRET=test-internal-callback-secret +CHATAPP_STORE_MYSQL_DSN=likei:change-me-likei@tcp(mysql:3306)/likei?charset=utf8mb4&parseTime=True&loc=Local +CHATAPP_STORE_REDIS_ADDR=redis:6379 +CHATAPP_STORE_REDIS_PASSWORD= +CHATAPP_STORE_REDIS_DB=0 +CHATAPP_JAVA_AUTH_BASE_URL=http://auth:1000 +CHATAPP_JAVA_CONSOLE_BASE_URL=http://console:2700/console +CHATAPP_JAVA_DEVICE_BASE_URL=http://other:2400 +CHATAPP_JAVA_APP_BASE_URL=http://other:2400 +CHATAPP_JAVA_BRIDGE_BASE_URL=http://console:2700/console +CHATAPP_JAVA_EXTERNAL_BASE_URL=http://external:3000 +CHATAPP_JAVA_OTHER_BASE_URL=http://other:2400 +CHATAPP_JAVA_ORDER_BASE_URL=http://order:2600 +CHATAPP_JAVA_WALLET_BASE_URL=http://wallet:2000 +CHATAPP_INVITE_PUBLIC_BASE_URL=https://jvapi-test.haiyihy.com +CHATAPP_GAME_OPEN_PUBLIC_BASE_URL=https://jvapi-test.haiyihy.com +CHATAPP_WEEK_STAR_TIMEZONE=Asia/Riyadh +CHATAPP_ROOM_TURNOVER_REWARD_TIMEZONE=Asia/Riyadh +CHATAPP_WEEK_STAR_SETTLE_INTERVAL_SECONDS=60 +CHATAPP_ROOM_TURNOVER_REWARD_SETTLE_INTERVAL_SECONDS=60 +CHATAPP_WEEK_STAR_ROCKETMQ_ENABLED=false +CHATAPP_WEEK_STAR_ROCKETMQ_ENDPOINT=rocketmq-proxy:8081 +CHATAPP_WEEK_STAR_ROCKETMQ_ACCESS_KEY=test +CHATAPP_WEEK_STAR_ROCKETMQ_ACCESS_SECRET=test + +# Source locations on the testbox. sync-to-testbox.sh populates these. +TESTBOX_SRC_ROOT=/opt/chatapp-test/sources +JAVA_SOURCE_DIR=/opt/chatapp-test/sources/chatapp3-java +GOLANG_SOURCE_DIR=/opt/chatapp-test/sources/chatapp3-golang +CRON_SOURCE_DIR=/opt/chatapp-test/sources/chatapp-cron + +# Added from .env.example on 2026-05-05 +LIKEI_PAY_WEB_PAY_BASE_URL=https://jvapi-test.haiyihy.com +LIKEI_PAY_WEB_PAY_RESULT_PAGE=/pay/result +LIKEI_PAY_WEB_PAY_RECHARGE_PAGE=/pay/recharge +LIKEI_PAY_WEB_PAY_COLLECTION_PAGE=/pay/collection +LIKEI_GOOGLE_PAY_GLOBAL_SERVER_ACCOUNT=test +LIKEI_GOOGLE_PAY_GLOBAL_PATCH_JSON=payfile/likei_google_pay.json +LIKEI_GOOGLE_PAY_TAXAB_SERVER_ACCOUNT=test +LIKEI_GOOGLE_PAY_TAXAB_PUBLIC_KEY=test +LIKEI_GOOGLE_PAY_TAXAB_PATCH_JSON=payfile/likei_google_pay.json +LIKEI_PAYPAL_MERCHANT_ID=test +LIKEI_PAYPAL_SECRET_KEY=test +LIKEI_PAYPAL_DEV_MERCHANT_ID=test +LIKEI_PAYPAL_DEV_SECRET_KEY=test +LIKEI_HUAWEI_GRANT_TYPE=client_credentials +LIKEI_HUAWEI_CLIENT_SECRET=test +LIKEI_HUAWEI_CLIENT_ID=test +LIKEI_HUAWEI_OAUTH_LOGIN_URL=https://oauth-login.cloud.huawei.com/oauth2/v3/token +LIKEI_HUAWEI_IAP_PUBLIC_KEY=test +LIKEI_PAYERMAX_SECRET_KEY=test +LIKEI_PAYERMAX_MERCHANT_ID=test +LIKEI_PAYERMAX_RSA_PRIVATE_KEY=test +LIKEI_PAYERMAX_RSA_PUBLIC_KEY=test +LIKEI_PAYERMAX_PLATFORM_RSA_PUBLIC_KEY=test +LIKEI_PAYERMAX_APP_ID=test +LIKEI_PAYERMAX_GATEWAY_BASE_URL=https://pay-gate-uat.payermax.com +LIKEI_PAYERMAX_ENABLE_REAL_TIME_EXCHANGE_RATE=false +LIKEI_AIRWALLEX_CLIENT_ID=test +LIKEI_AIRWALLEX_API_KEY=test +LIKEI_AIRWALLEX_BASE_URL=https://api-demo.airwallex.com +LIKEI_PAYNICORN_APP_KEY=test +LIKEI_PAYNICORN_MERCHANT_SECRET=test +LIKEI_CLIPSPAY_MERCHANT_NO=test +LIKEI_CLIPSPAY_MD5_SECRET_KEY=test +LIKEI_CLIPSPAY_TERMINAL_NO=test +LIKEI_CLIPSPAY_TERMINAL_KEY=test +LIKEI_CLIPSPAY_NOTIFY_URL=https://jvapi-test.haiyihy.com/play-server-notice/clipspay +LIKEI_CLIPSPAY_PLACE_ORDER_API=https://example.invalid +LIKEI_CLIPSPAY_REDIRECT_RESULT=https://jvapi-test.haiyihy.com/pay/result +LIKEI_ORDER_TELEGRAM_BOT_TOKEN=test +LIKEI_ORDER_TELEGRAM_WEBHOOK_URL=https://jvapi-test.haiyihy.com + +# Added from .env.example on 2026-05-05 +LIKEI_FRAMEWORK_NACOS_STOP_KEY=test +GAME_INTERNAL_CALLBACK_SECRET=test-game-callback-secret +GAME_LUCKY_GIFT_GO_URL=http://golang:2900 +LUCKY_GIFT_GO_ENABLED=false +LUCKY_GIFT_GO_TIMEOUT_MILLIS=3000 +LUCKY_GIFT_API_ENABLED=false +LUCKY_GIFT_API_DEFAULT_URL=https://example.invalid +LUCKY_GIFT_API_CONFIG_1_STANDARD_ID=1 +LUCKY_GIFT_API_CONFIG_1_URL=https://example.invalid +LUCKY_GIFT_API_CONFIG_2_STANDARD_ID=2 +LUCKY_GIFT_API_CONFIG_2_URL=https://example.invalid +INVITE_CAMPAIGN_GO_ENABLED=false +INVITE_CAMPAIGN_GO_TIMEOUT_MILLIS=3000 +INVITE_CAMPAIGN_GO_URL=http://golang:2900 +LIKEI_WALLET_MYSQL_JDBC_URL=jdbc:p6spy:mysql://mysql:3306/likei?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&useSSL=false +LIKEI_PAY_FACTORY_CONFIG_CACHE_TTL_SECONDS=300 +LIKEI_RTC_APP_ID=394a676c0c6d4c8e8bb2fd8cd2a6082b +LIKEI_RTC_AUTH_KEY=test +LIKEI_RTC_CERTIFICATE=37df85d697084560a23defc5827e5463 +LIKEI_RTC_KILL_ROOM_URL=https://example.invalid +LIKEI_AGORA_APP_CERTIFICATE=37df85d697084560a23defc5827e5463 +LIKEI_AGORA_AUTH_KEY=test +LIKEI_AGORA_TOKEN_EXPIRE_SECOND=3600 +LIKEI_AGORA_PRIVILEGE_EXPIRE_SECOND=3600 +LIKEI_IM_APP_ID=20040101 +LIKEI_IM_KEY=2f6a5ec58cccf79647557a96c15e6efe89ba5a44c474096bde2589a633fcd45e +LIKEI_IM_IDENTIFIER=administrator +LIKEI_IM_BASE_ENDPOINT=https://console.tim.qq.com +LIKEI_IM_NOTICE_ACCOUNT=notice +LIKEI_IM_NEWSLETTER_ACCOUNT=newsletter +LIKEI_IM_BROADCAST_GROUP_LOTFUN=test-lotfun +LIKEI_IM_BROADCAST_GROUP_LIKEI=test-likei +LIKEI_TRTC_SECRET_ID=test +LIKEI_TRTC_SECRET_KEY=test +LIKEI_TRTC_ENDPOINT=https://trtc.tencentcloudapi.com +LIKEI_TRTC_SDK_APP_ID=1400000000 +LIKEI_TENCENT_COS_ENABLED=false +LIKEI_TENCENT_COS_SECRET_ID=test +LIKEI_TENCENT_COS_SECRET_KEY=test +LIKEI_TENCENT_COS_BUCKET=test +LIKEI_TENCENT_COS_REGION=ap-jakarta +LIKEI_TENCENT_COS_ACCESS_URL=https://example.invalid +LIKEI_TENCENT_CLS_SECRET_ID=test +LIKEI_TENCENT_CLS_SECRET_KEY=test +LIKEI_TENCENT_CLS_ENDPOINT=https://cls.tencentcloudapi.com +LIKEI_TENCENT_CLS_REGION=ap-jakarta +LIKEI_TENCENT_CLOUD_IMS_SECRET_ID=test +LIKEI_TENCENT_CLOUD_IMS_SECRET_KEY=test +LIKEI_TENCENT_CLOUD_IMS_ENDPOINT=https://ims.tencentcloudapi.com +LIKEI_TENCENT_CLOUD_IMS_REGION=ap-jakarta +LIKEI_ALIYUN_OSS_ENDPOINT=oss-ap-southeast-1.aliyuncs.com +LIKEI_ALIYUN_OSS_BUCKET_NAME=test +LIKEI_ALIYUN_OSS_ACCESS_URL=https://example.invalid +LIKEI_ALIYUN_OSS_ACCESS_KEY_ID=test +LIKEI_ALIYUN_OSS_ACCESS_KEY_SECRET=test +LIKEI_ALIYUN_STS_ENDPOINT=sts.aliyuncs.com +LIKEI_ALIYUN_STS_ROLE_ARN=test +LIKEI_SMS_ALIYUN_ENABLED=false +LIKEI_SMS_ALIYUN_SIGN_NAME=test +LIKEI_SMS_ALIYUN_ACCESS_KEY_ID=test +LIKEI_SMS_ALIYUN_ACCESS_KEY_SECRET=test +LIKEI_SMS_ALIYUN_ENDPOINT=dysmsapi.aliyuncs.com +LIKEI_CENSOR_ACTIVE=qcloud +LIKEI_CENSOR_TUPU_ENABLED=false +LIKEI_AI_MINIMAX_URL=https://example.invalid +LIKEI_AI_MINIMAX_AUTHORIZATION=test +LIKEI_AI_MINIMAX_MODEL=test +LIKEI_AI_QIANFAN_URL=https://example.invalid +LIKEI_AI_QIANFAN_APP_ID=test +LIKEI_AI_QIANFAN_AUTHORIZATION=test +LIKEI_AI_QIANFAN_MODEL=test +LIKEI_AI_TTS_URL=https://example.invalid +LIKEI_AI_TTS_MODEL=test +LIKEI_TELEGRAM_BOT_TOKEN=test +LIKEI_TELEGRAM_MONITOR_CHAT_ID_1=0 +LIKEI_TELEGRAM_MONITOR_ALERT_LIMIT_SECONDS=300 +LIKEI_TELEGRAM_MONITOR_PROXY_HOST= +LIKEI_TELEGRAM_MONITOR_PROXY_PORT=0 +LIKEI_VISUAL_MONITOR_USERNAME=admin +LIKEI_VISUAL_MONITOR_PASSWORD=admin +LIKEI_GAME_SUD_APP_ID=test +LIKEI_GAME_SUD_APP_KEY=test +LIKEI_GAME_SUD_APP_SECRET=test +LIKEI_GAME_SUD_APP_CHANNEL=test +LIKEI_GAME_BAISHUN_APP_ID=test +LIKEI_GAME_BAISHUN_APP_KEY=test +LIKEI_GAME_BAISHUN_APP_CHANNEL=test +LIKEI_GAME_BAISHUN2FUN_APP_ID=test +LIKEI_GAME_BAISHUN2FUN_APP_KEY=test +LIKEI_GAME_BAISHUN2FUN_APP_CHANNEL=test +LIKEI_GAME_HKYS_SIGN_KEY=test +LIKEI_GAME_HOTGAME_SIGN_KEY=test +LIKEI_YOMI_AES_KEY=test-yomi-aes-key diff --git a/testbox/.gitignore b/testbox/.gitignore index 9b61749..8d011e8 100644 --- a/testbox/.gitignore +++ b/testbox/.gitignore @@ -1,4 +1,3 @@ -.env mysql/baseline/*.sql !mysql/baseline/README.md !mysql/baseline/.gitkeep