- Update readme.md to reflect new docker-compose.yml structure - Remove obsolete portainer-env-template.txt file - Update PORTAINER_DEPLOYMENT.md to reference docker-compose.yml - Remove assets/ directory with CMS interface files - Clean up CMS references from documentation - Streamline project to focus on core AzerothCore functionality
5.8 KiB
AzerothCore Portainer Deployment Guide
🚀 Quick Start for Portainer
This guide will help you deploy AzerothCore in Portainer using your existing NFS storage structure.
📁 Files Needed:
docker-compose.yml- Main docker-compose stack file.env- Environment variables (set DEPLOYMENT_MODE=portainer)backup-scripts/Storage directory of backup and restoration scripts
📋 Step 1: Pre-Deployment Setup
1.1 Prepare Storage Directories
These directories will be created by the compose file:
# Main AzerothCore directory structure
${STORAGE_PATH_CONTAINERS}/azerothcore/
├── mysql/ # Database files
├── mysql-config/ # MySQL configuration
├── data/ # Game client data (15GB+)
├── config/ # Server configuration
├── logs/ # Server logs
├── modules/ # Playerbot modules
├── backups/ # Database backups
├── backup-scripts/ # Backup scripts
├── grafana/ # Grafana data
├── grafana-config/ # Grafana configuration
├── influxdb/ # InfluxDB data
├── cms/ # CMS data
└── keira3/ # Keira3 data
1.2 Copy Backup Scripts
# Copy your existing backup scripts to NFS storage
cp -r ./backup-scripts/ ${STORAGE_PATH_CONTAINERS}/azerothcore/
📋 Step 2: Portainer Stack Deployment
2.1 Create New Stack in Portainer
- Navigate to Portainer → Stacks → Add Stack
- Name:
azerothcore - Build method: Web editor
2.2 Copy Stack Configuration
Copy the contents of docker-compose.yml into the web editor.
2.3 Configure Environment Variables
In the Environment variables section, add all variables from portainer-env-template.txt:
⚠️ CRITICAL: Update these values for your environment:
STORAGE_PATH_CONTAINERS=/nfs/containers(your actual NFS path)EXTERNAL_IP=192.168.1.100(your server's public IP)- Port numbers (ensure no conflicts with existing services)
- Database passwords
- Web interface credentials
📋 Step 3: Network Configuration
3.1 Port Mappings
The stack uses these external ports (configurable):
- 3784: Authentication server
- 8215: World server
- 64306: MySQL database
- 7778: SOAP interface (if enabled)
- 8081: PHPMyAdmin
- 3001: Grafana
- 8087: InfluxDB
- 4201: Keira3 database editor
- 8001: CMS web interface
3.2 Firewall Rules
Ensure your firewall allows:
- Ports 3784 and 8215 for game clients
- Web interface ports for management access
📋 Step 4: Deployment Process
4.1 Initial Deployment
- Click "Deploy the stack"
- Monitor the deployment in Portainer logs
- Services will start in this order:
- MySQL database
- Database initialization
- Authentication server
- Client data download (15GB - may take 30+ minutes)
- World server
- Web interfaces
4.2 Monitor Progress
Watch these services for successful startup:
ac-mysql: Database readyac-client-data: Game data download completeac-authserver: Authentication readyac-worldserver: World server operational
📋 Step 5: Post-Deployment Verification
5.1 Service Health Checks
All services include health checks. In Portainer, verify:
- ✅ All containers showing "healthy" status
- ✅ No containers in "restarting" state
5.2 Web Interface Access
Test access to management interfaces:
- PHPMyAdmin:
http://your-server:8081 - Grafana:
http://your-server:3001(admin/acore123) - Keira3:
http://your-server:4201 - CMS:
http://your-server:8001
5.3 Game Server Testing
- Check worldserver logs for "AzerothCore ready" message
- Test client connection to your server IP on port 3784
- Verify realm list shows your server
🔧 Maintenance & Operations
Backup Management
- Automated backups run at 3 AM daily (configurable)
- Backups stored in
${STORAGE_PATH_CONTAINERS}/azerothcore/backups/ - Retention: 7 days (configurable)
Log Access
- Server logs:
${STORAGE_PATH_CONTAINERS}/azerothcore/logs/ - Container logs: Available in Portainer → Container → Logs
Configuration Updates
- Server config:
${STORAGE_PATH_CONTAINERS}/azerothcore/config/ - Restart containers after config changes
🚨 Troubleshooting
Common Issues:
1. Client Data Download Fails
- Check internet connectivity
- Verify storage permissions
- Monitor
ac-client-datacontainer logs
2. Database Connection Errors
- Verify MySQL container is healthy
- Check database credentials
- Ensure network connectivity between containers
3. Port Conflicts
- Update port mappings in environment variables
- Restart stack after port changes
4. Storage Permission Issues
- Verify NFS mount permissions
- Check container user permissions
- Ensure storage paths exist
Log Locations:
- Portainer: Container logs in web interface
- Server logs:
${STORAGE_PATH_CONTAINERS}/azerothcore/logs/ - Database logs: MySQL container logs in Portainer
📈 Monitoring & Metrics
The stack includes comprehensive monitoring:
- Grafana Dashboard: Real-time server metrics
- InfluxDB: Metrics storage
- Built-in Health Checks: Automatic container monitoring
- Backup Status: Automated backup verification
Access monitoring at: http://your-server:3001
🔐 Security Notes
- Change default passwords before deployment
- Restrict web interface access to management networks
- Use strong database passwords
- Regular security updates for containers
- Monitor access logs
✅ Your AzerothCore server is now ready for production use in Portainer!