Services Overview
Detailed overview of each service in the MediaMagic CRM stack.
Service Map
EspoCRM
The primary CRM interface where users manage all content and workflows.
| Property | Value |
|---|---|
| Container | mediamagic-espocrm |
| Port | 8080 |
| Technology | PHP 8.2, Backbone.js |
| Database | MySQL 8.0 |
Features
- Custom Entities: ContentProduction, PlatformPublish, Clip, SocialPost, GuestBooking
- Kanban Boards: Visual pipeline management
- Webhooks: Trigger Bridge API on entity changes
- API Access: Full REST API
- Video Editor: Descript-style text-based editing
Custom Extensions
espocrm/custom/
├── Espo/Custom/ # Backend PHP
│ ├── Classes/
│ ├── Controllers/
│ ├── Hooks/
│ └── Services/
└── client/ # Frontend JS/CSS
├── src/views/ # Custom views
├── css/ # Custom styles
└── js/ # Custom scriptsBridge API
The central orchestration layer connecting EspoCRM to external services.
| Property | Value |
|---|---|
| Container | mediamagic-bridge |
| Port | 3100 |
| Technology | Node.js 20, Express |
| Database | PostgreSQL 16 |
Responsibilities
- Receive webhooks from EspoCRM
- Forward publishing requests to X Server
- Schedule social posts via Ayrshare
- Collect and store analytics
- Trigger n8n workflows
- AI analysis via Claude
Key Routes
| Route | Purpose |
|---|---|
/webhooks/* | EspoCRM webhook handlers |
/ayrshare/* | Social media proxy |
/analytics/* | Analytics queries |
/boxcast/* | Boxcast operations |
/x/* | X Server proxy |
MySQL
CRM database storing all EspoCRM data.
| Property | Value |
|---|---|
| Container | mediamagic-mysql |
| Port | 3306 (internal) |
| Version | 8.0 |
| Database | espocrm |
Key Tables
- Entity tables (auto-generated by EspoCRM)
- Relationship tables
- User and role tables
- Workflow tables
PostgreSQL
Analytics database for time-series metrics.
| Property | Value |
|---|---|
| Container | mediamagic-postgres |
| Port | 5432 |
| Version | 16 |
| Database | mediamagic_analytics |
Schema
Grafana
Visual analytics dashboards connected to PostgreSQL.
| Property | Value |
|---|---|
| Container | mediamagic-grafana |
| Port | 3200 |
| Version | 11 |
| Data Source | PostgreSQL |
Dashboards
| Dashboard | Purpose |
|---|---|
social-overview.json | Follower trends, engagement, platform comparison |
post-performance.json | Individual post analytics, top performers |
Features
- Time series charts
- Platform filtering
- Date range selection
- Auto-refresh
Mobile PWA
Progressive Web App for mobile access.
| Property | Value |
|---|---|
| Container | mediamagic-mobile |
| Port | 3300 |
| Technology | Vanilla JS, Service Worker |
Features
- Installable on mobile devices
- Offline support
- Quick actions for common tasks
- Push notifications (planned)
X Server
Platform automation server using Playwright for browser automation, video processing, and AI integrations.
| Property | Value |
|---|---|
| Repository | AmericanMedia/x |
| Port | 3000 |
| Technology | Node.js 20+, Express, Playwright, FFmpeg |
| Purpose | Publishing, video processing, AI analysis |
Key Features
- Browser Automation — Playwright-based automation for platforms without APIs
- Video Processing — FFmpeg-powered editing and conversion
- AI Integration — OpenAI/LangChain for content analysis
- CDN Upload — Direct Bunny CDN storage integration
- Social Media — Ayrshare proxy for social scheduling
Supported Platforms
| Platform | Livestream | Upload | Status Check |
|---|---|---|---|
| Rumble | ✅ | ✅ | — |
| YouTube | ✅ | — | — |
| Boxcast | ✅ | ✅ | — |
| Brighteon | ✅ | ✅ | ✅ |
| Odysee | ✅ | ✅ | ✅ |
| Bitchute | ✅ | ✅ | ✅ |
| Banned.Video | ✅ | — | ✅ |
| Transistor | — | ✅ | — |
| Substack | — | ✅ | — |
| Restream | ✅ | — | — |
Additional Capabilities
| Feature | Endpoint | Description |
|---|---|---|
| Video Editor | /video-editor/* | Text-based video editing |
| YouTube Download | /clips/youtube-download | Download clips from YouTube |
| Transcription | /video-editor/transcribe | Deepgram-powered transcription |
| Bunny CDN | /bunny-* | Storage and streaming uploads |
| Descript | /descript-* | Descript project management |
Running Locally
bash
cd x
npm install
npm run devFor detailed setup, see the X Server Architecture documentation.
Container Communication
Docker Network
All services communicate via the mediamagic bridge network:
yaml
networks:
mediamagic:
driver: bridgeInternal DNS
Services can reach each other by container name:
http://espocrm→ EspoCRMhttp://bridge:3100→ Bridge APIhttp://postgres:5432→ PostgreSQLhttp://grafana:3000→ Grafana