rapidstor-mono (Cloudflare Pages) rapidstor legacy (Docker Swarm)
┌─────────────────────────┐ ┌──────────────────────────────┐
│ rapidstor-frontend (v2) │──REST/token──▶│ Express API /api/v1, /api/v2 │
│ rapidstor-chat (widget) │──SSE/WS──────▶│ Automate agent-runtime │
│ @r6digital/rapidstor-types MCP tools──▶│ (widget turns + MCP proxy) │
└─────────────────────────┘ │ AngularJS admin + legacy FE │
│ BullMQ workers (sync/mail/…) │
└───────┬──────────┬───────────┘
│ │
MongoDB Redis
│
SiteLink SOAP
Process model #
Single codebase, role via ROLE env:
- (default) — web server
sync— SiteLink sync + rate-push workersmail— delayed email/SMSindexing— MongoDB index reconciliation (Atlas rolling builds + registry)
Data stores #
- Central MongoDB — corporations, users, superUsers, mappings
- Per-corp MongoDB databases — sites, units, reservations, descriptors, deals, etc.
- Redis — sessions (optional), BullMQ queues
Cross-product: The mono chat widget streams turns from Automate agent-runtime (POST /widget/conversations/:id/messages SSE + watch WebSocket). Agent tools call RapidStor MCP at /api/v1/mcp for locations, unit types, and bookings. Legacy Laravel /api/v1/public/widget/chat/* routes remain for older deployments.