# Author: fruit.com.cn server: port: 8080 spring: application: name: fruitshorts-admin-api autoconfigure: exclude: org.springframework.boot.autoconfigure.security.servlet.UserDetailsServiceAutoConfiguration datasource: driver-class-name: org.postgresql.Driver # 地址外置:生产用 DB_URL 注入(prod profile 会校验非空) url: ${DB_URL:jdbc:postgresql://127.0.0.1:5432/fruitshorts} username: ${DB_USER:fruitshorts} password: ${DB_PASSWORD:fruitshorts} jackson: date-format: yyyy-MM-dd HH:mm:ss time-zone: Asia/Shanghai servlet: multipart: # 分片上传,单个请求只需要容纳一个分片 max-file-size: 20MB max-request-size: 20MB mybatis-plus: configuration: map-underscore-to-camel-case: true global-config: banner: false db-config: # 主键由应用侧雪花算法生成(S0),数据库不再自增 id-type: assign_id logic-delete-field: deleted logic-delete-value: 1 logic-not-delete-value: 0 sequence: # 单机开发用固定值;上多实例前必须改成按实例分配(环境变量注入),否则会撞 ID worker-id: 1 datacenter-id: 1 fruitshorts: media: # 媒资目录:容器里指向挂载卷;本地默认 ./data/uploads root-dir: ${MEDIA_ROOT_DIR:./data/uploads} public-prefix: /files chunk-size: 5242880 max-file-size: 2147483648 signature-secret: ${MEDIA_SIGNATURE_SECRET:fruitshorts-media-dev-secret-change-me-in-production-32b} signature-required: ${MEDIA_SIGNATURE_REQUIRED:false} signature-ttl-minutes: 15 jwt: # 双密钥都要外置:只配 admin 而漏配 app,生产会静默用 dev 默认值(prod fail-fast 会拦住) admin-secret: ${JWT_ADMIN_SECRET:fruitshorts-admin-dev-secret-change-me-in-production-32b} admin-ttl-hours: 12 app-secret: ${JWT_APP_SECRET:fruitshorts-app-dev-secret-change-me-in-production-32bytes} app-access-ttl-minutes: 120 app-refresh-ttl-days: 30 cors: allowed-origins: ${CORS_ALLOWED_ORIGINS:http://localhost:3005,http://127.0.0.1:3005} springdoc: swagger-ui: path: /doc.html logging: level: com.fruitshorts: debug