## hyb-oa 试运行环境变量示例(单机) ## ## 说明: ## - 统一以 deploy/trialrun/.env 作为 trialrun 部署事实源。 ## - 默认使用 env_file 注入 server / worker / init 容器环境。 ## - 推荐使用无引号值;旧的带引号写法当前仍兼容,但建议后续逐步改成无引号。 ## - 普通字符串、布尔值、数字、cron 都可直接写为无引号值。 ## ## 使用方式: ## cp deploy/trialrun/.env.example deploy/trialrun/.env ## 然后按需修改 deploy/trialrun/.env 中的值(不要提交 .env) ## ## 同机公网部署建议: ## - 官网继续使用 hyinda.com / www.hyinda.com ## - OA 单独使用 oa.example.com 一类二级域名 ## - 正式公网环境请保持 APP_ORIGIN=https://oa.example.com ## - 正式公网环境请保持 COOKIE_SECURE=true ## # ===== 运行模式与基础域名 ===== NODE_ENV=production APP_ORIGIN=https://oa.example.com APP_TIMEZONE=Asia/Shanghai HOST=0.0.0.0 PORT=3000 COOKIE_SECURE=true OPENAPI_DOCS_ENABLED=false SERVE_CLIENT_DIST=true CLIENT_DIST_DIR=../client/dist SIGNED_URL_TTL_SECONDS=600 MAX_UPLOAD_SIZE_BYTES=10485760 # ===== 服务端密钥(必须修改) ===== JWT_SECRET=change_me_in_trialrun FIELD_ENCRYPTION_KEY= # ===== 密码 / 登录安全 ===== PASSWORD_RESET_CODE_TTL_SECONDS=600 DEV_SHOW_PASSWORD_RESET_CODE=false AUTH_LOGIN_FAIL_WINDOW_SECONDS=900 AUTH_LOGIN_FAIL_MAX_ATTEMPTS=5 AUTH_LOGIN_LOCK_SECONDS=1800 RATE_LIMIT_ENABLED=true RATE_LIMIT_LOGIN_MAX=10 RATE_LIMIT_LOGIN_WINDOW=1 minute PUBLIC_SECURITY_HARDENING_ENABLED=true # ===== 可观测性 ===== METRICS_ENABLED=true OTEL_TRACES_ENABLED=false # ===== OIDC / SSO(可选) ===== OIDC_ENABLED=false OIDC_ISSUER_URL= OIDC_CLIENT_ID= OIDC_CLIENT_SECRET= OIDC_REDIRECT_URI=https://oa.example.com/api/auth/oidc/callback OIDC_SCOPES=openid profile email # ===== 企业微信入口 / OAuth(可选) ===== WECOM_ENABLED=false WECOM_ENTRY_ENABLED=false WECOM_CORP_ID= WECOM_AGENT_ID= WECOM_AGENT_SECRET= WECOM_OAUTH_ENABLED=false WECOM_REDIRECT_URI=https://oa.example.com/api/auth/wecom/callback WECOM_ALLOWED_RETURN_HOSTS=oa.example.com IM_NOTIFIER_ENABLED=true # ===== 数据库(Compose 内部连接) ===== POSTGRES_DB=hyb_oa POSTGRES_USER=hyboa_user POSTGRES_PASSWORD=hyboa_password DATABASE_URL=postgresql://hyboa_user:hyboa_password@db:5432/hyb_oa?schema=public # SHADOW_DATABASE_URL=postgresql://hyboa_user:hyboa_password@db:5432/hyb_oa_shadow # ===== 存储与上传 ===== STORAGE_DIR=/data/storage STORAGE_DRIVER=local S3_ENDPOINT=http://minio:9000 S3_REGION=us-east-1 S3_BUCKET=hyb-oa S3_ACCESS_KEY_ID=minioadmin S3_SECRET_ACCESS_KEY=minioadmin S3_FORCE_PATH_STYLE=true MINIO_ROOT_USER=minioadmin MINIO_ROOT_PASSWORD=minioadmin # ===== OCR(off | mock | tencent) ===== OCR_PROVIDER=mock OCR_CRON_ENABLED=true OCR_MAX_ATTEMPTS=3 OCR_POLL_CRON=*/5 * * * * * OCR_BATCH_SIZE=10 OCR_LOCK_TTL_SECONDS=300 OCR_TIMEOUT_MS=5000 TENCENT_SECRET_ID= TENCENT_SECRET_KEY= TENCENT_OCR_REGION=ap-beijing # ===== 验真 / 发票 / 节假日 ===== INVOICE_VERIFICATION_ENABLED=false LEAVE_HOLIDAY_CALENDAR_ENABLED=false VERIFICATION_PROVIDER=mock VERIFICATION_POLL_CRON=* * * * * VERIFICATION_MAX_ATTEMPTS=3 VERIFICATION_RETRY_COOLDOWN_SECONDS=60 VERIFICATION_TIMEOUT_MS=5000 INVOICE_ARCHIVE_CRON=30 2 * * * INVOICE_ARCHIVE_UNUSED_DAYS=90 INVOICE_ARCHIVE_BATCH_SIZE=200 # ===== 预算 / 费控 ===== BUDGET_CONTROL_MODE=warn BUDGET_PRECHECK_ENABLED=false PAYMENT_BATCH_ENABLED=false # ===== 周边集成 / ERP ===== ERP_SYNC_ENABLED=false ERP_SYNC_PROVIDER=mock ERP_SYNC_ENDPOINT= ERP_SYNC_TIMEOUT_MS=5000 ERP_SYNC_AUTH_TOKEN= ERP_JOURNAL_EXPORT_ENDPOINT= ERP_PROCUREMENT_EXPORT_ENDPOINT= ERP_ASSET_EXPORT_ENDPOINT= ERP_MASTER_DATA_ENDPOINT= ERP_PROCUREMENT_TIMEOUT_MS=5000 ERP_ASSET_TIMEOUT_MS=5000 ERP_MASTER_DATA_TIMEOUT_MS=5000 ERP_MASTER_DATA_SYNC_CRON= TRAVEL_SYNC_ENABLED=false INTEGRATION_OUTBOX_CRON=* * * * * INTEGRATION_OUTBOX_BATCH_SIZE=20 INTEGRATION_OUTBOX_MAX_ATTEMPTS=5 INTEGRATION_OUTBOX_RETRY_SECONDS=120 # ===== 邮件 ===== EMAIL_ENABLED=false EMAIL_FROM=no-reply@hyinda.com EMAIL_BASE_URL=https://oa.example.com SMTP_HOST= SMTP_PORT=587 SMTP_SECURE=false SMTP_USER= SMTP_PASS= # ===== 委派 / 作业 ===== DELEGATION_REVOKE_CRON=0 * * * * JOB_DRIVER=pgboss JOBS_ENABLED=true PG_BOSS_SCHEMA=pgboss # ===== AI(默认关闭) ===== AI_ASSIST_ENABLED=false AI_PROVIDER=mock AI_BASE_URL= AI_MODEL= AI_TIMEOUT_MS=10000 AI_AUTH_TOKEN= # ===== Trialrun 初始化管理员 ===== TRIALRUN_ADMIN_EMAIL=admin@hyinda.com TRIALRUN_ADMIN_PHONE=13800000000 TRIALRUN_ADMIN_PASSWORD= TRIALRUN_ADMIN_EMPLOYEE_NO=T0000 TRIALRUN_ADMIN_NAME=Trialrun Admin TRIALRUN_ADMIN_TITLE=系统管理员 TRIALRUN_ADMIN_HIRE_DATE=2020-01-01 # ===== 功能开关环境闸门(trialrun 推荐) ===== PORTAL_HOME_ENABLED=true GLOBAL_SEARCH_ENABLED=true ANNOUNCEMENTS_ENABLED=true PRESENCE_BOARD_ENABLED=true WEEKLY_REPORT_ENABLED=true EMPLOYEE_LIFECYCLE_ENABLED=true TODO_BOARD_ENABLED=true WORKFLOW_DEFINITION_ADMIN_ENABLED=false CUTOVER_CONSOLE_ENABLED=false PROJECT_DOMAIN_ENABLED=true PROJECT_LINKING_ENABLED=true PROJECT_COMMUNICATION_LOG_ENABLED=true PROJECT_CLOSURE_CHECKLIST_ENABLED=true CONFIDENTIAL_DOC_REFS_ENABLED=true