Environment Variables
Complete reference for all environment variables used by MediaMagic CRM.
Variable Reference
MySQL (EspoCRM Database)
| Variable | Required | Default | Description |
|---|---|---|---|
MYSQL_ROOT_PASSWORD | ✅ | — | Root user password |
MYSQL_PASSWORD | ✅ | — | Application database password |
MYSQL_USER | ❌ | espocrm | Database user |
MYSQL_DATABASE | ❌ | espocrm | Database name |
EspoCRM
| Variable | Required | Default | Description |
|---|---|---|---|
ESPOCRM_ADMIN_USER | ✅ | — | Admin username |
ESPOCRM_ADMIN_PASSWORD | ✅ | — | Admin password |
ESPOCRM_SITE_URL | ✅ | — | Public URL for EspoCRM |
ESPOCRM_API_KEY | ✅* | — | API key for Bridge (*after setup) |
PostgreSQL (Analytics)
| Variable | Required | Default | Description |
|---|---|---|---|
POSTGRES_PASSWORD | ✅ | — | Database password |
POSTGRES_USER | ❌ | mediamagic | Database user |
POSTGRES_DB | ❌ | mediamagic_analytics | Database name |
POSTGRES_HOST | ❌ | postgres | Host (Docker internal) |
Grafana
| Variable | Required | Default | Description |
|---|---|---|---|
GRAFANA_ADMIN_USER | ❌ | admin | Admin username |
GRAFANA_ADMIN_PASSWORD | ✅ | — | Admin password |
GRAFANA_ROOT_URL | ❌ | http://localhost:3200 | Public URL |
Ayrshare
| Variable | Required | Default | Description |
|---|---|---|---|
AYRSHARE_API_KEY | ⚠️ | — | API key (required for social features) |
X Server
| Variable | Required | Default | Description |
|---|---|---|---|
X_SERVER_URL | ⚠️ | — | X Server URL (required for publishing) |
n8n
| Variable | Required | Default | Description |
|---|---|---|---|
N8N_WEBHOOK_BASE | ❌ | — | Base URL for n8n webhooks |
AI & Transcription
| Variable | Required | Default | Description |
|---|---|---|---|
ANTHROPIC_API_KEY | ❌ | — | Claude API key |
DEEPGRAM_API_KEY | ❌ | — | Deepgram transcription |
ASSEMBLYAI_API_KEY | ❌ | — | AssemblyAI transcription |
Bunny CDN
| Variable | Required | Default | Description |
|---|---|---|---|
BUNNY_STORAGE_API_KEY | ❌ | — | Storage API key |
BUNNY_STORAGE_ZONE | ❌ | — | Storage zone name |
BUNNY_CDN_URL | ❌ | — | CDN URL |
Environment by Service
Bridge Container
EspoCRM Container
Template Files
.env.example
bash
# ============================================
# MediaMagic CRM Environment Configuration
# ============================================
# Copy this file to .env and fill in your values
# DO NOT commit .env to version control
# --- MySQL ---
MYSQL_ROOT_PASSWORD=
MYSQL_PASSWORD=
# --- EspoCRM ---
ESPOCRM_ADMIN_USER=admin
ESPOCRM_ADMIN_PASSWORD=
ESPOCRM_SITE_URL=http://localhost:8080
ESPOCRM_API_KEY=
# --- PostgreSQL ---
POSTGRES_PASSWORD=
# --- Grafana ---
GRAFANA_ADMIN_USER=admin
GRAFANA_ADMIN_PASSWORD=
GRAFANA_ROOT_URL=http://localhost:3200
# --- External Services ---
AYRSHARE_API_KEY=
X_SERVER_URL=
N8N_WEBHOOK_BASE=
# --- AI & Transcription ---
ANTHROPIC_API_KEY=
DEEPGRAM_API_KEY=
ASSEMBLYAI_API_KEY=
# --- CDN ---
BUNNY_STORAGE_API_KEY=
BUNNY_STORAGE_ZONE=
BUNNY_CDN_URL=Validation
Check your configuration:
bash
#!/bin/bash
# validate-env.sh
required_vars=(
"MYSQL_ROOT_PASSWORD"
"MYSQL_PASSWORD"
"ESPOCRM_ADMIN_PASSWORD"
"ESPOCRM_SITE_URL"
"POSTGRES_PASSWORD"
"GRAFANA_ADMIN_PASSWORD"
)
missing=0
for var in "${required_vars[@]}"; do
if [ -z "${!var}" ]; then
echo "❌ Missing: $var"
missing=$((missing + 1))
else
echo "✅ Set: $var"
fi
done
if [ $missing -gt 0 ]; then
echo ""
echo "⚠️ $missing required variable(s) missing"
exit 1
else
echo ""
echo "✅ All required variables set"
fiSecurity Notes
Never Commit Secrets
.envshould be in.gitignore- Use
.env.exampleas a template (with empty values) - Never log or display API keys
Password Requirements
- Minimum 16 characters
- Mix of uppercase, lowercase, numbers, symbols
- Unique password per service
Production Considerations
- Use secrets management in production (Vault, AWS Secrets Manager, etc.)
- Rotate API keys regularly
- Audit access logs