-
Notifications
You must be signed in to change notification settings - Fork 120
CLAUDE
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
This is the official wiki for the Bytedesk project, which is an AI-powered omnichannel customer service platform with team cooperation capabilities.
Important: This wiki repository complements the main Bytedesk codebase repository at /Users/ningjinpeng/Desktop/Git/Github/private/bytedesk-2x/. This wiki focuses on documentation for developers, operators, and maintainers.
Bytedesk is a comprehensive platform providing:
- Team IM - Enterprise instant messaging with organizational structure
- Customer Service - Multi-channel customer support and routing
- Knowledge Base - RAG-enabled documentation and FAQ system
- Ticket System - Issue tracking with SLA management
- AI Agent - LLM integration with function calling
- Call Center - Voice call support via FreeSWITCH
- Video Customer Service - WebRTC-based video calls
- Open Platform - RESTful APIs and multi-language SDKs
- Java 21 - Programming language
- Spring Boot 3.5.x - Web framework
- Maven - Build and dependency management
- Databases: MySQL, PostgreSQL, Oracle, KingbaseES
- Message Queues: Artemis (default), RabbitMQ
- Caching: Redis
- Search: Elasticsearch
- AI Integration: Spring AI, Ollama, ZhipuAI, DeepSeek
- Node.js 20+ - Runtime
- pnpm 10 - Package manager
- Turborepo - Monorepo build system
- React - UI framework
- TypeScript - Language
- Ant Design - Component library
- Zustand - State management
- Vite - Build tool
- Flutter - Cross-platform framework
- Dart - Language
- UniApp - Lightweight mobile framework
- Docker & Docker Compose - Containerization
- Kubernetes - Orchestration (optional)
- Nginx - Reverse proxy
- Elastic Stack - Logging and monitoring
The Bytedesk main repository uses a monorepo architecture:
bytedesk/
├── modules/ # Core business modules
│ ├── team/ # Team IM & organization
│ ├── service/ # Customer service
│ ├── kbase/ # Knowledge base
│ ├── ticket/ # Ticket system
│ ├── ai/ # AI agent
│ ├── voc/ # Voice of customer
│ ├── call/ # Call center
│ ├── webrtc/ # WebRTC video
│ ├── core/ # Core infrastructure
│ └── ... # Other modules
├── plugins/ # Optional plugins
│ ├── freeswitch/ # FreeSWITCH integration
│ ├── webrtc/ # WebRTC integration
│ └── openplatform/ # Open API platform
├── channels/ # External channel integrations
│ ├── wechat/ # WeChat integration
│ ├── douyin/ # Douyin integration
│ ├── shop/ # E-commerce integrations
│ └── social/ # Social integrations
├── starter/ # Application entry point
├── frontend/ # Frontend workspace
│ ├── apps/ # Individual applications
│ │ ├── admin/ # Admin dashboard
│ │ ├── agent/ # Agent workbench
│ │ ├── visitor/ # Visitor widget
│ │ └── ... # Other apps
│ └── packages/ # Shared libraries
├── deploy/ # Deployment assets
│ └── docker/ # Docker Compose files
├── enterprise/ # Enterprise features
├── control/ # Control plane
├── projects/ # Custom projects
├── mobile/ # Mobile applications
├── docs/ # Docusaurus documentation site
└── scripts/ # Automation scripts
Bytedesk supports multiple deployment scenarios:
| Scenario | Description |
|---|---|
standard |
Standard customer service with AI capabilities |
noai |
Without AI dependencies, simpler deployment |
call |
With call center capabilities (FreeSWITCH) |
webrtc |
With WebRTC video capabilities |
call-webrtc |
Both call center and WebRTC video |
cd deploy/docker
cp .env.example .env
# Start middleware only (for development)
./start.sh mysql artemis standard middleware
# Start full stack (for testing/production)
./start.sh mysql artemis standard all
# Stop containers
./stop.sh mysql artemis standard stop middleware
# Remove containers (keep volumes)
./stop.sh mysql artemis standard down middleware# Build entire project
mvn clean install
# Build without tests
mvn clean install -DskipTests
# Build specific module
mvn clean install -pl modules/service
# Run application from starter
cd starter
mvn spring-boot:runcd frontend
nvm use
pnpm install
# Start all apps
pnpm dev
# Start specific app
turbo dev --filter=admin
# Build all apps
pnpm build
# Lint
pnpm lintcd docs
pnpm install
pnpm build
pnpm start-cn# Start script
./start.sh <db> <mq> <scenario> <target>
# Stop script
./stop.sh <db> <mq> <scenario> <action> <target>Parameters:
-
db:
mysql,postgresql,oracle,kingbase9 -
mq:
artemis,rabbitmq -
scenario:
standard,noai,call,webrtc,call-webrtc -
target:
middleware,all -
action:
stop,down
- Use English filenames with spaces replaced by hyphens (e.g.,
Quick-Start.md) - All content should be in English
- Keep the sidebar (
_Sidebar.md) updated when adding new pages
- Focus on "how to start, locate, and decide" - Don't repeat what's already in the code
- Document default paths, recommended combinations, and common scenarios - Reduce onboarding friction
- Update this wiki first when commands, module boundaries, or dependency matrices change
-
docs/- Official documentation site (Docusaurus), for end users - This wiki - Repository collaboration, maintenance, and development documentation, for contributors
- URL: http://127.0.0.1:9003/
- Account: admin@email.com
- Password: admin (change before production!)
- Home - Main entry point and project overview
- Quick-Start - 5-minute getting started guide
- Project-Structure - Monorepo layout explanation
- Architecture-Overview - Runtime architecture
- Module-Map - Business modules and extensions
- Development-Guide - Development setup and commands
- Deployment-Guide - Deployment documentation
- _Sidebar - Navigation sidebar
-
Main Repository:
/Users/ningjinpeng/Desktop/Git/Github/private/bytedesk-2x/ -
Main README:
/Users/ningjinpeng/Desktop/Git/Github/private/bytedesk-2x/README.md -
Main CLAUDE.md:
/Users/ningjinpeng/Desktop/Git/Github/private/bytedesk-2x/CLAUDE.md -
Docker README:
/Users/ningjinpeng/Desktop/Git/Github/private/bytedesk-2x/deploy/docker/readme.md
Copyright (c) 2013-2025 微语 Bytedesk.com, All rights reserved.
Licensed under GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3).