Files
pikasTech-apistate-development/config/sub2rank.yaml
T
2026-07-17 13:10:39 +02:00

203 lines
5.3 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
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