## hyb-oa 试运行环境变量示例(单机) ## ## 使用方式: ## 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 ## - 若仅做本机临时演练,再改回 http://127.0.0.1:3000 和 COOKIE_SECURE=false ## # ===== 基础域名(用于 refresh cookie 的 origin 校验)===== # 单域托管模式下,前端与后端同域访问(建议生产/试运行)。 APP_ORIGIN="https://oa.example.com" # ===== 服务端密钥(必须修改)===== JWT_SECRET="change_me_in_trialrun" # ===== 敏感字段加密(F25)===== # 生成方式示例:openssl rand -base64 32 FIELD_ENCRYPTION_KEY="" # ===== OIDC/SSO(F23,可选)===== # OIDC_ENABLED="true" # OIDC_ISSUER_URL="" # OIDC_CLIENT_ID="" # OIDC_CLIENT_SECRET="" # OIDC_REDIRECT_URI="http://127.0.0.1:3000/api/auth/oidc/callback" # OIDC_SCOPES="openid profile email" # ===== 企业微信入口 / OAuth(R18,可选) ===== 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" # 可填写多个 host,逗号分隔,用于企微回跳和公网 returnTo 白名单 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" # ===== 存储(票据上传目录)===== # 在 deploy/trialrun/docker-compose.yml 中映射到宿主机 deploy/trialrun/data/storage STORAGE_DIR="/data/storage" # 可选:对象存储(MinIO/S3 兼容,F21) # - 默认 local:文件写到 STORAGE_DIR # - 启用 MinIO:STORAGE_DRIVER="s3" 并启用 compose profile:--profile minio STORAGE_DRIVER="local" # local|s3 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" # ===== 单域托管 client/dist ===== SERVE_CLIENT_DIST="true" CLIENT_DIST_DIR="../client/dist" OPENAPI_DOCS_ENABLED="false" # ===== 网络与端口 ===== HOST="0.0.0.0" PORT="3000" # ===== Cookie 安全(HTTPS 反代时建议 true)===== COOKIE_SECURE="true" # ===== Metrics(Prometheus)===== METRICS_ENABLED="true" # ===== 安全基线(试运行建议打开)===== RATE_LIMIT_ENABLED="true" RATE_LIMIT_LOGIN_MAX="10" RATE_LIMIT_LOGIN_WINDOW="1 minute" # ===== OCR(试运行可先用 mock)===== OCR_PROVIDER="mock" # off|mock|tencent 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" # ===== 委派回收 ===== DELEGATION_REVOKE_CRON="0 * * * *" # ===== 作业系统(pg-boss,可回滚到 cron)===== JOB_DRIVER="pgboss" # cron|pgboss JOBS_ENABLED="true" # false 时整体关闭作业(排障/回滚/或启用 worker 拆分) PG_BOSS_SCHEMA="pgboss" # pg-boss 在 PG 内的 schema # ===== Worker 拆分(可选,F20)===== # 如需启用“API 进程 + Worker 进程”: # 1) 设置 JOBS_ENABLED="false"(server 不跑作业) # 2) 启动 compose 时加:--profile worker(会启动 worker 容器,worker 内强制 JOBS_ENABLED=true) # ===== 试运行引导管理员(E20)===== TRIALRUN_ADMIN_EMAIL="admin@hyinda.com" TRIALRUN_ADMIN_PHONE="13800000000" # 留空则首次 seed 自动生成并打印一次性口令 TRIALRUN_ADMIN_PASSWORD="" # ===== Prisma Migration Diff(本地维护 migration 可选) ===== # SHADOW_DATABASE_URL="postgresql://hyboa_user:hyboa_password@db:5432/hyb_oa_shadow" # ===== R13-R17 小团队内部管理默认上线建议 ===== 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" PROJECT_DOMAIN_ENABLED="true" PROJECT_LINKING_ENABLED="true" PROJECT_COMMUNICATION_LOG_ENABLED="true" PROJECT_CLOSURE_CHECKLIST_ENABLED="true" CONFIDENTIAL_DOC_REFS_ENABLED="true" PUBLIC_SECURITY_HARDENING_ENABLED="true" PAYMENT_BATCH_ENABLED="false" CUTOVER_CONSOLE_ENABLED="false"