Files
gongxue-base/scripts/deploy/env/worker.env.example
2026-07-12 19:26:57 +08:00

125 lines
4.9 KiB
Plaintext

# Copy to /etc/tiku-saas/worker.env and chmod 600.
# This file is read by every worker systemd unit. Do not commit the real file.
NODE_ENV=production
DATABASE_URL=postgresql://tiku_worker:replace-with-password@127.0.0.1:5432/postgres
DB_EXPECTED_RUNTIME_ROLE=tiku_worker
# There are nine continuous worker processes; budget total PostgreSQL connections accordingly.
DB_POOL_MAX=5
DB_CONNECTION_TIMEOUT_MS=5000
DB_QUERY_TIMEOUT_MS=35000
DB_STATEMENT_TIMEOUT_MS=30000
DB_LOCK_TIMEOUT_MS=5000
DB_IDLE_IN_TRANSACTION_TIMEOUT_MS=30000
DB_IDLE_TIMEOUT_MS=30000
DB_POOL_MAX_USES=7500
DB_POOL_MAX_LIFETIME_SECONDS=1800
DB_APPLICATION_NAME=tiku-worker
# Object storage settings read by apps/worker/src/config.ts.
STORAGE_DEFAULT_PROVIDER=aliyun_oss
STORAGE_DEFAULT_BUCKET=replace-with-bucket
STORAGE_PUBLIC_BASE_URL=https://replace-with-public-assets.example.com
STORAGE_MAX_UPLOAD_BYTES=524288000
STORAGE_ALLOWED_MIME_PREFIXES=image/,video/,audio/
STORAGE_ALLOWED_MIME_TYPES=application/pdf,application/json,application/zip,application/vnd.openxmlformats-officedocument.wordprocessingml.document,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,text/plain,text/markdown,text/csv
STORAGE_REQUIRE_TENANT_PREFIX=true
ALIYUN_OSS_REGION=oss-cn-beijing
ALIYUN_OSS_ENDPOINT=https://oss-cn-beijing.aliyuncs.com
ALIYUN_OSS_ACCESS_KEY_ID=replace-with-access-key-id
ALIYUN_OSS_ACCESS_KEY_SECRET=replace-with-access-key-secret
ALIYUN_OSS_STS_TOKEN=
ALIYUN_OSS_INTERNAL=false
# Production asset scans are fail-closed and use the WORKER_* names below.
WORKER_ASSET_SECURITY_SCANNER=metadata_rules,http
WORKER_ASSET_SECURITY_SCAN_HTTP_ENDPOINT=https://replace-with-security-scanner.example.com/scan
WORKER_ASSET_SECURITY_SCAN_HTTP_TOKEN=replace-with-strong-scanner-token
WORKER_ASSET_SECURITY_SCAN_HTTP_TIMEOUT_MS=10000
WORKER_ASSET_SECURITY_SCAN_FAIL_OPEN=false
# Continuous queue consumers managed by tiku-worker@.service.
WORKER_CRM_BATCH_SIZE=20
WORKER_CRM_POLL_INTERVAL_MS=10000
WORKER_CRM_MAX_ATTEMPTS=5
WORKER_CRM_BACKOFF_SECONDS=5,30,120,600,1800
WORKER_CRM_REQUEST_TIMEOUT_MS=10000
WORKER_CRM_ALLOW_INSECURE_LOCALHOST=false
WORKER_COMMERCE_BATCH_SIZE=20
WORKER_COMMERCE_POLL_INTERVAL_MS=30000
WORKER_COMMERCE_MIN_AGE_SECONDS=300
WORKER_COMMERCE_REQUEST_TIMEOUT_MS=10000
WORKER_PROVIDER_BILL_BATCH_SIZE=5
WORKER_PROVIDER_BILL_POLL_INTERVAL_MS=60000
WORKER_PROVIDER_BILL_ID=provider-bills-prod-1
WORKER_PROVIDER_BILL_CLAIM_STALE_SECONDS=900
WORKER_PLATFORM_DUNNING_NOTIFICATION_BATCH_SIZE=50
WORKER_PLATFORM_DUNNING_NOTIFICATION_POLL_INTERVAL_MS=30000
WORKER_PLATFORM_DUNNING_NOTIFICATION_MAX_ATTEMPTS=5
WORKER_PLATFORM_DUNNING_NOTIFICATION_BACKOFF_SECONDS=10,60,300,900,1800
WORKER_PLATFORM_DUNNING_NOTIFICATION_REQUEST_TIMEOUT_MS=10000
WORKER_PLATFORM_DUNNING_NOTIFICATION_ALLOW_INSECURE_LOCALHOST=false
WORKER_PLATFORM_AUDIT_NOTIFICATION_BATCH_SIZE=50
WORKER_PLATFORM_AUDIT_NOTIFICATION_POLL_INTERVAL_MS=30000
WORKER_PLATFORM_AUDIT_NOTIFICATION_MAX_ATTEMPTS=5
WORKER_PLATFORM_AUDIT_NOTIFICATION_BACKOFF_SECONDS=10,60,300,900,1800
WORKER_PLATFORM_AUDIT_NOTIFICATION_REQUEST_TIMEOUT_MS=10000
WORKER_PLATFORM_AUDIT_NOTIFICATION_ALLOW_INSECURE_LOCALHOST=false
WORKER_ASSET_BATCH_SIZE=50
WORKER_ASSET_POLL_INTERVAL_MS=30000
WORKER_ASSET_MIN_AGE_SECONDS=300
WORKER_ASSET_RECHECK_INTERVAL_SECONDS=86400
WORKER_ASSET_REQUEST_TIMEOUT_MS=10000
WORKER_IMPORT_BATCH_SIZE=5
WORKER_IMPORT_POLL_INTERVAL_MS=10000
WORKER_IMPORT_ID=imports-prod-1
WORKER_IMPORT_LEASE_SECONDS=120
WORKER_IMPORT_HEARTBEAT_INTERVAL_MS=30000
WORKER_IMPORT_BACKOFF_SECONDS=30,120,600,1800
WORKER_PUBLIC_BANK_SYNC_BATCH_SIZE=5
WORKER_PUBLIC_BANK_SYNC_POLL_INTERVAL_MS=60000
WORKER_PUBLIC_BANK_SYNC_COPY_LIMIT=1000
WORKER_PUBLIC_BANK_SYNC_ID=public-banks-prod-1
WORKER_PUBLIC_BANK_SYNC_CLAIM_STALE_SECONDS=900
WORKER_EXPORT_BATCH_SIZE=5
WORKER_EXPORT_POLL_INTERVAL_MS=10000
WORKER_EXPORT_ID=exports-prod-1
WORKER_EXPORT_BACKOFF_SECONDS=30,120,600,1800
EXPORT_LOCAL_STORAGE_ROOT=/srv/tiku-saas/data/exports
EXPORT_PDF_FONT_PATH=
# Periodic jobs managed by tiku-worker-job@.service and timer units.
WORKER_PLATFORM_BILLING_BATCH_SIZE=50
WORKER_PLATFORM_BILLING_DAYS_AHEAD=45
WORKER_PLATFORM_BILLING_DUE_DAYS=15
WORKER_PLATFORM_BILLING_ID=platform-billing-prod-1
# Leave month overrides empty for normal timers. Use CLI --month for backfills.
WORKER_PLATFORM_USAGE_BATCH_SIZE=100
WORKER_PLATFORM_USAGE_ID=platform-usage-prod-1
WORKER_PLATFORM_USAGE_MONTH=
WORKER_PLATFORM_USAGE_OVERAGE_BATCH_SIZE=100
WORKER_PLATFORM_USAGE_OVERAGE_ID=platform-usage-overage-prod-1
WORKER_PLATFORM_USAGE_OVERAGE_MONTH=
WORKER_PLATFORM_USAGE_OVERAGE_DUE_DAYS=15
WORKER_PLATFORM_DUNNING_BATCH_SIZE=100
WORKER_PLATFORM_DUNNING_ID=platform-dunning-prod-1
WORKER_PLATFORM_AUDIT_ALERT_BATCH_SIZE=200
WORKER_PLATFORM_AUDIT_ALERT_ID=platform-audit-alerts-prod-1
WORKER_PLATFORM_AUDIT_ALERT_LOOKBACK_DAYS=14
WORKER_STUDENT_SUPERVISION_BATCH_SIZE=20
WORKER_STUDENT_SUPERVISION_ID=student-supervision-prod-1
WORKER_STUDENT_SUPERVISION_CLAIM_STALE_SECONDS=900