# 复制为发布目录中的 .env。真实密钥和密码不要提交到仓库。 ASPNETCORE_ENVIRONMENT=Production ASPNETCORE_URLS=http://0.0.0.0:8080 Database__Provider=MySql Database__ApplyMigrationsOnStartup=false Database__CommandTimeoutSeconds=30 ConnectionStrings__MySql="Server=db.example.edu.cn;Port=3306;Database=jiaowu;User=APP_USER;Password=REPLACE_WITH_A_STRONG_PASSWORD;SslMode=VerifyFull;SslCa=/etc/jiaowu/mysql-ca.pem;" # 仅供备份与隔离恢复演练使用。该账号需要读取业务库,并仅能创建/删除 # jiaowu_restore_drill_* 临时库;不要在此复用日常业务账号。 # ConnectionStrings__OperationsMySql="Server=db.example.edu.cn;Port=3306;Database=jiaowu;User=OPS_USER;Password=REPLACE_WITH_A_STRONG_PASSWORD;SslMode=VerifyFull;SslCa=/etc/jiaowu/mysql-ca.pem;" # Redis 是可选加速器;留空时应用仅使用进程内缓存。 # ConnectionStrings__Redis="redis.example.edu.cn:6380,user=jiaowu,password=REPLACE_WITH_A_STRONG_PASSWORD,ssl=true,abortConnect=false" # 单机可继续使用 InMemory;多实例生产部署建议启用 RabbitMQ。 BackgroundJobs__Transport=InMemory BackgroundJobs__AutomaticScheduleConcurrency=1 BackgroundJobs__SchedulePublishConcurrency=1 BackgroundJobs__MakeupExamAutoConcurrency=1 BackgroundJobs__ExamArrangementConcurrency=1 # RabbitMq__HostName=rabbitmq.example.edu.cn # RabbitMq__Port=5671 # RabbitMq__UserName=jiaowu # RabbitMq__Password=REPLACE_WITH_A_STRONG_PASSWORD # RabbitMq__VirtualHost=/jiaowu # RabbitMq__UseTls=true # RabbitMq__TlsServerName=rabbitmq.example.edu.cn Cache__Enabled=true Cache__KeyPrefix=jiaowu:v1 Cache__ReferenceExpirationMinutes=30 Cache__ReferenceLocalExpirationSeconds=120 Cache__TimetableExpirationMinutes=10 Cache__TimetableLocalExpirationSeconds=30 Cache__AnalyticsExpirationMinutes=3 Cache__AnalyticsLocalExpirationSeconds=30 Cache__MaximumPayloadKilobytes=2048 # OpenTelemetry 默认收集 HTTP、运行时和数据库指标;配置 OTLP 地址后才会外发。 Observability__Enabled=true Observability__ServiceName=jiaowu-api Observability__SlowQueryThresholdMilliseconds=500 # 默认不记录完整 SQL,避免日志或追踪系统接触业务数据。 Observability__IncludeSqlText=false Observability__MaximumSqlTextLength=2000 # OTEL_EXPORTER_OTLP_ENDPOINT=https://otel-collector.example.edu.cn:4317 # OTEL_EXPORTER_OTLP_HEADERS=Authorization=Bearer%20REPLACE_WITH_TOKEN # 系统内“运维与审计 → 系统性能”从 Prometheus 只读查询汇总指标。 PerformanceReporting__Enabled=false # PerformanceReporting__PrometheusBaseUrl=https://prometheus.example.edu.cn/ # PerformanceReporting__BearerToken=REPLACE_WITH_READ_ONLY_TOKEN # PerformanceReporting__GrafanaBaseUrl=https://grafana.example.edu.cn/ PerformanceReporting__CacheSeconds=30 PerformanceReporting__TimeoutSeconds=10 # 运维控制台备份目录必须位于持久化、仅服务账号可写的位置。 Operations__BackupDirectory=/var/lib/jiaowu/backups Operations__BackupWarningHours=24 Operations__ToolTimeoutMinutes=30 Operations__MySqlDumpPath=mysqldump Operations__MySqlClientPath=mysql # 按实际客户端补充 TLS 参数;Oracle MySQL 客户端示例: # Operations__MySqlAdditionalArguments__0=--ssl-mode=VERIFY_IDENTITY # Operations__MySqlAdditionalArguments__1=--ssl-ca=/etc/jiaowu/mysql-ca.pem Jwt__Issuer=Jiaowu.Api Jwt__Audience=Jiaowu.Web Jwt__Key=REPLACE_WITH_AT_LEAST_32_RANDOM_BYTES Jwt__ExpireMinutes=60 AllowedHosts=jiaowu.example.edu.cn Cors__Origins__0=https://jiaowu.example.edu.cn Cors__Origins__1=capacitor://localhost Cors__Origins__2=https://localhost Cors__Origins__3=http://localhost # 二维码使用的公网根地址;反向代理部署时必须填写最终 HTTPS 地址。 OfficialDocuments__InstitutionName=明序大学 OfficialDocuments__IssuingOffice=教务处 OfficialDocuments__DocumentNumberPrefix=MXU OfficialDocuments__PublicBaseUrl=https://jiaowu.example.edu.cn # 默认使用系统中文字体;仅在自定义字体部署时填写绝对路径。 # OfficialDocuments__FontPath=/usr/share/fonts/noto/NotoSansCJK-Regular.ttc # 仅首次创建管理员时临时取消注释,创建成功后立即删除。 # SeedAdmin__UserName=admin # SeedAdmin__Password=REPLACE_WITH_A_STRONG_ADMIN_PASSWORD # SeedAdmin__DisplayName=系统管理员