Files
weiyu/deploy/server/config/application.properties
jack ning 57bb203d64 update
2025-10-14 16:46:52 +08:00

1166 lines
44 KiB
Properties
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# ===============================
#=bytedesk
# ===============================
bytedesk.debug=true
bytedesk.version=0.9.8
# 申请实际的license
# https://www.weiyuai.cn/docs/zh-CN/docs/faq#%E9%97%AE%E9%A2%9813%E5%A6%82%E4%BD%95%E8%8E%B7%E5%8F%96%E8%AF%95%E7%94%A8%E7%89%88license
bytedesk.licenseKey=
# enable custom config: name, logo, description
bytedesk.custom.enabled=false
# default null use default name
bytedesk.custom.name=
# default null use default logo
bytedesk.custom.logo=
# default null use: Chat As A Service
bytedesk.custom.description=
# show right corner chat
bytedesk.custom.show-right-corner-chat=false
# show demo
bytedesk.custom.show-demo=false
# privacy policy url
bytedesk.custom.privacy-policy-url=https://www.weiyuai.cn/privacy.html
# terms of service url
bytedesk.custom.terms-of-service-url=https://www.weiyuai.cn/terms.html
# enable login username
bytedesk.custom.login-username-enable=true
# 密码错误最大重试次数, 默认3次, 0表示不限制。
bytedesk.custom.login-max-retry-count=3
# 超过次数默认锁定10分钟, 0表示不锁定
bytedesk.custom.login-max-retry-lock-time=10
# enable login mobile
bytedesk.custom.login-mobile-enable=true
# enable login email
# bytedesk.custom.login-email-enable=false
# enable login scan
bytedesk.custom.login-scan-enable=true
# enable wechat login
bytedesk.custom.login-wechat-enable=false
# enable github login
bytedesk.custom.login-github-enable=false
# enable facebook login
bytedesk.custom.login-facebook-enable=false
# enable google login
bytedesk.custom.login-google-enable=false
# enable dingtalk login
bytedesk.custom.login-dingtalk-enable=false
# enable douyin login
bytedesk.custom.login-douyin-enable=false
# enable feishu login
bytedesk.custom.login-feishu-enable=false
# enable ldap login
bytedesk.custom.login-ldap-enable=false
# enable cas login
bytedesk.custom.login-cas-enable=false
# enable oidc login
bytedesk.custom.login-oidc-enable=false
# enable openid login
bytedesk.custom.login-openid-enable=false
# show doc url
bytedesk.custom.doc-url-show=true
# doc url
bytedesk.custom.doc-url=https://www.weiyuai.cn/docs/zh-CN/
# lang: zh-CN/en-US/zh-TW
bytedesk.custom.lang=zh-CN
# allow register
bytedesk.custom.allow-register=false
# force validate mobile
bytedesk.custom.force-validate-mobile=true
# force validate email
bytedesk.custom.force-validate-email=true
# force visitor auth
bytedesk.custom.force-visitor-auth=false
# ===============================
# Admin config
# ===============================
# admin email
bytedesk.admin.email=admin@email.com
# admin password
bytedesk.admin.password=admin
# admin nickname
bytedesk.admin.nickname=SuperAdmin
# admin mobile
bytedesk.admin.mobile=13345678000
# white list mobile
bytedesk.admin.mobile-whitelist=18888888000,18888888001,18888888002,18888888003,18888888004,18888888005
# white list email
bytedesk.admin.email-whitelist=100@email.com,101@email.com,102@email.com,103@email.com,104@email.com,105@email.com
# validate code for white list mobile and email, otherwise random 6 digits
bytedesk.admin.validate-code=123456
# ===============================
#= Member config
# ===============================
# create/import member default password
bytedesk.member.password=123456
# ===============================
#= Performance Testing config
# ===============================
bytedesk.testing.enabled=false
# bytedesk.testing.account-count=300
# bytedesk.testing.account-username=test
# bytedesk.testing.account-password=password
bytedesk.testing.disable-captcha=true
bytedesk.testing.disable-ip-filter=true
# whitelist ip for performance testing
bytedesk.testing.ip-whitelist=127.0.0.1,127.0.0.2
# ===============================
# Organization config
# ===============================
# organization name
bytedesk.organization.name=MyCompany
# organization code
bytedesk.organization.code=bytedesk
# ===============================
# Features config
# ===============================
# enable java ai
bytedesk.features.java-ai=true
# send email by javamail, valid value: javamail/aliyun
bytedesk.features.email-type=javamail
# 头像的访问地址,请修改为服务器实际的地址
bytedesk.features.avatar-base-url=http://127.0.0.1:9003
# ===============================
# CORS config
# ===============================
bytedesk.cors.allowed-origins=*
# ===============================
# JWT config
# ===============================
bytedesk.jwt.secret-key=1dfaf8d004207b628a9a6b859c429f49a9a7ead9fd8161c1e60847aeef06dbd2
# 30 days, milliseconds
bytedesk.jwt.expiration=2592000000
# 60 days, milliseconds
bytedesk.jwt.refresh-token-expiration=5184000000
# ===============================
# Cache config
# ===============================
# 0: no cache, 1: caffeine cache, 2: caffeine + redis cache
bytedesk.cache.level=0
# cache prefix
bytedesk.cache.prefix=bytedeskim
# redis stream key
bytedesk.cache.redis-stream-key=bytedeskim:stream
# bytedesk.redis-pubsub-channel=bytedeskim:pubsub
# ===============================
# redis pool config
# ===============================
bytedesk.redis.pool-config.maxIdle=64
bytedesk.redis.pool-config.maxTotal=64
bytedesk.redis.pool-config.minIdle=8
# ===============================
#=spring-boot-starter-cache
# https://docs.spring.io/spring-boot/docs/current/reference/html/application-properties.html#appendix.application-properties.cache
# ===============================
# disable caching: none, https://docs.spring.io/spring-boot/docs/3.2.0/reference/htmlsingle/#io.caching.provider.none
# https://docs.spring.io/spring-boot/reference/io/caching.html
# https://docs.spring.io/spring-framework/reference/integration/cache/annotations.html#cache-spel-context
spring.cache.type=none
# spring.cache.type=redis
# spring.cache.type=caffeine
# spring.cache.caffeine.spec=maximumSize=100,expireAfterAccess=5m
#
spring.cache.redis.cache-null-values=false
spring.cache.redis.use-key-prefix=true
spring.cache.redis.key-prefix=bytedeskim:
#
# ===============================
#=spring-boot-starter-data-redis
# https://docs.spring.io/spring-boot/docs/current/reference/html/application-properties.html#appendix.application-properties.data
# REDIS_URL="redis://:qfRxz3tVT8Nh@127.0.0.1:6379/0"
# ===============================
spring.data.redis.database=0
spring.data.redis.host=127.0.0.1
# 默认6379端口为防止与本地冲突docker中为16379
spring.data.redis.port=16379
spring.data.redis.password=qfRxz3tVT8Nh
spring.data.redis.timeout=10000
# disable redis repository
spring.data.redis.repositories.enabled=false
# ===============================
# Upload config
# ===============================
# Upload config, no '/'
bytedesk.upload.type=local
# upload dir
bytedesk.upload.dir=uploads
# 上传文件的访问地址,请修改为服务器实际的地址
bytedesk.upload.url=http://127.0.0.1:9003
# ===============================
# = MinIO 对象存储配置
# ===============================
# 是否启用 MinIO 存储
bytedesk.minio.enabled=false
# MinIO 服务地址
bytedesk.minio.endpoint=http://127.0.0.1:19000
# MinIO 访问密钥
bytedesk.minio.access-key=minioadmin
# MinIO 密钥
bytedesk.minio.secret-key=minioadmin123
# MinIO 存储桶名称
bytedesk.minio.bucket-name=bytedesk
# MinIO 区域
bytedesk.minio.region=us-east-1
# 是否使用 HTTPS
bytedesk.minio.secure=false
# ===============================
# Knowledge base config
# ===============================
# theme: default/eduport/social/kbdoc
bytedesk.kbase.theme=default
# html path
bytedesk.kbase.html-path=helpcenter
# bytedesk.kbase.template-path=classpath:/templates/ftl/kbase
# 知识库的访问地址,请修改为服务器实际的地址
bytedesk.kbase.api-url=http://127.0.0.1:9003
# ===============================
#=com.bytedesk.socket module
# ===============================
# enable socket
bytedesk.socket.enabled=true
# socket host
bytedesk.socket.host=0.0.0.0
# socket port
# bytedesk.socket.port=9883
# websocket port
bytedesk.socket.websocket-port=9885
# leak detector level
bytedesk.socket.leak-detector-level=SIMPLE
# parent event loop group thread count
bytedesk.socket.parent-event-loop-group-thread-count=1
# child event loop group thread count
bytedesk.socket.child-event-loop-group-thread-count=8
# max payload size
bytedesk.socket.max-payload-size=10240
# ===============================
#= Call FreeSwitch config
# ===============================
# enable call freeswitch
bytedesk.call.freeswitch.enabled=false
# freeswitch server ip
bytedesk.call.freeswitch.server=127.0.0.1
# esl port
bytedesk.call.freeswitch.esl-port=8021
# esl password
bytedesk.call.freeswitch.esl-password=password
# sip port - 根据服务器实际端口修改
bytedesk.call.freeswitch.sip-port=5060
# webrtc port - 根据服务器实际端口修改
bytedesk.call.freeswitch.webrtc-port=7443
# websocket signal port - 根据服务器实际端口修改
bytedesk.call.freeswitch.ws-port=5066
# call timeout seconds - 增加超时时间
bytedesk.call.freeswitch.call-timeout=120
# rtp port range - 扩大端口范围
# bytedesk.call.freeswitch.rtp-port-start=16000
# bytedesk.call.freeswitch.rtp-port-end=16999
# 新增配置
# bytedesk.call.freeswitch.max-sessions=1000
# bytedesk.call.freeswitch.sessions-per-second=30
# bytedesk.call.freeswitch.log-level=WARNING
# ===============================
#= etcd 分布式键值存储配置
# ===============================
# 是否启用 etcd
bytedesk.etcd.enabled=false
# etcd 服务器端点列表(支持多个,逗号分隔)
bytedesk.etcd.endpoints=http://localhost:12379
# 连接超时时间(毫秒)
bytedesk.etcd.connect-timeout=5000
# 请求超时时间(毫秒)
bytedesk.etcd.request-timeout=3000
# 命名空间/前缀(用于隔离不同应用的数据)
bytedesk.etcd.namespace=/bytedesk
# 用户名(如果需要认证)
# bytedesk.etcd.username=
# 密码(如果需要认证)
# bytedesk.etcd.password=
# 租约 TTL- 用于服务注册等场景
bytedesk.etcd.lease-ttl=30
# 租约续期间隔(秒)
bytedesk.etcd.lease-keep-alive-interval=10
# ===============================
#=com.bytedesk.cluster module
# ===============================
# enable cluster
bytedesk.cluster.enabled=false
# cluster nodes
bytedesk.cluster.nodes=127.0.0.1,127.0.0.2
# bytedesk.cluster.host=230.0.0.0
# bytedesk.cluster.port=6781
# bytedesk.cluster.client-port=6771
# ===============================
#= push
# ===============================
# apns bundle id
bytedesk.push.apns.bundle-id=com.kefux.im
# apns p12 url
bytedesk.push.apns.p12-url=123.p12
# apns p12 password
bytedesk.push.apns.p12-password=123456
# ===============================
#= Watermark config
# ===============================
# 是否启用水印功能
bytedesk.watermark.enabled=true
# 水印文字
bytedesk.watermark.text=bytedesk.com
# 水印位置: TOP_LEFT, TOP_RIGHT, BOTTOM_LEFT, BOTTOM_RIGHT, CENTER
bytedesk.watermark.position=BOTTOM_RIGHT
# 字体大小
bytedesk.watermark.fontSize=24
# 字体名称
bytedesk.watermark.fontName=Arial
# 水印颜色 (RGBA格式: R,G,B,A)
bytedesk.watermark.color=255,255,255,128
# 透明度 (0.0-1.0)
bytedesk.watermark.opacity=0.5
# 边距
bytedesk.watermark.margin=20
# 是否只对图片文件添加水印
bytedesk.watermark.imageOnly=true
# 最小图片尺寸(像素),小于此尺寸的图片不添加水印
bytedesk.watermark.minImageSize=100
# 最大图片尺寸(像素),大于此尺寸的图片不添加水印
bytedesk.watermark.maxImageSize=5000
# ===============================
# = oauth
# githubhttps://github.com/settings/applications/new
# ===============================
bytedesk.oauth.github.enabled=true
bytedesk.oauth.github.client-id=clientid
bytedesk.oauth.github.client-secret=clientid
# GitHub 完成授权后跳转到前端回调页的地址
bytedesk.oauth.github.redirect-uri=
# Google OAuth 配置
bytedesk.oauth.google.enabled=true
bytedesk.oauth.google.client-id=
bytedesk.oauth.google.client-secret=
bytedesk.oauth.google.redirect-uri=
# WeChat OAuth 配置(开放平台/公众号网页授权)
bytedesk.oauth.wechat.enabled=true
bytedesk.oauth.wechat.app-id=
bytedesk.oauth.wechat.app-secret=
bytedesk.oauth.wechat.redirect-uri=
# Facebook OAuth 配置
bytedesk.oauth.facebook.enabled=true
bytedesk.oauth.facebook.client-id=
bytedesk.oauth.facebook.client-secret=
bytedesk.oauth.facebook.redirect-uri=
# DingTalk OAuth 配置
bytedesk.oauth.dingtalk.enabled=true
bytedesk.oauth.dingtalk.app-id=
bytedesk.oauth.dingtalk.app-secret=
bytedesk.oauth.dingtalk.redirect-uri=
# DouYin OAuth 配置
bytedesk.oauth.douyin.enabled=true
bytedesk.oauth.douyin.client-key=
bytedesk.oauth.douyin.client-secret=
bytedesk.oauth.douyin.redirect-uri=
# Feishu OAuth 配置
bytedesk.oauth.feishu.enabled=true
bytedesk.oauth.feishu.app-id=
bytedesk.oauth.feishu.app-secret=
bytedesk.oauth.feishu.redirect-uri=
# LDAP 登录配置Bytedesk 自有 LDAP 登录,与 Spring LDAP 基础配置配合使用)
bytedesk.oauth.ldap.enabled=false
# 登录时若无邮箱可按此域名拼接(例如: username@yourdomain.com
bytedesk.oauth.ldap.default-email-domain=
# CAS 单点登录配置
bytedesk.oauth.cas.enabled=false
# CAS 服务器地址例如https://cas.example.com
bytedesk.oauth.cas.server-url=
# 登录路径,默认 /login
bytedesk.oauth.cas.login-path=/login
# 校验路径,建议使用 p3 接口,默认 /p3/serviceValidate
bytedesk.oauth.cas.validate-path=/p3/serviceValidate
# 当前系统在 CAS 注册的回调地址service用于校验 ticket
bytedesk.oauth.cas.service-redirect-uri=
# 默认邮箱域(当 CAS 返回无邮箱时用于拼接)
bytedesk.oauth.cas.default-email-domain=
# OIDC 标准登录配置(基于发现文档)
bytedesk.oauth.oidc.enabled=false
# Issuer 地址例如https://login.microsoftonline.com/{tenant}/v2.0
bytedesk.oauth.oidc.issuer=
bytedesk.oauth.oidc.client-id=
bytedesk.oauth.oidc.client-secret=
bytedesk.oauth.oidc.redirect-uri=
# OpenID通用 OAuth/OpenID 风格,自配置端点)
bytedesk.oauth.openid.enabled=false
bytedesk.oauth.openid.authorization-endpoint=
bytedesk.oauth.openid.token-endpoint=
bytedesk.oauth.openid.user-info-endpoint=
bytedesk.oauth.openid.client-id=
bytedesk.oauth.openid.client-secret=
bytedesk.oauth.openid.redirect-uri=
# 用户名字段,默认 email可配置为 sub/username 等
bytedesk.oauth.openid.username-field=email
# ===============================
# LDAP Configuration
# ===============================
# # 是否启用LDAP
# spring.ldap.enabled=false
# # LDAP 服务器地址
# spring.ldap.urls=ldap://127.0.0.1:389
# # LDAP 基础目录
# spring.ldap.base=dc=example,dc=com
# # LDAP 管理员用户名完整DN
# spring.ldap.username=cn=admin,dc=example,dc=com
# # LDAP 管理员密码
# spring.ldap.password=admin
# # LDAP 是否只读
# spring.ldap.anonymous-read-only=false
# # LDAP 是否启用匿名访问
# spring.ldap.anonymous-enabled=false
# ===============================
# SSO Configuration
# ===============================
# 是否启用SSO
# spring.security.oauth2.client.enabled=false
# ===============================
#=logging
# https://docs.spring.io/spring-boot/docs/current/reference/html/application-properties.html#appendix.application-properties.core
# 五种levelTRACE、DEBUG、INFO、WARN和ERROR
# ===============================
# 会打印sqlLog
# debug=true
# trace=true
# 隐藏其他常见的DEBUG日志
# logging.level.org.springframework=INFO
# logging.level.org.hibernate=INFO
# logging.level.org.apache=INFO
# 设置自定义包的日志级别
# logging.level.com.bytedesk=INFO
logging.level.web=DEBUG
logging.level.org.springframework.security.web.FilterChainProxy=WARN
logging.level.org.springframework.web.socket=INFO
# 设置 FreeMarker 的日志级别为 INFO
logging.level.org.springframework.web.servlet.view.freemarker=WARN
logging.level.org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport=WARN
#
logging.level.org.hibernate.orm.connections.pooling=WARN
# 关闭StringDecoder相关的日志
logging.level.org.springframework.core.codec.StringDecoder=WARN
# 关闭reactor-http相关日志
logging.level.reactor.netty.http=WARN
logging.level.org.springframework.web.client.DefaultRestClient=WARN
# 抑制Spring Security AuthenticationProvider/UserDetailsService配置警告
logging.level.org.springframework.security.config.annotation.authentication.configuration.InitializeUserDetailsBeanManagerConfigurer=ERROR
# 完全禁用某些包的日志
# logging.level.org.springframework.web.servlet.view.freemarker=OFF
# logging.level.org.springframework.messaging=WARN
# logging.level.org.springframework.web=INFO
# logging.level.org.springframework.security=INFO
# logging.level.root=DEBUG
logging.level.com.bytedesk.ai=DEBUG
logging.level.com.bytedesk.core=DEBUG
logging.level.com.bytedesk.kbase=DEBUG
logging.level.com.bytedesk.service=DEBUG
logging.level.com.bytedesk.social=DEBUG
logging.level.com.bytedesk.wechat=DEBUG
logging.level.com.bytedesk.shop=DEBUG
logging.level.com.bytedesk.team=DEBUG
logging.level.com.bytedesk.ticket=DEBUG
logging.level.com.bytedesk.starter=DEBUG
#
logging.level.org.springframework.web.client.DefaultRestClient=WARN
logging.file.name=logs/bytedeskim.log
logging.file.max-size=10MB
logging.file.max-history=5
# 2024-09-19T13:07:39.031+08:00 INFO 4043 --- [bytedesk] [ main] liquibase.util : UPDATE SUMMARY
# logging.pattern.console=[TRACEID:%X{traceId}] %clr(%5p) %d{HH:mm:ss.SSS} %class{-1}: %msg%xEx%n
logging.pattern.console=[TRACEID:%X{traceId}] %clr(%d{${LOG_DATEFORMAT_PATTERN:yyyy-MM-dd HH:mm:ss.SSS}}){faint} %clr(${LOG_LEVEL_PATTERN:%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}
logging.pattern.file=[TRACEID:%X{traceId}]-%clr(%d{${LOG_DATEFORMAT_PATTERN:yyyy-MM-dd HH:mm:ss.SSS}}){faint}-%clr(${LOG_LEVEL_PATTERN:%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}
# ===============================
#= alibaba druid
# http://127.0.0.1:9003/druid
# https://github.com/alibaba/druid/wiki/DruidDataSource%E9%85%8D%E7%BD%AE%E5%B1%9E%E6%80%A7%E5%88%97%E8%A1%A8
# ===============================
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
# druid properties
spring.datasource.druid.initial-size=10
spring.datasource.druid.min-idle=10
spring.datasource.druid.max-active=100
spring.datasource.druid.max-wait=60000
spring.datasource.druid.time-between-eviction-runs-millis=60000
spring.datasource.druid.min-evictable-idle-time-millis=300000
spring.datasource.druid.validation-query=SELECT 'x'
spring.datasource.druid.test-while-idle=true
spring.datasource.druid.test-on-borrow=false
spring.datasource.druid.test-on-return=false
spring.datasource.druid.stat-view-servlet.enabled=true
spring.datasource.druid.stat-view-servlet.url-pattern=/druid/*
spring.datasource.druid.stat-view-servlet.login-username=admin@email.com
spring.datasource.druid.stat-view-servlet.login-password=admin
# spring.datasource.druid.stat-view-servlet.reset-enable=false
# spring.datasource.druid.stat-view-servlet.allow=127.0.0.1
# spring.datasource.druid.stat-view-servlet.deny=
spring.datasource.druid.filters=config,stat
spring.datasource.druid.filter.stat.log-slow-sql=true
spring.datasource.druid.filter.stat.slow-sql-millis=1
# spring.datasource.druid.web-stat-filter.enabled=true
# spring.datasource.druid.web-stat-filter.url-pattern=/*
# spring.datasource.druid.web-stat-filter.exclusions=*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*
# ===============================
#= h2
# https://docs.spring.io/spring-boot/docs/current/reference/html/application-properties.html#appendix.application-properties.data
# ===============================
# http://127.0.0.1:9003/h2-console
# spring.h2.console.enabled=true
# spring.h2.console.path=/h2-console
# spring.h2.console.settings.trace=false
# spring.h2.console.settings.web-allow-others=false
# #
# # spring.datasource.url=jdbc:h2:mem:testdb
# spring.datasource.url=jdbc:h2:file:./h2db/weiyuim
# spring.datasource.driverClassName=org.h2.Driver
# spring.datasource.username=sa
# spring.datasource.password=sa
# spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
# spring.jpa.defer-datasource-initialization=true
# ===============================
#= mysql
# https://docs.spring.io/spring-boot/docs/current/reference/html/application-properties.html#appendix.application-properties.data
# ===============================
# 默认使用3306端口为防止本地冲突docker中为13306
spring.datasource.url=jdbc:mysql://127.0.0.1:13306/bytedesk?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true
# spring.datasource.url=jdbc:mysql://127.0.0.1:3306/bytedesk?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true
spring.datasource.username=root
spring.datasource.password=r8FqfdbWUaN3
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.jpa.database=mysql
# spring.jpa.database-platform=org.hibernate.dialect.MySQLDialect # Hibernate会自动检测方言无需显式设置
spring.quartz.properties.org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.StdJDBCDelegate
# ===============================
#= postgresql
# https://docs.spring.io/spring-boot/docs/current/reference/html/application-properties.html#appendix.application-properties.data
# 因本地占用将5432改为5433
# DATABASE_URL="postgresql://postgres:r8FqfdbWUaN3@localhost:5433/bytedesk"
# ===============================
# spring.datasource.url=jdbc:postgresql://127.0.0.1:5433/bytedesk
# spring.datasource.username=postgres
# spring.datasource.password=r8FqfdbWUaN3
# spring.datasource.driver-class-name=org.postgresql.Driver
# spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
# spring.quartz.properties.org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.PostgreSQLDelegate
# ===============================
#=spring-boot-starter-data-jpa
# https://docs.spring.io/spring-boot/docs/current/reference/html/application-properties.html#appendix.application-properties.data
# ===============================
# 生产环境关闭update模式使用validate
# update/none/validate/create/create-drop
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=false
spring.jpa.properties.hibernate.format_sql=false
spring.jpa.properties.hibernate.enable_lazy_load_no_trans=true
spring.jpa.open-in-view=false
# 设置 Hibernate 时区为 Asia/Shanghai
spring.jpa.properties.hibernate.jdbc.time_zone=Asia/Shanghai
# https://www.cnblogs.com/suizhikuo/p/16997225.html
# spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
spring.jackson.date-format=yyyy-MM-dd'T'HH:mm:ss.SSSX
spring.jackson.time-zone=GMT+8
# ===============================
#=spring-boot-starter-data-rest
# http://127.0.0.1:9003/rest/api/profile
# https://docs.spring.io/spring-data/rest/reference/index.html
# https://docs.spring.io/spring-boot/docs/current/reference/html/application-properties.html#application-properties.data.spring.data.rest.base-path
# ===============================
spring.data.rest.base-path=/api
# spring.data.rest.default-page-size=20
# spring.data.rest.max-page-size=
# spring.data.rest.page-param-name=page
# spring.data.rest.limit-param-name=size
# spring.data.rest.sort-param-name=sort
spring.data.rest.return-body-on-create=true
spring.data.rest.return-body-on-update=true
# spring.data.rest.sort-param-name=
# ===============================
#=spring-boot-starter-actuator
# https://docs.spring.io/spring-boot/docs/current/reference/html/application-properties.html#appendix.application-properties.actuator
# https://docs.spring.io/spring-boot/docs/current/actuator-api/htmlsingle/#prometheus
# https://docs.micrometer.io/micrometer/reference/implementations/prometheus.html
# http://127.0.0.1:9003/actuator
# 健康检查http://127.0.0.1:9003/actuator/health
# 所有指标http://127.0.0.1:9003/actuator/metrics
# 特定指标http://127.0.0.1:9003/actuator/metrics/{metric.name}
# Prometheus 格式http://127.0.0.1:9003/actuator/prometheus
# http://127.0.0.1:9003/actuator/prometheus # Prometheus 指标接口
# Prometheus UI
# http://127.0.0.1:19090 # Prometheus 管理界面
# Grafana
# http://127.0.0.1:13000 # Grafana 管理界面
# - 用户名admin
# - 密码admin
# ===============================
# 关闭所有actuator端点
management.endpoints.enabled-by-default=false
management.endpoints.web.base-path=/actuator
management.endpoints.web.exposure.include=health,metrics,prometheus
management.endpoint.health.show-details=always
management.endpoint.metrics.enabled=true
management.endpoint.prometheus.enabled=true
# Metrics configuration
management.metrics.tags.application=bytedesk
management.metrics.distribution.percentiles-histogram.http.server.requests=true
management.metrics.distribution.sla.http.server.requests=100ms,400ms,500ms
# Prometheus configuration
management.prometheus.metrics.export.enabled=true
# ===============================
# = Zipkin Tracing Configuration
# ===============================
# 关闭 Zipkin 追踪
management.tracing.enabled=false
management.zipkin.tracing.enabled=false
# management.zipkin.tracing.endpoint=http://127.0.0.1:9411/api/v2/spans
# 或者设置采样概率为0来禁用追踪
management.tracing.sampling.probability=0.0
# Prometheus Admin Credentials
# spring.docker.compose.service.bytedesk-prometheus.environment.PROMETHEUS_ADMIN_USER=admin
# spring.docker.compose.service.bytedesk-prometheus.environment.PROMETHEUS_ADMIN_PASSWORD=admin
# Grafana Admin Credentials
# spring.docker.compose.service.bytedesk-grafana.environment.GF_SECURITY_ADMIN_USER=admin
# spring.docker.compose.service.bytedesk-grafana.environment.GF_SECURITY_ADMIN_PASSWORD=admin
# spring.docker.compose.service.bytedesk-grafana.environment.GF_AUTH_ANONYMOUS_ENABLED=false
#
# ===============================
#=spring-boot-starter-admin-client
# https://github.com/codecentric/spring-boot-admin?tab=readme-ov-file
# https://docs.spring-boot-admin.com/current/getting-started.html
# ===============================
spring.boot.admin.client.url=http://127.0.0.1:9003
# spring.boot.admin.ui.public-url=http://127.0.0.1:9003/actuator/admin
# ===============================
#=springdoc
# https://springdoc.org/#properties
# http://127.0.0.1:9003/swagger-ui/index.html
# http://127.0.0.1:9003/v3/api-docs
# ===============================
springdoc.show-actuator=false
# swagger-ui
# http://127.0.0.1:9003/swagger-ui/index.html
springdoc.swagger-ui.enabled=true
springdoc.swagger-ui.path=/index.html
# api-docs
springdoc.api-docs.enabled=true
springdoc.api-docs.path=/v3/api-docs
# knife4j
# http://127.0.0.1:9003/doc.html
knife4j.enabled=true
knife4j.setting.language=zh_cn
# ===============================
#=spring-boot-devtools
# https://docs.spring.io/spring-boot/docs/current/reference/html/application-properties.html#appendix.application-properties.devtools
# ===============================
spring.devtools.restart.poll-interval=2s
spring.devtools.restart.quiet-period=1s
#
# ===============================
# = Apache ActiveMQ Artemis logger levels
# ===============================
# https://activemq.apache.org/components/artemis/documentation/latest/logging.html
# https://codeaches.com/spring-boot/embedded-activemq-artemis-jms-broker
logging.level.org.apache.activemq.artemis.core.server=WARN
logging.level.org.apache.activemq.artemis.utils=WARN
logging.level.org.apache.activemq.artemis.jms=WARN
logging.level.org.apache.activemq.audit.base=WARN
logging.level.org.apache.activemq.audit.message=WARN
# ===============================
# = spring-boot-starter-artemis
# = jms artemis
# https://spring.io/guides/gs/messaging-jms
# https://docs.spring.io/spring-boot/reference/messaging/jms.html
# https://activemq.apache.org/components/artemis/documentation/latest/index.html
# spring.jms.pub-sub-domain=true
# ===============================
spring.artemis.mode=embedded
# spring.artemis.mode=native
# spring.artemis.broker-url=tcp://127.0.0.1:61617
# spring.artemis.user=admin
# spring.artemis.password=admin
# ===============================
# spring.artemis.broker-url=tcp://154.89.155.120:61617
# spring.artemis.user=admin
# spring.artemis.password=admin
# ===============================
# = LDAP 健康检查配置
# ===============================
# 禁用LDAP健康检查避免在没有LDAP服务时导致整体健康状态为DOWN
management.health.ldap.enabled=false
# ===============================
# = spring mail
# https://springdoc.cn/spring-boot/application-properties.html#appendix.application-properties.mail
# ===============================
spring.mail.host=smtp.qq.com
spring.mail.port=465
# spring.mail.username=
# spring.mail.password=
spring.mail.data-encoding=UTF-8
spring.mail.protocol=smtps
spring.mail.properties.mail.smtp.connectiontimeout=5000
spring.mail.properties.mail.smtp.timeout=3000
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.starttls.required=true
#
# ===============================
# = Quartz
# https://github.com/quartz-scheduler/quartz
# https://docs.spring.io/spring-boot/reference/io/quartz.html
# https://medium.com/@ChamithKodikara/spring-boot-2-quartz-2-scheduler-integration-a8eaaf850805
# SpringBoot官方说明https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-quartz.html
# Quartz官方文档https://www.quartz-scheduler.org/documentation/2.3.1-SNAPSHOT/tutorials/index.html
# ===============================
spring.quartz.job-store-type=jdbc
# # 3种模式: ALWAYS、EMBEDDED、NEVER
# 首次启动时创建表但每次都会清空数据初始化之后需要修改为never
spring.quartz.jdbc.initialize-schema=always
# spring.quartz.jdbc.initialize-schema=never
spring.quartz.wait-for-jobs-to-complete-on-shutdown=true
#
spring.quartz.properties.org.quartz.scheduler.instanceName=BytedeskScheduler
spring.quartz.properties.org.quartz.scheduler.instanceId=AUTO
#spring.quartz.properties.org.quartz.scheduler.instanceIdGenerator.class=io.xiaper.schedule.util.CustomQuartzInstanceIdGenerator
#
spring.quartz.properties.org.quartz.jobStore.isClustered=true
spring.quartz.properties.org.quartz.jobStore.tablePrefix=QRTZ_
# spring.quartz.properties.org.quartz.jobStore.class=org.quartz.impl.jdbcjobstore.JobStoreTX
spring.quartz.properties.org.quartz.jobStore.class=org.springframework.scheduling.quartz.LocalDataSourceJobStore
spring.quartz.properties.org.quartz.jobStore.clusterCheckinInterval=10000
spring.quartz.properties.org.quartz.jobStore.useProperties=false
#
spring.quartz.properties.org.quartz.threadPool.class=org.quartz.simpl.SimpleThreadPool
spring.quartz.properties.org.quartz.threadPool.threadCount=5
spring.quartz.properties.org.quartz.threadPool.threadPriority=5
spring.quartz.properties.org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread=true
#
# ===============================
# = multipart file uploads
# ===============================
spring.servlet.multipart.enabled=true
# Write files to disk if the file size is more than 2KB.
spring.servlet.multipart.file-size-threshold=2KB
# The intermediate disk location where the uploaded files are written
# jetty里面开启这个配置会报错
# spring.servlet.multipart.location=/tmp
# Maximum file size that can be uploaded
spring.servlet.multipart.max-file-size=100MB
# Maximum allowed multipart request size
spring.servlet.multipart.max-request-size=100MB
# ===============================
# = spring-session-data-redis
# https://docs.spring.io/spring-session/reference/guides/boot-redis.html
# ===============================
# server.servlet.session.cookie.name=MY_SESSION_COOKIE
# server.servlet.session.cookie.max-age=3600
# server.servlet.session.cookie.domain
# server.servlet.session.cookie.path
# not working?
# spring.session.redis.namespace=bytedeskim
#
# ===============================
# = ai
# ===============================
# spring.mvc.async.request-timeout=10000
logging.level.org.springframework.ai.chat.client.advisor=DEBUG
# 启用Spring AI的观察功能
spring.ai.observation.enabled=true
spring.ai.retry.observation.enabled=true
# 文本对话配置
# https://www.weiyuai.cn/docs/zh-CN/docs/provider/model_text
# spring.ai.model.chat=none
# spring.ai.model.chat=ollama
spring.ai.model.chat=zhipuai
# spring.ai.model.chat=dashscope
# 向量模型
# https://www.weiyuai.cn/docs/zh-CN/docs/provider/model_embedding
# spring.ai.model.embedding=none
# spring.ai.model.embedding=ollama
spring.ai.model.embedding=zhipuai
# spring.ai.model.embedding=dashscope
# 视觉模型
# https://www.weiyuai.cn/docs/zh-CN/docs/provider/model_vision
# spring.ai.model.vision=none
# spring.ai.model.vision=ollama
spring.ai.model.vision=zhipuai
# spring.ai.model.vision=dashscope
#
spring.ai.model.image=none
spring.ai.model.moderation=none
# 语音模型
# spring.ai.model.audio=none
# spring.ai.model.audio=ollama
spring.ai.model.audio=zhipuai
# spring.ai.model.audio=dashscope
#
spring.ai.model.audio.speech=none
spring.ai.model.audio.transcription=none
# 重排序模型
# spring.ai.model.rerank=none
# spring.ai.model.rerank=ollama
spring.ai.model.rerank=zhipuai
# spring.ai.model.rerank=dashscope
# 多模态模型
# spring.ai.model.multimodal=none
# spring.ai.model.multimodal=ollama
spring.ai.model.multimodal=zhipuai
# spring.ai.model.multimodal=dashscope
# ollama:
# https://docs.spring.io/spring-ai/reference/api/chat/ollama-chat.html
# spring.ai.ollama.init.pull-model-strategy=always
# 默认11434为防止本地冲突如果是docker需要修改为21434
# spring.ai.ollama.base-url=http://127.0.0.1:11434
spring.ai.ollama.base-url=http://127.0.0.1:21434
spring.ai.ollama.chat.enabled=true
# spring.ai.ollama.chat.options.model=deepseek-r1:latest
spring.ai.ollama.chat.options.model=qwen3:0.6b
spring.ai.ollama.chat.options.temperature=0.7
# spring.ai.ollama.chat.options.numa=false
# https://docs.spring.io/spring-ai/reference/api/embeddings/ollama-embeddings.html
spring.ai.ollama.embedding.enabled=true
# https://github.com/ollama/ollama?tab=readme-ov-file#model-library
spring.ai.ollama.embedding.options.model=bge-m3:latest
# spring.ai.ollama.embedding.options.numa=false
# spring.ai.ollama.init.timeout=60s
# spring.ai.ollama.init.max-retries=2
# https://huggingface.co/BAAI/bge-reranker-v2-m3
spring.ai.ollama.embedding.options.model.rerank=linux6200/bge-reranker-v2-m3:latest
# zhipuai
# https://open.bigmodel.cn/overview
# https://docs.spring.io/spring-ai/reference/api/embeddings/zhipuai-embeddings.html
# https://docs.spring.io/spring-ai/reference/api/chat/zhipuai-chat.html
# spring.ai.zhipuai.base-url=https://open.bigmodel.cn/api/paas
# 申请智谱AI API Keyhttps://www.bigmodel.cn/usercenter/proj-mgmt/apikeys
# spring.ai.zhipuai.chat.base-url=URL_ADDRESS
spring.ai.zhipuai.api-key='sk-xxx'
spring.ai.zhipuai.chat.enabled=true
# 免费模型https://open.bigmodel.cn/dev/api#glm-4
spring.ai.zhipuai.chat.options.model=glm-4.5-flash
spring.ai.zhipuai.chat.options.temperature=0.7
# https://docs.spring.io/spring-ai/reference/api/embeddings/zhipuai-embeddings.html
spring.ai.zhipuai.embedding.enabled=true
# spring.ai.zhipuai.embedding.base-url=https://api.bigmodel.cn
# spring.ai.zhipuai.embedding.api-key=sk-xxx
# 1024维度的模型
spring.ai.zhipuai.embedding.options.model=embedding-2
# 2048维度的模型
# spring.ai.zhipuai.embedding.options.model=embedding-3
#
# spring ai alibaba
# https://java2ai.com/docs/dev/get-started/
# 阿里云百炼大模型获取api key
# https://bailian.console.aliyun.com/?apiKey=1#/api-key
# 阿里云百炼大模型模型列表:
# https://bailian.console.aliyun.com/?spm=a2c4g.11186623.0.0.11c67980m5X2VR#/model-market
spring.ai.dashscope.enabled=false
# spring.ai.dashscope.base-url=https://dashscope.aliyuncs.com
# spring.ai.dashscope.api-key=sk-xxx
# spring.ai.dashscope.chat.enabled=false
# spring.ai.dashscope.chat.options.model=qwen-max
# spring.ai.dashscope.chat.options.temperature=0.7
# spring.ai.dashscope.chat.options.topP=3
# spring.ai.dashscope.audio.transcription.enabled=false
# spring.ai.dashscope.image.enabled=false
# spring.ai.dashscope.embedding.enabled=false
# spring.ai.dashscope.audio.synthesis.enabled=false
# spring.ai.nacos.prompt.template.enabled=false
# ===============================
# = 向量数据库
# ===============================
# https://github.com/spring-projects/spring-ai/blob/main/spring-ai-vector-store/src/main/java/org/springframework/ai/vectorstore/SpringAIVectorStoreTypes.java
# spring.ai.vectorstore.type=none
# spring.ai.vectorstore.type=redis
# spring.ai.vectorstore.type=chroma
spring.ai.vectorstore.type=elasticsearch
# spring.ai.vectorstore.type=weaviate
# spring.ai.vectorstore.type=milvus
# spring.ai.vectorstore.type=pgvector
# elasticsearch
# 浏览器可视化插件管理 es-client: https://gitee.com/q2316367743/es-client
# 配置参数 https://docs.spring.io/spring-ai/reference/api/vectordbs/elasticsearch.html#elasticsearchvector-properties
spring.elasticsearch.uris=http://127.0.0.1:19200
spring.elasticsearch.username=elastic
spring.elasticsearch.password=bytedesk123
#
spring.ai.vectorstore.elasticsearch.enabled=true
spring.ai.vectorstore.elasticsearch.initialize-schema=true
spring.ai.vectorstore.elasticsearch.index-name=bytedesk_vs_index
spring.ai.vectorstore.elasticsearch.dimensions=1024
# cosine/l2_norm/dot_product
spring.ai.vectorstore.elasticsearch.similarity=cosine
# chroma
# spring.ai.vectorstore.chroma.enabled=false
# spring.ai.vectorstore.chroma.uri=http://127.0.0.1:18000
# spring.ai.vectorstore.chroma.collection-name=bytedesk_vs_collection
# spring.ai.vectorstore.chroma.distance-function=COSINE
# spring.ai.vectorstore.chroma.embedding-dimension=1024
# weaviate
# spring.ai.vectorstore.weaviate.enabled=false
# spring.ai.vectorstore.weaviate.host=127.0.0.1
# spring.ai.vectorstore.weaviate.port=18080
# spring.ai.vectorstore.weaviate.scheme=http
# spring.ai.vectorstore.weaviate.index-name=BytedeskVectors
# spring.ai.vectorstore.weaviate.text-field-name=content
# milvus
# spring.ai.vectorstore.milvus.enabled=false
# spring.ai.vectorstore.milvus.host=127.0.0.1
# spring.ai.vectorstore.milvus.port=19530
# spring.ai.vectorstore.milvus.collection-name=bytedesk_vectors
# spring.ai.vectorstore.milvus.vector-field=embedding
# spring.ai.vectorstore.milvus.text-field=content
# spring.ai.vectorstore.milvus.dimensions=1024
# ===============================
# = spring ai mcp
# https://contribute.liquibase.com/extensions-channels/directory/integration-docs/springboot/configuration/
# ===============================
# https://docs.spring.io/spring-ai/reference/api/mcp/mcp-client-boot-starter-docs.html
spring.ai.mcp.client.enabled=false
# logging.level.org.springframework.ai.mcp=WARN
# logging.level.org.springframework.ai.mcp.client.transport.StdioClientTransport=WARN
# logging.level.org.springframework.ai.mcp.samples.brave=INFO
# logging.level.io.modelcontextprotocol.client=WARN
# logging.level.io.modelcontextprotocol.spec=WARN
# mcp servers
# https://github.com/modelcontextprotocol/servers
# https://docs.spring.io/spring-ai/reference/api/mcp/mcp-server-boot-starter-docs.html
# https://github.com/spring-projects/spring-ai/blob/b29076f/auto-configurations/spring-ai-mcp-server/src/main/java/org/springframework/ai/autoconfigure/mcp/server/McpServerProperties.java
spring.ai.mcp.server.enable=false
# spring.ai.mcp.server.name=bytedesk-starter
# spring.ai.mcp.server.version=0.0.1
# SYNC or ASYNC
spring.ai.mcp.server.type=SYNC
# Transport configuration
spring.ai.mcp.server.stdio=false
# spring.ai.mcp.server.sse-message-endpoint=/mcp/message
# spring.ai.mcp.server.resource-change-notification=true
# spring.ai.mcp.server.tool-change-notification=true
# spring.ai.mcp.server.prompt-change-notification=true
# ===============================
# = Spring Batch Configuration
# ===============================
# 禁止启动时自动执行作业
spring.batch.job.enabled=false
# 始终初始化批处理表生产环境建议设置为never
spring.batch.jdbc.initialize-schema=never
# 表前缀默认是BATCH_
# spring.batch.jdbc.schema=classpath:org/springframework/batch/core/schema-mysql.sql
# spring.batch.jdbc.table-prefix=BD_BATCH_
#
# ===============================
# = liquibase
# https://contribute.liquibase.com/extensions-channels/directory/integration-docs/springboot/configuration/
# ===============================
spring.liquibase.enabled=true
spring.liquibase.change-log=classpath:db/changelog/master.xml
# ===============================
# = flowable
# https://www.flowable.com/open-source/docs/bpmn/ch05a-Spring-Boot
# ===============================
# 禁止自动部署流程文件
# flowable.check-process-definitions=false
# flowable.deployment-enabled=false
# 禁止CMMN自动部署
# flowable.cmmn.enabled=false
# flowable.cmmn.deployment-enabled=false
# 禁止DMN自动部署
# flowable.dmn.enabled=false
# flowable.dmn.deployment-enabled=false
# 禁止Form自动部署
# flowable.form.enabled=false
# flowable.form.deployment-enabled=false
# 禁止Content自动部署
# flowable.content.enabled=false
# flowable.content.deployment-enabled=false
# 禁止Event Registry自动部署
# flowable.eventregistry.enabled=false
# flowable.eventregistry.deployment-enabled=false
# ===============================
# = Flowable 日志配置
# ===============================
logging.level.org.flowable=WARN
logging.level.org.flowable.app=WARN
logging.level.org.flowable.engine=WARN
logging.level.org.flowable.cmmn=WARN
logging.level.org.flowable.dmn=WARN
logging.level.org.flowable.idm=WARN
logging.level.org.flowable.eventregistry=WARN
logging.level.org.flowable.common=WARN
# ===============================
# = 百度翻译
# https://fanyi-api.baidu.com/doc/21
# ===============================
bytedesk.translate.baidu.appid=placeholder
bytedesk.translate.baidu.key=placeholder
# 抖音开放平台
# https://developer.open-douyin.com/webapp/aw74cmav4symty7z/setting/app-info
# douyin.client.key=placeholder
# douyin.client.secret=placeholder
#
# ===============================
# = 阿里云OSS访问密钥 + 短信服务
# ===============================
aliyun.region.id=cn-hangzhou
# 获取阿里云密钥 https://ram.console.aliyun.com/profile/access-keys
aliyun.access.key.id=placeholder
aliyun.access.key.secret=placeholder
# 阿里云OSS服务相关配置
# OSS的endpoint,这里是华南地区(也就是深圳)
aliyun.oss.endpoint=https://oss-cn-shenzhen.aliyuncs.com
aliyun.oss.base.url=https://bytedesk.oss-cn-shenzhen.aliyuncs.com
# 这是创建的bucket
aliyun.oss.bucket.name=placeholder
# 这里已经把自己的域名映射到bucket地址了。需要设置域名绑定设置域名CNAME暂不使用
aliyun.oss.img.domain=placeholder
# 阿里云短信服务
# 短信签名 https://dysms.console.aliyun.com/domestic/text/sign
aliyun.sms.signname=微语
# 短信模板管理 https://dysms.console.aliyun.com/domestic/text/template
aliyun.sms.templatecode=SMS_xxxxxxxxx
#
# ===============================
# = 腾讯云COS对象存储访问密钥
# ===============================
# 创建bucket并需要在此bucket下创建文件夹apns/development(二级文件夹), apns/production(二级文件夹), avatars, images, voices, files
# 储桶所属地域
tencent.bucket.location=ap-shanghai
# 存储桶名称
tencent.bucket.name=
# 访问域名
tencent.bucket.domain=
#API密钥管理获取
tencent.appid=
tencent.secretid=
tencent.secretkey=
# ===============================
# = 微信支付
# ===============================
bytedesk.wechat.pay.enabled=false
bytedesk.wechat.pay.certpath=''
bytedesk.wechat.pay.appid=
bytedesk.wechat.pay.mch_id=
bytedesk.wechat.pay.key=
bytedesk.wechat.pay.notify_url=
# ===============================
# = docker compose
# 可以 cd 到 starter/src/main/resources 目录下,事先启动容器,然后启动项目,或者直接启动项目,项目会自动启动容器(但会等待容器启动完成)
# 启动容器中依赖docker compose -p bytedesk -f compose.yaml up -d
# 停止容器中依赖docker compose -p bytedesk -f compose.yaml down
#= 跟模块 spring-boot-docker-compose 配合使用
# https://spring.io/guides/topicals/spring-boot-docker
# https://spring.io/blog/2023/06/21/docker-compose-support-in-spring-boot-3-1
# https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-docker-compose
# https://hub.docker.com/r/jackning/bytedesk
# https://springdoc.cn/docker-compose-support-spring-boot/
# https://docs.spring.io/spring-boot/docs/3.2.0/reference/htmlsingle/#features.docker-compose
# ===============================
# true 表示启用 docker compose
# false 表示禁用 docker compose
spring.docker.compose.enabled=false
# 指定 docker compose 文件路径路径starter/src/main/resources
spring.docker.compose.file=classpath:compose.yaml
# 设置Docker Compose项目名称相当于命令行中的 -p 参数
spring.docker.compose.project-name=bytedesk