Files
AzerothCore-RealmMaster/scripts/DEPLOYMENT.md
uprightbass360 11951fd515 add scripts
2025-09-30 14:05:20 -04:00

5.0 KiB

AzerothCore Deployment & Health Check

This document describes how to use the automated deployment and health check script for the AzerothCore Docker stack.

Quick Start

The script is located in the scripts/ directory and should be run from there:

Full Deployment and Health Check

cd scripts
./deploy-and-check.sh

Health Check Only (Skip Deployment)

cd scripts
./deploy-and-check.sh --skip-deploy

Quick Health Check (Basic Tests Only)

cd scripts
./deploy-and-check.sh --skip-deploy --quick-check

Script Features

Deployment

  • Layered Deployment: Deploys database → services → tools layers in correct order
  • Dependency Waiting: Waits for each layer to be ready before proceeding
  • Error Handling: Stops on errors with clear error messages
  • Progress Monitoring: Shows deployment progress and status

Health Checks

  • Container Health: Verifies all containers are running and healthy
  • Port Connectivity: Tests all external ports are accessible
  • Web Service Verification: Validates web interfaces are responding correctly
  • Database Validation: Confirms database schemas and realm configuration
  • Comprehensive Reporting: Color-coded status with detailed results

Command Line Options

Option Description
--skip-deploy Skip the deployment phase, only run health checks
--quick-check Run basic health checks only (faster, less comprehensive)
--help Show usage information

What Gets Checked

Container Health Status

  • ac-mysql: Database server
  • ac-backup: Automated backup service
  • ac-authserver: Authentication server
  • ac-worldserver: Game world server
  • ac-phpmyadmin: Database management interface
  • ac-keira3: Database editor
  • ac-grafana: Monitoring dashboard
  • ac-influxdb: Metrics database

Port Connectivity Tests

  • Database Layer: MySQL (64306)
  • Services Layer: Auth Server (3784), World Server (8215), SOAP API (7778)
  • Tools Layer: PHPMyAdmin (8081), Keira3 (4201), Grafana (3001), InfluxDB (8087)

Web Service Health Checks (Full Mode Only)

  • PHPMyAdmin: HTTP response and content verification
  • Keira3: Health endpoint and content verification
  • Grafana: API health check
  • InfluxDB: Health endpoint validation

Database Validation (Full Mode Only)

  • Schema Verification: Confirms all required databases exist
  • Realm Configuration: Validates realm setup

Service URLs and Credentials

Web Interfaces

Game Connections

  • 🎮 Game Server: localhost:8215
  • 🔐 Auth Server: localhost:3784
  • 🔧 SOAP API: localhost:7778
  • 🗄️ MySQL: localhost:64306

Default Credentials

  • Grafana: admin / acore123
  • InfluxDB: acore / acore123
  • MySQL: root / azerothcore123

Deployment Process

The script follows this deployment sequence:

1. Database Layer

  • Deploys MySQL database server
  • Waits for MySQL to be ready
  • Runs database initialization
  • Imports AzerothCore schemas
  • Starts backup service

2. Services Layer

  • Deploys authentication server
  • Starts client data download/extraction (10-20 minutes)
  • Deploys world server (waits for client data)
  • Starts module management service

3. Tools Layer

  • Deploys PHPMyAdmin database interface
  • Deploys Keira3 database editor
  • Deploys Grafana monitoring
  • Deploys InfluxDB metrics database

Troubleshooting

Common Issues

Port conflicts: If ports are already in use, modify the environment files to use different external ports.

Slow client data download: The initial download is ~15GB and may take 10-30 minutes depending on connection speed.

Container restart loops: Check container logs with docker logs <container-name> for specific error messages.

Manual Checks

# Check container status
docker ps | grep ac-

# Check specific container logs
docker logs ac-worldserver --tail 50

# Test port connectivity manually
nc -z localhost 8215

# Check container health
docker inspect ac-mysql --format='{{.State.Health.Status}}'

Recovery Commands

# Restart specific layer
docker compose -f docker-compose-azerothcore-services.yml restart

# Reset specific service
docker compose -f docker-compose-azerothcore-services.yml stop ac-worldserver
docker compose -f docker-compose-azerothcore-services.yml up -d ac-worldserver

# Full reset (WARNING: destroys all data)
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
docker volume prune -f

Script Exit Codes

  • 0: All health checks passed successfully
  • 1: Health check failures detected or deployment errors

Use the exit code in CI/CD pipelines or automated deployment scripts to determine deployment success.