-
Notifications
You must be signed in to change notification settings - Fork 120
Project Structure
jack ning edited this page Jun 15, 2026
·
2 revisions
Bytedesk uses a Monorepo architecture with backend, frontend, deployment assets, and documentation in a single repository.
bytedesk/
├── channels/ # External channel integrations
├── control/ # Control plane and admin services
├── modules/ # Core business modules
├── plugins/ # Optional plugins and extensions
├── projects/ # Custom projects and special integrations
├── enterprise/ # Enterprise edition features
├── starter/ # Application entry points
├── frontend/ # pnpm + Turborepo frontend workspace
├── mobile/ # Mobile applications (Flutter, UniApp)
├── deploy/ # Deployment assets (Docker, K8s, Nginx)
├── docs/ # Docusaurus documentation site
├── apidocs/ # API documentation output
├── scripts/ # Automation scripts and utilities
└── images/ # Documentation images and screenshots
This is where most product capabilities live:
-
team/- Team IM, organization, roles, permissions -
service/- Customer service, routing, agent workbench -
kbase/- Knowledge base, help center, FAQ -
ticket/- Ticket management and SLA -
ai/- AI agent, models, RAG, function calling -
voc/- Voice of customer, feedback, surveys -
social/- Social IM features -
call/- Call center basic capabilities -
webrtc/- WebRTC video capabilities -
core/- Shared utilities and infrastructure -
forum/- Forum functionality -
bi/- Business intelligence and reporting -
training/- Training and onboarding -
disk/- File storage and management -
meet/- Meeting and conferencing -
remote/- Remote support capabilities -
opinion/- Feedback and review management
- Main Spring Boot application:
StarterApplication.java - Aggregates all modules for runtime
- Configuration files:
application*.properties
Connect external platforms and channels:
-
wechat/- WeChat integration -
douyin/- Douyin/TikTok integration -
shop/- E-commerce platform integrations -
social/- Social media platform integrations
Enhancement features that can be optionally enabled:
-
freeswitch/- FreeSWITCH call center integration -
webrtc/- WebRTC video and audio support -
openplatform/- Open API and developer platform
Enhanced enterprise features:
-
core/,ai/,kbase/,service/,ticket/,call/- Enterprise-licensed versions
-
control/- Control plane and admin services -
projects/- Custom implementations and special integrations
Monorepo managed with pnpm and Turborepo:
-
apps/- Individual frontend applications-
admin/- Admin dashboard -
agent/- Agent workbench -
visitor/- Visitor chat widget -
desktop/- Desktop application -
chat/- Chat application -
datav/- Data visualization -
meet/- Meeting application -
remote/- Remote support -
training/- Training platform
-
-
packages/- Shared libraries and components
-
flutter/- Flutter cross-platform apps -
uniapp/- UniApp lightweight mobile apps
-
docker/- Docker Compose configurations- Multiple compose files for different scenarios
-
start.shandstop.shscripts
-
kubernetes/- Kubernetes deployment files -
nginx/- Nginx configuration -
sql/- Database initialization scripts -
server/- Server configuration and scripts
- Docusaurus-based documentation
- Multi-language support
- Build and deployment scripts
The project is organized to emphasize:
- Business modularity - Each module represents a business capability
-
Pluggable extensions - Optional features are in
plugins/ - Deployment with code - Deployment assets live with the codebase
- Don't try to read everything - Focus on your area first
- Start with modules/ - Most development happens here
- Check frontend/ for UI development
- Refer to deploy/ for deployment changes
- Use Module Map to understand business capabilities
- All modules depend on
modules/core -
starter/aggregates all modules for runtime - Channel and plugin modules are optional
- Enterprise modules require licensing