services: bytedesk-mysql: image: mysql:latest container_name: mysql-bytedesk environment: MYSQL_DATABASE: bytedesk MYSQL_ROOT_PASSWORD: r8FqfdbWUaN3 ports: - "13306:3306" volumes: - mysql_data:/var/lib/mysql networks: - bytedesk-network bytedesk-redis: image: redis/redis-stack-server:latest container_name: redis-bytedesk ports: - "16379:6379" environment: - REDIS_ARGS=--requirepass qfRxz3tVT8Nh volumes: - redis_data:/data networks: - bytedesk-network bytedesk: # image: bytedesk/bytedesk:latest # hub.docker.com enterprise # image: bytedesk/bytedesk-ce:latest # hub.docker.com community image: registry.cn-hangzhou.aliyuncs.com/bytedesk/bytedesk:latest # aliyun enterprise # mage: registry.cn-hangzhou.aliyuncs.com/bytedesk/bytedesk-ce:latest # aliyun community container_name: bytedesk depends_on: - bytedesk-mysql - bytedesk-redis environment: SERVER_PORT: 9003 # db config SPRING_DATASOURCE_URL: jdbc:mysql://mysql-bytedesk:3306/bytedesk?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true SPRING_DATASOURCE_USERNAME: root SPRING_DATASOURCE_PASSWORD: r8FqfdbWUaN3 SPRING_JPA_HIBERNATE_DDL_AUTO: update # redis config SPRING_DATA_REDIS_HOST: redis-bytedesk SPRING_DATA_REDIS_PORT: 6379 SPRING_DATA_REDIS_PASSWORD: qfRxz3tVT8Nh SPRING_DATA_REDIS_DATABASE: 0 # bytedesk config BYTEDESK_DEBUG: true BYTEDESK_EDITION: enterprise BYTEDESK_VERSION: 0.6.4 # enable custom config: name, logo, description BYTEDESK_CUSTOM_ENABLED: false BYTEDESK_CUSTOM_NAME: BYTEDESK_CUSTOM_LOGO: BYTEDESK_CUSTOM_DESCRIPTION: BYTEDESK_CUSTOM_SHOW_RIGHT_CORNER_CHAT: true # Admin config BYTEDESK_ADMIN_EMAIL: admin@email.com BYTEDESK_ADMIN_PASSWORD: admin BYTEDESK_ADMIN_PASSWORD_DEFAULT: 123456 BYTEDESK_ADMIN_NICKNAME: SuperAdmin BYTEDESK_ADMIN_MOBILE: 13345678000 BYTEDESK_ADMIN_MOBILE_WHITELIST: 18888888000,18888888001,18888888002,18888888003,18888888004,18888888005 BYTEDESK_ADMIN_EMAIL_WHITELIST: 100@email.com,101@email.com,102@email.com,103@email.com,104@email.com,105@email.com BYTEDESK_ADMIN_VALIDATE_CODE: 123456 BYTEDESK_ADMIN_FORCE_VALIDATE_MOBILE: true BYTEDESK_ADMIN_FORCE_VALIDATE_EMAIL: true # Organization config BYTEDESK_ORGANIZATION_NAME: MyCompany BYTEDESK_ORGANIZATION_CODE: bytedesk # Features config BYTEDESK_FEATURES_JAVA_AI: false BYTEDESK_FEATURES_PYTHON_AI: true BYTEDESK_FEATURES_EMAIL_TYPE: javamail BYTEDESK_FEATURES_ENABLE_REGISTRATION: false BYTEDESK_FEATURES_AVATAR_BASE_URL: # CORS config # BYTEDESK_CORS_ALLOWED_ORIGINS: * # JWT config BYTEDESK_JWT_SECRET_KEY: 1dfaf8d004207b628a9a6b859c429f49a9a7ead9fd8161c1e60847aeef06dbd2 BYTEDESK_JWT_EXPIRATION: 2592000000 BYTEDESK_JWT_REFRESH_TOKEN_EXPIRATION: 5184000000 # Cache config BYTEDESK_CACHE_LEVEL: 0 BYTEDESK_CACHE_PREFIX: bytedeskim BYTEDESK_CACHE_REDIS_STREAM_KEY: bytedeskim:stream # Upload config BYTEDESK_UPLOAD_TYPE: local BYTEDESK_UPLOAD_DIR: /app/uploads # 上传文件的访问地址,请修改为服务器实际的地址 BYTEDESK_UPLOAD_URL: http://127.0.0.1:9003 # Knowledge base config BYTEDESK_KBASE_THEME: default BYTEDESK_KBASE_HTML_PATH: helpcenter # 知识库的访问地址,请修改为服务器实际的地址 BYTEDESK_KBASE_API_URL: http://127.0.0.1:9003 # Socket config BYTEDESK_SOCKET_HOST: 0.0.0.0 BYTEDESK_SOCKET_WEBSOCKET_PORT: 9885 BYTEDESK_SOCKET_LEAK_DETECTOR_LEVEL: SIMPLE BYTEDESK_SOCKET_PARENT_EVENT_LOOP_GROUP_THREAD_COUNT: 1 BYTEDESK_SOCKET_CHILD_EVENT_LOOP_GROUP_THREAD_COUNT: 8 BYTEDESK_SOCKET_MAX_PAYLOAD_SIZE: 10240 # Cluster config BYTEDESK_CLUSTER_ENABLED: false # Push config # BYTEDESK_PUSH_APNS_BUNDLE_ID: com.kefux.im # BYTEDESK_PUSH_APNS_P12_URL: 123.p12 # BYTEDESK_PUSH_APNS_P12_PASSWORD: 123456 # druid SPRING_DATASOURCE_DRUID_STAT_VIEW_SERVLET_LOGIN_USERNAME: admin@email.com SPRING_DATASOURCE_DRUID_STAT_VIEW_SERVLET_LOGIN_PASSWORD: admin # Actuator security configuration MANAGEMENT_ENDPOINTS_ENABLED_BY_DEFAULT: false MANAGEMENT_ENDPOINTS_WEB_EXPOSURE_INCLUDE: '' MANAGEMENT_ENDPOINTS_WEB_EXPOSURE_EXCLUDE: '*' MANAGEMENT_ENDPOINT_HEALTH_ENABLED: false MANAGEMENT_ENDPOINT_INFO_ENABLED: false MANAGEMENT_SERVER_PORT: -1 MANAGEMENT_ENDPOINTS_WEB_BASE_PATH: '/management' SPRING_SECURITY_BASIC_ENABLED: true # ai config # zhipuai # 申请智谱AI API Key:https://www.bigmodel.cn/usercenter/proj-mgmt/apikeys SPRING_AI_ZHIPUAI_API_KEY: 'sk-xxx' SPRING_AI_ZHIPUAI_CHAT_ENABLED: false SPRING_AI_ZHIPUAI_CHAT_OPTIONS_MODEL: glm-4-flash SPRING_AI_ZHIPUAI_CHAT_OPTIONS_TEMPERATURE: 0.7 SPRING_AI_ZHIPUAI_EMBEDDING_ENABLED: false # ollama # ollama pull qwen2.5:1.5b SPRING_AI_OLLAMA_BASE_URL: http://host.docker.internal:11434 SPRING_AI_OLLAMA_CHAT_ENABLED: true # SPRING_AI_OLLAMA_CHAT_OPTIONS_MODEL: deepseek-r1:1.5b SPRING_AI_OLLAMA_CHAT_OPTIONS_MODEL: qwen2.5:1.5b SPRING_AI_OLLAMA_CHAT_OPTIONS_TEMPERATURE: 0.7 SPRING_AI_OLLAMA_EMBEDDING_ENABLED: true SPRING_AI_OLLAMA_EMBEDDING_OPTIONS_MODEL: qwen2.5:1.5b # deepseek # 申请key https://api-docs.deepseek.com/zh-cn/ SPRING_AI_DEEPSEEK_API_KEY: 'sk-xxx' SPRING_AI_DEEPSEEK_BASE_URL: https://api.deepseek.com SPRING_AI_DEEPSEEK_CHAT_ENABLED: false SPRING_AI_DEEPSEEK_CHAT_OPTIONS_MODEL: deepseek-chat SPRING_AI_DEEPSEEK_CHAT_OPTIONS_TEMPERATURE: 0.7 SPRING_AI_DEEPSEEK_EMBEDDING_ENABLED: false # openai # https://docs.spring.io/spring-ai/reference/api/chat/openai-chat.html SPRING_AI_OPENAI_API_KEY: 'sk-xxx' SPRING_AI_OPENAI_BASE_URL: https://api.openai.com SPRING_AI_OPENAI_CHAT_ENABLED: false SPRING_AI_OPENAI_CHAT_OPTIONS_MODEL: gpt-4o # SPRING_AI_OPENAI_CHAT_OPTIONS_MODEL: gpt-4o-mini SPRING_AI_OPENAI_CHAT_OPTIONS_TEMPERATURE: 0.7 SPRING_AI_OPENAI_EMBEDDING_ENABLED: false # alibaba # 阿里云百炼大模型获取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_API_KEY: 'sk-xxx' SPRING_AI_DASHSCOPE_CHAT_ENABLED: false SPRING_AI_DASHSCOPE_CHAT_OPTIONS_MODEL: deepseek-r1 SPRING_AI_DASHSCOPE_CHAT_OPTIONS_TEMPERATURE: 0.7 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 # moonshot SPRING_AI_MOONSHOT_CHAT_ENABLED: false SPRING_AI_MINIMAX_CHAT_ENABLED: false # vector store SPRING_AI_VECTORSTORE_REDIS_INITIALIZE_SCHEMA: true # SPRING_AI_VECTORSTORE_REDIS_URI: redis://:qfRxz3tVT8Nh@redis-bytedesk:6379 SPRING_AI_VECTORSTORE_REDIS_INDEX_NAME: bytedesk_vs_index # SPRING_AI_VECTORSTORE_REDIS_PREFIX: bytedesk_vs_prefix: # mcp SPRING_AI_MCP_CLIENT_ENABLED: false SPRING_AI_MCP_SERVER_ENABLED: false SPRING_AI_MCP_SERVER_STDIO: false SPRING_AI_MCP_SERVER_TYPE: SYNC # weaviate SPRING_AI_VECTORSTORE_WEAVIATE_ENABLED: false # SPRING_MAIN_ALLOW_BEAN_DEFINITION_OVERRIDING: true # wechat config WECHAT_PAY_ENABLED: false # springdoc SPRINGDOC_SHOW_ACTUATOR: false # swagger-ui # http://服务器ip: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://服务器ip:9003/doc.html KNIFE4J_ENABLED: true KNIFE4J_SETTING_LANGUAGE: zh_cn ports: - 9003:9003 - 9885:9885 volumes: - upload_data:/app/uploads networks: - bytedesk-network volumes: mysql_data: redis_data: upload_data: networks: bytedesk-network: driver: bridge