Overview of BlueBubbles Server architecture
masterThe BlueBubbles Server is divided into a Back-end and a Front-end:
Back-end
- Main Entrypoint:
/bluebubbles-server/src/server/index.tsmanages ngrok, database connections, Socket.io, and IPC. - iMessage Integration: Uses TypeORM to interact with the iMessage Chat database via entities (
/entity), transformers (/transformers) for data conversion (e.g., date formats), and listeners (/listeners) to poll for new messages. - Services: Includes a Socket server (
/services/socket) for client requests and an FCM server (/services/fcm) for Google Firebase notifications. - Filesystem:
/src/fileSystemhandles macOS filesystem interactions and Apple Scripts for sending messages.
Front-end
- UI Structure: Built with React, using layouts (
/layouts) as containers, containers (/containers) for routing/navigation, and components (/components) for reusable UI elements like buttons and cards.