documentation cleanup

This commit is contained in:
uprightbass360
2025-09-30 04:36:57 -04:00
parent c21b364faf
commit c2ebb2f794
3 changed files with 109 additions and 609 deletions

View File

@@ -1,363 +0,0 @@
# AzerothCore Automated Deployment System
## 🚀 Overview
This deployment system provides automated installation, monitoring, and management of AzerothCore World of Warcraft server on Debian systems with Docker. It features layered service deployment, comprehensive monitoring, and system service integration.
## 📋 Features
- **Layered Deployment**: Database → Services → Optional → Tools
- **Real-time Monitoring**: Health checks, alerts, and web dashboard
- **System Service**: Automatic startup on boot with systemd
- **Resource Management**: CPU, memory, and disk monitoring
- **Backup System**: Automated database backups with retention
- **Security**: User isolation, firewall rules, and secure defaults
- **Web Interface**: Real-time status at http://localhost:8080
## 🛠️ Prerequisites
### System Requirements
- **OS**: Debian 10+ (Ubuntu 18.04+ compatible)
- **RAM**: 4GB minimum, 8GB recommended
- **Disk**: 20GB free space minimum
- **Network**: Internet access for image downloads
### Software Requirements
```bash
# Install Docker
curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker $USER
# Install Docker Compose
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
# Reboot to apply group changes
sudo reboot
```
## 🚀 Quick Start
### 1. Test Installation
```bash
# Clone or download the AzerothCore deployment files
cd /path/to/azerothcore-compose2
# Run comprehensive tests
./test-deployment.sh all
# Expected output: "All tests passed! 🎉"
```
### 2. Manual Deployment (Development)
```bash
# Start the stack manually
./azerothcore-deploy.sh start
# Monitor status
./azerothcore-deploy.sh status
# View logs
./azerothcore-deploy.sh logs ac-worldserver
# Stop the stack
./azerothcore-deploy.sh stop
```
### 3. System Service Installation (Production)
```bash
# Install as system service
sudo ./install-system-service.sh install
# Start services
sudo systemctl start azerothcore
# Check status
sudo systemctl status azerothcore
# Enable auto-start on boot (already enabled by installer)
sudo systemctl enable azerothcore
```
## 📊 Monitoring & Management
### Web Dashboard
- **URL**: http://localhost:8080
- **Features**: Real-time service status, resource usage, recent alerts
- **Auto-refresh**: Updates every 30 seconds
### Command Line Monitoring
```bash
# Real-time monitoring
./azerothcore-monitor.sh monitor
# Generate status page
./azerothcore-monitor.sh status
# View alerts
./azerothcore-monitor.sh alerts
# View metrics
./azerothcore-monitor.sh metrics
```
### System Service Management
```bash
# Start services
sudo systemctl start azerothcore
# Stop services
sudo systemctl stop azerothcore
# Restart services
sudo systemctl restart azerothcore
# Check status
sudo systemctl status azerothcore
# View logs
sudo journalctl -u azerothcore -f
# Check monitoring service
sudo systemctl status azerothcore-monitor
# Check web service
sudo systemctl status azerothcore-web
```
## 🔧 Configuration
### Environment Files
- `.env-database-local`: Local development settings
- `.env-production`: Production optimized settings (auto-created during system install)
### Key Configuration Options
```bash
# Database settings
MYSQL_ROOT_PASSWORD=azerothcore123
DB_WAIT_RETRIES=60
DB_WAIT_SLEEP=10
# Performance settings
MYSQL_MAX_CONNECTIONS=200
MYSQL_INNODB_BUFFER_POOL_SIZE=512M
PLAYERBOT_MAX_BOTS=20
# Storage paths
STORAGE_PATH=./local-data # or /opt/azerothcore/data for system install
```
## 🗂️ Directory Structure
```
azerothcore-compose2/
├── azerothcore-deploy.sh # Main deployment script
├── azerothcore-monitor.sh # Monitoring script
├── install-system-service.sh # System service installer
├── test-deployment.sh # Test suite
├── docker-compose-*.yml # Service layer definitions
├── .env-* # Environment configurations
├── deployment-logs/ # Deployment logs
├── monitoring-logs/ # Monitoring logs
├── monitoring-web/ # Web dashboard files
├── local-data/ # Application data
├── backups/ # Database backups
└── backup-scripts/ # Backup scripts
```
## 🚀 Deployment Layers
### 1. Database Layer
- **Services**: MySQL, DB Init, DB Import, Backup, Persistence
- **Purpose**: Core database infrastructure
- **Startup Time**: 2-5 minutes
### 2. Services Layer
- **Services**: Auth Server, World Server, Client Data
- **Purpose**: Core game servers
- **Startup Time**: 5-15 minutes (includes 15GB client data download)
### 3. Optional Layer
- **Services**: Eluna, Modules, Playerbots
- **Purpose**: Enhanced features and scripting
- **Startup Time**: 1-2 minutes
### 4. Tools Layer
- **Services**: PHPMyAdmin, Keira3, Grafana, InfluxDB
- **Purpose**: Management and monitoring interfaces
- **Startup Time**: 2-3 minutes
## 🔍 Troubleshooting
### Common Issues
#### Services Not Starting
```bash
# Check Docker daemon
sudo systemctl status docker
# Check logs
./azerothcore-deploy.sh logs [service-name]
# Check resource usage
docker stats
# Restart specific layer
docker-compose -f docker-compose-azerothcore-database.yml restart
```
#### Database Connection Issues
```bash
# Test database connectivity
docker exec ac-mysql mysql -uroot -pazerothcore123 -e "SELECT 1;"
# Check database logs
docker logs ac-mysql
# Verify network
docker network ls | grep azerothcore
```
#### Web Dashboard Not Accessible
```bash
# Check web service
sudo systemctl status azerothcore-web
# Check port availability
sudo netstat -tlnp | grep 8080
# Restart web service
sudo systemctl restart azerothcore-web
```
#### High Resource Usage
```bash
# Check container stats
docker stats
# Reduce playerbot count
# Edit .env: PLAYERBOT_MAX_BOTS=5
# Reduce MySQL buffer size
# Edit .env: MYSQL_INNODB_BUFFER_POOL_SIZE=256M
```
### Log Locations
#### Manual Deployment
- **Deployment Logs**: `./deployment-logs/`
- **Monitoring Logs**: `./monitoring-logs/`
- **Container Logs**: `docker logs [container-name]`
#### System Service
- **System Logs**: `sudo journalctl -u azerothcore`
- **Application Logs**: `/opt/azerothcore/deployment-logs/`
- **Monitoring Logs**: `/opt/azerothcore/monitoring-logs/`
## 🔐 Security Considerations
### Default Security Features
- Dedicated service user (`azerothcore`)
- Firewall rules for game ports only
- Database access restricted to localhost
- Non-root container execution where possible
- Secure systemd service configuration
### Additional Security Recommendations
```bash
# Configure UFW firewall
sudo ufw enable
sudo ufw default deny incoming
sudo ufw allow ssh
# Update system regularly
sudo apt update && sudo apt upgrade
# Monitor logs for suspicious activity
sudo journalctl -u azerothcore | grep -i error
# Change default passwords
# Edit .env: MYSQL_ROOT_PASSWORD=your-secure-password
```
## 🔄 Backup & Recovery
### Automated Backups
- **Schedule**: Daily at 3:00 AM (configurable)
- **Location**: `./backups/` or `/opt/azerothcore/backups/`
- **Retention**: 7 days (configurable)
- **Format**: SQL dumps with timestamp
### Manual Backup
```bash
# Create immediate backup
docker exec ac-mysql mysqldump -uroot -pazerothcore123 --all-databases > backup-$(date +%Y%m%d).sql
# Backup with backup script
./backup-scripts/backup.sh
```
### Recovery
```bash
# Stop services
./azerothcore-deploy.sh stop
# Restore from backup
docker run --rm -v $(pwd)/backups:/backups -v azerothcore_mysql_data:/var/lib/mysql mysql:8.0 \
sh -c "mysql -uroot -pazerothcore123 < /backups/your-backup.sql"
# Restart services
./azerothcore-deploy.sh start
```
## 🗑️ Uninstallation
### Manual Deployment
```bash
# Stop and remove containers
./azerothcore-deploy.sh stop
docker system prune -a --volumes
# Remove data (optional)
rm -rf local-data backups deployment-logs monitoring-logs
```
### System Service
```bash
# Run uninstaller
sudo /opt/azerothcore/uninstall.sh
# Follow prompts to remove data directories
```
## 📞 Support
### Documentation
- [AzerothCore Wiki](https://www.azerothcore.org/wiki/)
- [Docker Documentation](https://docs.docker.com/)
- [Docker Compose Reference](https://docs.docker.com/compose/)
### Getting Help
1. Check logs for error messages
2. Run diagnostic tests: `./test-deployment.sh all`
3. Search [AzerothCore Discord](https://discord.gg/azerothcore)
4. Review [GitHub Issues](https://github.com/azerothcore/azerothcore-wotlk/issues)
### Performance Tuning
- Adjust `PLAYERBOT_MAX_BOTS` based on server capacity
- Tune MySQL settings for your hardware
- Monitor resource usage and scale accordingly
- Consider SSD storage for better I/O performance
---
## 🎉 Enjoy Your AzerothCore Server!
Your World of Warcraft server is now ready to accept connections:
- **Auth Server**: `localhost:3784`
- **World Server**: `localhost:8215`
- **Web Dashboard**: `http://localhost:8080`
- **Database**: `localhost:64306` (internal use)
Happy gaming! 🏰⚔️🛡️

View File

@@ -1,152 +0,0 @@
# AzerothCore Deployment Guide
## 🚀 Quick Deployment Options
### **Option 1: Fast Deployment (Use Cached Images)**
Set this in `.env-core` for fastest deployment:
```bash
IMAGE_PULL_POLICY=if_not_present
SKIP_CLIENT_DATA_IF_EXISTS=true
ENABLE_PARALLEL_STARTUP=true
```
### **Option 2: Always Fresh Images**
For production deployments with latest images:
```bash
IMAGE_PULL_POLICY=always
SKIP_CLIENT_DATA_IF_EXISTS=false
ENABLE_PARALLEL_STARTUP=true
```
### **Option 3: Offline Deployment**
If images are already present locally:
```bash
IMAGE_PULL_POLICY=never
SKIP_CLIENT_DATA_IF_EXISTS=true
ENABLE_PARALLEL_STARTUP=true
```
## 📊 Image Pull Policy Options
| Policy | Speed | Reliability | Use Case |
|--------|-------|-------------|----------|
| `if_not_present` | ⚡ Fast | ✅ Good | **Recommended** - Best balance |
| `always` | 🐌 Slow | ✅ Best | Production with latest images |
| `never` | ⚡ Fastest | ⚠️ Risk | Offline or cached deployments |
## 🛠️ Pre-deployment Steps (Optional)
To avoid Portainer timeouts, pre-pull images manually:
```bash
# Core AzerothCore images (large downloads)
docker pull acore/ac-wotlk-db-import:14.0.0-dev
docker pull acore/ac-wotlk-authserver:14.0.0-dev
docker pull acore/ac-wotlk-worldserver:14.0.0-dev
docker pull acore/eluna-ts:master
# Base images (usually cached)
docker pull mysql:8.0
docker pull alpine:latest
docker pull alpine/git:latest
```
## 🏗️ Staged Deployment Strategy
If experiencing timeouts, deploy in stages:
### **Stage 1: Database Layer**
Deploy only MySQL and database initialization:
```yaml
services:
ac-mysql-init: ...
ac-mysql: ...
ac-db-init: ...
ac-db-import: ...
```
### **Stage 2: Core Services**
Add authentication and world servers:
```yaml
services:
ac-authserver: ...
ac-client-data: ...
ac-worldserver: ...
```
### **Stage 3: Optional Services**
Add monitoring and modules:
```yaml
services:
ac-eluna: ...
ac-modules: ...
ac-backup: ...
```
## 🎯 Troubleshooting Deployment Issues
### **504 Gateway Timeout in Portainer**
- **Cause**: Large image downloads or client data download (15GB)
- **Solutions**:
1. Set `IMAGE_PULL_POLICY=if_not_present`
2. Pre-pull images manually
3. Use staged deployment
4. Increase Portainer timeout settings
### **Container "Already Exists" Errors**
- **Cause**: Previous deployment attempts left containers
- **Solution**: Remove old containers first:
```bash
docker container prune -f
docker volume prune -f
```
### **Client Data Download Timeout**
- **Cause**: 15GB download takes time
- **Solutions**:
1. Set `SKIP_CLIENT_DATA_IF_EXISTS=true`
2. Pre-download data manually
3. Use faster internet connection
## 📋 Environment Variables for Speed Optimization
```bash
# Image handling
IMAGE_PULL_POLICY=if_not_present
# Deployment optimization
SKIP_CLIENT_DATA_IF_EXISTS=true
ENABLE_PARALLEL_STARTUP=true
# Reduce health check intervals for faster startup
MYSQL_HEALTHCHECK_INTERVAL=5s
MYSQL_HEALTHCHECK_TIMEOUT=3s
AUTH_HEALTHCHECK_INTERVAL=10s
WORLD_HEALTHCHECK_INTERVAL=15s
```
## 🚨 Production vs Development Settings
### **Development (Fast Deployment)**
```bash
IMAGE_PULL_POLICY=if_not_present
SKIP_CLIENT_DATA_IF_EXISTS=true
MYSQL_HEALTHCHECK_INTERVAL=5s
```
### **Production (Reliable Deployment)**
```bash
IMAGE_PULL_POLICY=always
SKIP_CLIENT_DATA_IF_EXISTS=false
MYSQL_HEALTHCHECK_INTERVAL=15s
```
## 📊 Expected Deployment Times
| Configuration | First Deploy | Subsequent Deploys |
|---------------|--------------|-------------------|
| Fast (cached) | 5-10 minutes | 2-3 minutes |
| Standard | 15-20 minutes | 5-8 minutes |
| Always pull | 20-30 minutes | 15-20 minutes |
*Times vary based on internet speed and server performance*

203
readme.md
View File

@@ -96,17 +96,17 @@ This project provides a production-ready AzerothCore deployment using Docker/Pod
## Project Structure
```
acore-compose/
├── docker-compose.yml # Main orchestration file
├── .env # Environment configuration
├── data/ # Game data files (maps, vmaps, etc.)
├── dbc/ # Client database files
│ ├── maps/ # Map files
│ ├── vmaps/ # Visual map files
│ └── mmaps/ # Movement map files (optional)
├── backups/ # Automated backup storage
├── backup-scripts/ # Database backup automation
└── assets/ # Web interface assets
acore-compose2/
├── docker-compose-azerothcore-database.yml # Database layer
├── docker-compose-azerothcore-services.yml # Game services layer
├── docker-compose-azerothcore-tools.yml # Management tools layer
├── docker-compose-azerothcore-database.env # Database configuration
├── docker-compose-azerothcore-services.env # Services configuration
├── docker-compose-azerothcore-tools.env # Tools configuration
├── docker-compose-azerothcore-optional.env # Optional services config
├── backup-scripts/ # Database backup automation
├── local-data/ # Local storage (when not using NFS)
└── readme.md # This documentation
```
## Container Architecture
@@ -150,44 +150,43 @@ graph TD
```bash
# Clone the repository
git clone https://github.com/uprightbass360/acore-compose.git
cd acore-compose
git clone https://github.com/uprightbass360/acore-compose2.git
cd acore-compose2
# Environment file is already configured with defaults
# Modify .env file for your specific deployment:
# - EXTERNAL_IP: Your server's public IP
# - MYSQL_ROOT_PASSWORD: Strong password (default: azerothcore123)
# Environment files are pre-configured with defaults
# Modify the relevant .env files for your deployment:
# - docker-compose-azerothcore-database.env: Database settings
# - docker-compose-azerothcore-services.env: Game server settings
# - docker-compose-azerothcore-tools.env: Management tools settings
```
### Step 2: Prepare Game Data Files
The server requires extracted game data from the WoW 3.3.5a client:
The server automatically downloads and extracts game data on first run. The `ac-client-data` service will:
- Download the latest client data from wowgaming/client-data releases (~15GB)
- Extract maps, vmaps, mmaps, and DBC files
- Cache the download for future deployments
- Verify data integrity
```bash
# Create data directory structure
mkdir -p data/{dbc,maps,vmaps,mmaps}
# Option A: Copy from existing extraction
cp -r /path/to/extracted/dbc/* data/dbc/
cp -r /path/to/extracted/maps/* data/maps/
cp -r /path/to/extracted/vmaps/* data/vmaps/
cp -r /path/to/extracted/mmaps/* data/mmaps/ # Optional
# Option B: Extract from WoW client
# Use AzerothCore extraction tools on your WoW 3.3.5a client
```
No manual data extraction is required, but ensure you have sufficient disk space and bandwidth.
### Step 3: Deploy the Stack
Deploy services in the correct order:
```bash
# Deploy all services
docker-compose up -d
# Step 1: Deploy database layer
docker compose --env-file docker-compose-azerothcore-database.env -f docker-compose-azerothcore-database.yml up -d
# Monitor deployment
docker-compose logs -f
# Step 2: Wait for database initialization, then deploy services
docker compose --env-file docker-compose-azerothcore-services.env -f docker-compose-azerothcore-services.yml up -d
# Verify all containers are running
docker ps | grep ac-
# Step 3: Deploy management tools (optional)
docker compose --env-file docker-compose-azerothcore-tools.env -f docker-compose-azerothcore-tools.yml up -d
# Monitor deployment progress
docker logs ac-client-data -f # Watch data download/extraction
docker logs ac-db-init -f # Watch database initialization
```
### Step 4: Initial Database Import
@@ -229,38 +228,27 @@ set realmlist YOUR_SERVER_IP
### Environment Variables
All configuration is managed through the `.env` file. Key variables:
Configuration is managed through separate `.env` files for each layer:
#### Database Settings
- `MYSQL_ROOT_PASSWORD`: Database root password
- `MYSQL_HOST`: Database hostname (default: ac-mysql)
- `DB_AUTH_NAME`: Authentication database name
- `DB_WORLD_NAME`: World database name
- `DB_CHARACTERS_NAME`: Characters database name
#### Database Layer (`docker-compose-azerothcore-database.env`)
- `MYSQL_ROOT_PASSWORD`: Database root password (default: azerothcore123)
- `STORAGE_PATH`: Data storage path (default: /nfs/containers/azerothcore)
- `NETWORK_SUBNET`: Docker network subnet
- `BACKUP_RETENTION_DAYS`: Backup retention period
#### Network Settings
- `EXTERNAL_IP`: Public IP for realm list
- `EXTERNAL_BASE_URL`: Custom domain URL (e.g., https://acore.example.com)
#### Services Layer (`docker-compose-azerothcore-services.env`)
- `DOCKER_AUTH_EXTERNAL_PORT`: Auth server external port (3784)
- `DOCKER_WORLD_EXTERNAL_PORT`: World server external port (8215)
- `DOCKER_SOAP_EXTERNAL_PORT`: SOAP API port (7778)
- `PLAYERBOT_ENABLED`: Enable/disable playerbots (1/0)
- `PLAYERBOT_MAX_BOTS`: Maximum number of bots (default: 40)
#### Web Interface Settings (Collision-Free Ports)
#### Tools Layer (`docker-compose-azerothcore-tools.env`)
- `PMA_EXTERNAL_PORT`: PHPMyAdmin port (8081)
- `KEIRA3_EXTERNAL_PORT`: Database editor port (4201)
- `GF_EXTERNAL_PORT`: Grafana monitoring port (3001)
- `INFLUXDB_EXTERNAL_PORT`: InfluxDB metrics port (8087)
#### Performance Settings
- `MAX_PLAYERS`: Maximum concurrent players
- `PROCESS_PRIORITY`: Process priority level
- `MAX_CONNECTIONS`: MySQL max connections
#### Game Rates
- `RATE_XP_KILL`: Experience from kills multiplier
- `RATE_XP_QUEST`: Experience from quests multiplier
- `RATE_DROP_MONEY`: Money drop rate multiplier
- `RATE_DROP_ITEMS`: Item drop rate multiplier
- `STORAGE_PATH_TOOLS`: Tools storage path (default: ./volumes-tools)
### Realm Configuration
@@ -389,11 +377,19 @@ docker exec ac-mysql mysqlcheck \
#### Update Containers:
```bash
# Pull latest images
docker-compose pull
# Pull latest images for database layer
docker-compose -f docker-compose-azerothcore-database.yml pull
# Pull latest images for services layer
docker-compose -f docker-compose-azerothcore-services.yml pull
# Pull latest images for tools layer
docker-compose -f docker-compose-azerothcore-tools.yml pull
# Recreate containers with new images
docker-compose up -d --force-recreate
docker-compose -f docker-compose-azerothcore-database.yml up -d --force-recreate
docker-compose -f docker-compose-azerothcore-services.yml up -d --force-recreate
docker-compose -f docker-compose-azerothcore-tools.yml up -d --force-recreate
# Remove old unused images
docker image prune -a
@@ -401,14 +397,14 @@ docker image prune -a
#### Update AzerothCore:
```bash
# Stop services
docker-compose stop ac-worldserver ac-authserver
# Stop services layer
docker-compose -f docker-compose-azerothcore-services.yml stop
# Update database
docker-compose up ac-db-import
docker-compose -f docker-compose-azerothcore-database.yml up ac-db-import
# Restart services
docker-compose start ac-worldserver ac-authserver
# Restart services layer
docker-compose -f docker-compose-azerothcore-services.yml up -d
```
### Log Management
@@ -442,7 +438,7 @@ EOF
### Automated Backups
The `ac-backup` container provides automated backups. Configure via environment:
The database layer includes an automated backup service. Configure via environment variables in `docker-compose-azerothcore-database.env`:
- `BACKUP_CRON_SCHEDULE`: Cron expression (default: "0 3 * * *" - 3 AM daily)
- `BACKUP_RETENTION_DAYS`: Days to keep backups (default: 7)
@@ -496,10 +492,7 @@ docker logs ac-mysql --tail 50
#### 4. Permission Denied Errors
**Error**: Various permission denied messages
**Solution**: Run containers as root (configured in .env):
```bash
DOCKER_USER=root
```
**Solution**: Containers are configured to run as root to handle NFS permissions. Check volume mount permissions and ensure storage paths are accessible.
### Debug Commands
@@ -527,25 +520,29 @@ docker exec ac-worldserver ls -la /azerothcore/data/
#### Complete Reset:
```bash
# Stop all containers
docker-compose down
# Stop all layers
docker-compose -f docker-compose-azerothcore-tools.yml down
docker-compose -f docker-compose-azerothcore-services.yml down
docker-compose -f docker-compose-azerothcore-database.yml down
# Remove all volumes (WARNING: Deletes all data)
docker-compose down -v
docker volume prune -f
# Remove all containers and images
docker system prune -a
# Start fresh
docker-compose up -d
# Start fresh (in order)
docker-compose -f docker-compose-azerothcore-database.yml up -d
docker-compose -f docker-compose-azerothcore-services.yml up -d
docker-compose -f docker-compose-azerothcore-tools.yml up -d
```
#### Reset Specific Service:
```bash
# Reset worldserver only
docker-compose stop ac-worldserver
docker-compose rm -f ac-worldserver
docker-compose up -d ac-worldserver
docker-compose -f docker-compose-azerothcore-services.yml stop ac-worldserver
docker-compose -f docker-compose-azerothcore-services.yml rm -f ac-worldserver
docker-compose -f docker-compose-azerothcore-services.yml up -d ac-worldserver
```
## Security Considerations
@@ -563,9 +560,9 @@ docker-compose up -d ac-worldserver
- Disable SOAP if not needed
3. **File Permissions**
- Restrict access to .env file: `chmod 600 .env`
- Restrict access to .env files: `chmod 600 *.env`
- Secure backup directories
- Use non-root user when possible
- Containers run as root to handle NFS permissions
4. **Regular Updates**
- Keep containers updated
@@ -627,7 +624,7 @@ docker stats --no-stream
### Database Credentials
- **Host**: `localhost:64306`
- **User**: `root`
- **Password**: `azerothcore123` (configurable in .env)
- **Password**: `azerothcore123` (configurable in environment files)
- **Databases**: `acore_auth`, `acore_world`, `acore_characters`
### Related Projects
@@ -637,22 +634,40 @@ docker stats --no-stream
### Useful Commands Reference
```bash
# Quick status check
docker-compose ps
docker ps | grep ac-
# Restart all services
docker-compose restart
# Restart database layer
docker-compose -f docker-compose-azerothcore-database.yml restart
# View all logs
docker-compose logs
# Restart services layer
docker-compose -f docker-compose-azerothcore-services.yml restart
# Stop everything
docker-compose stop
# Restart tools layer
docker-compose -f docker-compose-azerothcore-tools.yml restart
# Start everything
docker-compose start
# View database logs
docker-compose -f docker-compose-azerothcore-database.yml logs
# Update and restart
docker-compose pull && docker-compose up -d
# View services logs
docker-compose -f docker-compose-azerothcore-services.yml logs
# View tools logs
docker-compose -f docker-compose-azerothcore-tools.yml logs
# Stop everything (in reverse order)
docker-compose -f docker-compose-azerothcore-tools.yml down
docker-compose -f docker-compose-azerothcore-services.yml down
docker-compose -f docker-compose-azerothcore-database.yml down
# Start everything (in order)
docker-compose -f docker-compose-azerothcore-database.yml up -d
docker-compose -f docker-compose-azerothcore-services.yml up -d
docker-compose -f docker-compose-azerothcore-tools.yml up -d
# Update and restart all layers
docker-compose -f docker-compose-azerothcore-database.yml pull && docker-compose -f docker-compose-azerothcore-database.yml up -d
docker-compose -f docker-compose-azerothcore-services.yml pull && docker-compose -f docker-compose-azerothcore-services.yml up -d
docker-compose -f docker-compose-azerothcore-tools.yml pull && docker-compose -f docker-compose-azerothcore-tools.yml up -d
# Backup database
docker exec ac-mysql mysqldump -uroot -p${MYSQL_ROOT_PASSWORD} --all-databases > backup.sql