228 lines
6.2 KiB
YAML
228 lines
6.2 KiB
YAML
apiVersion: sub2rank.pikapython.com/v1
|
|
kind: Sub2Rank
|
|
|
|
metadata:
|
|
name: apistate
|
|
owner: unidesk
|
|
|
|
monitor:
|
|
timezone: Asia/Shanghai
|
|
refreshIntervalMinutes: 10
|
|
scoreWindow: 8h
|
|
target: PK01
|
|
cli:
|
|
workDir: /opt/unidesk
|
|
executable: bun
|
|
entrypoint: scripts/cli.ts
|
|
mainServerHost: 152.53.229.148
|
|
timeoutMs: 180000
|
|
|
|
webAuth:
|
|
username: admin
|
|
cookieName: apistate_session
|
|
sessionTtlSeconds: 43200
|
|
|
|
sub2api:
|
|
baseUrl: https://api.pikapython.com/api/v1
|
|
requestTimeoutMs: 20000
|
|
pageSize: 100
|
|
adminCredentials:
|
|
sourceRef: platform-infra/sub2api.env
|
|
emailKey: ADMIN_EMAIL
|
|
passwordKey: ADMIN_PASSWORD
|
|
|
|
lottery:
|
|
timezone: Asia/Shanghai
|
|
initialDrawCount: 1
|
|
dailyGrant:
|
|
hour: 6
|
|
minute: 0
|
|
count: 1
|
|
eligibility:
|
|
activeWithinHours: 24
|
|
statuses:
|
|
- active
|
|
excludedRoles:
|
|
- admin
|
|
excludedIdentities:
|
|
- zhuo
|
|
- huiguo
|
|
identityFields:
|
|
- username
|
|
- email
|
|
- emailLocalPart
|
|
prize:
|
|
amountUsd: 100
|
|
automaticCredit:
|
|
enabled: false
|
|
mode: dry-run
|
|
notesPrefix: Sub2Rank 每日抽奖奖金
|
|
creditTest:
|
|
targetIdentifier: admin
|
|
identityFields:
|
|
- username
|
|
- emailLocalPart
|
|
amountUsd: 0.01
|
|
notes: Sub2Rank CLI 管理员充值链路测试
|
|
|
|
ranking:
|
|
timezone: Asia/Shanghai
|
|
windowDays: 1
|
|
sourceLimit: 100
|
|
displayLimit: 20
|
|
|
|
records:
|
|
publicLimit: 20
|
|
|
|
temporal:
|
|
addressEnv: APISTATE_TEMPORAL_ADDRESS
|
|
namespace: unidesk
|
|
taskQueue: apistate
|
|
scoreScheduleWorkflowId: apistate-score-refresh-schedule
|
|
workflowExecutionTimeout: 5m
|
|
activityStartToCloseTimeout: 4m
|
|
retry:
|
|
maximumAttempts: 1
|
|
|
|
runtime:
|
|
secretsRoot: /root/.unidesk/.state/secrets
|
|
secretSourcePaths:
|
|
/root/.unidesk/.env/unified-admin-password.txt: /root/.unidesk/.env/unified-admin-password.txt
|
|
platform-infra/sub2api.env: /root/.unidesk/.state/secrets/platform-infra/sub2api.env
|
|
platform-infra/apistate.env: /root/.unidesk/.state/secrets/platform-infra/apistate.env
|
|
defaultCliTarget: local
|
|
overApiTarget: native-api
|
|
cliTargets:
|
|
local:
|
|
mode: embedded
|
|
databasePath: .state/sub2rank.sqlite
|
|
scoreCachePath: .state/account-scores.json
|
|
monitorWorkDir: /root/unidesk
|
|
temporalTaskQueue: apistate-native
|
|
production:
|
|
mode: http
|
|
baseUrl: https://apistate.hwpod.com
|
|
adminToken:
|
|
sourceRef: platform-infra/apistate.env
|
|
sourceKey: APISTATE_API_KEY
|
|
development:
|
|
mode: http
|
|
baseUrl: http://sub2rank.platform-infra-development.svc.cluster.local:8080
|
|
adminToken:
|
|
envKey: APISTATE_API_KEY
|
|
native-api:
|
|
mode: http
|
|
baseUrl: http://127.0.0.1:8080
|
|
adminToken:
|
|
sourceRef: platform-infra/apistate.env
|
|
sourceKey: APISTATE_API_KEY
|
|
native:
|
|
stateDir: .state/native
|
|
env:
|
|
APISTATE_WEB_PASSWORD:
|
|
sourceRef: /root/.unidesk/.env/unified-admin-password.txt
|
|
sourceKey: contents
|
|
APISTATE_API_KEY:
|
|
sourceRef: platform-infra/apistate.env
|
|
sourceKey: APISTATE_API_KEY
|
|
APISTATE_SESSION_SECRET:
|
|
sourceRef: platform-infra/apistate.env
|
|
sourceKey: APISTATE_SESSION_SECRET
|
|
SUB2API_ADMIN_EMAIL:
|
|
sourceRef: platform-infra/sub2api.env
|
|
sourceKey: ADMIN_EMAIL
|
|
SUB2API_ADMIN_PASSWORD:
|
|
sourceRef: platform-infra/sub2api.env
|
|
sourceKey: ADMIN_PASSWORD
|
|
services:
|
|
api:
|
|
command:
|
|
- bun
|
|
- --hot
|
|
- src/api.ts
|
|
- --config
|
|
- config/sub2rank.yaml
|
|
- --runtime
|
|
- native
|
|
pidFile: api.pid
|
|
logFile: api.log
|
|
worker:
|
|
command:
|
|
- bun
|
|
- src/worker.ts
|
|
- --config
|
|
- config/sub2rank.yaml
|
|
- --runtime
|
|
- native
|
|
pidFile: worker.pid
|
|
logFile: worker.log
|
|
web:
|
|
command:
|
|
- bunx
|
|
- vite
|
|
- --config
|
|
- vite.config.ts
|
|
pidFile: web.pid
|
|
logFile: web.log
|
|
serverTargets:
|
|
native:
|
|
listenHost: 127.0.0.1
|
|
listenPort: 8080
|
|
workerHealthHost: 127.0.0.1
|
|
workerHealthPort: 8081
|
|
webListenHost: 127.0.0.1
|
|
webListenPort: 5173
|
|
webApiBaseUrl: http://127.0.0.1:8080
|
|
secureCookies: false
|
|
databasePath: .state/sub2rank.sqlite
|
|
scoreCachePath: .state/account-scores.json
|
|
monitorWorkDir: /root/unidesk
|
|
temporalTaskQueue: apistate-native
|
|
scoreScheduleWorkflowId: apistate-native-score-refresh-schedule
|
|
adminTokenEnv: APISTATE_API_KEY
|
|
sub2apiAdminEmailEnv: SUB2API_ADMIN_EMAIL
|
|
sub2apiAdminPasswordEnv: SUB2API_ADMIN_PASSWORD
|
|
webPasswordEnv: APISTATE_WEB_PASSWORD
|
|
apiKeyEnv: APISTATE_API_KEY
|
|
sessionSecretEnv: APISTATE_SESSION_SECRET
|
|
k8s:
|
|
listenHost: 0.0.0.0
|
|
listenPort: 8080
|
|
workerHealthHost: 0.0.0.0
|
|
workerHealthPort: 8081
|
|
webListenHost: 127.0.0.1
|
|
webListenPort: 5173
|
|
webApiBaseUrl: http://127.0.0.1:8080
|
|
secureCookies: true
|
|
databasePath: /var/lib/sub2rank/sub2rank.sqlite
|
|
scoreCachePath: /var/lib/sub2rank/account-scores.json
|
|
monitorWorkDir: /opt/unidesk
|
|
temporalTaskQueue: apistate
|
|
scoreScheduleWorkflowId: apistate-score-refresh-schedule
|
|
adminTokenEnv: APISTATE_API_KEY
|
|
sub2apiAdminEmailEnv: SUB2API_ADMIN_EMAIL
|
|
sub2apiAdminPasswordEnv: SUB2API_ADMIN_PASSWORD
|
|
webPasswordEnv: APISTATE_WEB_PASSWORD
|
|
apiKeyEnv: APISTATE_API_KEY
|
|
sessionSecretEnv: APISTATE_SESSION_SECRET
|
|
development:
|
|
listenHost: 0.0.0.0
|
|
listenPort: 8080
|
|
workerHealthHost: 0.0.0.0
|
|
workerHealthPort: 8081
|
|
webListenHost: 127.0.0.1
|
|
webListenPort: 5173
|
|
webApiBaseUrl: http://127.0.0.1:8080
|
|
secureCookies: false
|
|
databasePath: /var/lib/sub2rank/sub2rank.sqlite
|
|
scoreCachePath: /var/lib/sub2rank/account-scores.json
|
|
monitorWorkDir: /opt/unidesk
|
|
temporalTaskQueue: apistate-development
|
|
scoreScheduleWorkflowId: apistate-development-score-refresh-schedule
|
|
adminTokenEnv: APISTATE_API_KEY
|
|
sub2apiAdminEmailEnv: SUB2API_ADMIN_EMAIL
|
|
sub2apiAdminPasswordEnv: SUB2API_ADMIN_PASSWORD
|
|
webPasswordEnv: APISTATE_WEB_PASSWORD
|
|
apiKeyEnv: APISTATE_API_KEY
|
|
sessionSecretEnv: APISTATE_SESSION_SECRET
|