mirror of
https://github.com/uprightbass360/AzerothCore-RealmMaster.git
synced 2026-01-21 20:46:23 +00:00
add scripts
This commit is contained in:
167
scripts/DEPLOYMENT.md
Normal file
167
scripts/DEPLOYMENT.md
Normal file
@@ -0,0 +1,167 @@
|
||||
# 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
|
||||
```bash
|
||||
cd scripts
|
||||
./deploy-and-check.sh
|
||||
```
|
||||
|
||||
### Health Check Only (Skip Deployment)
|
||||
```bash
|
||||
cd scripts
|
||||
./deploy-and-check.sh --skip-deploy
|
||||
```
|
||||
|
||||
### Quick Health Check (Basic Tests Only)
|
||||
```bash
|
||||
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
|
||||
- 🌐 **PHPMyAdmin**: http://localhost:8081
|
||||
- 🛠️ **Keira3**: http://localhost:4201
|
||||
- 📊 **Grafana**: http://localhost:3001
|
||||
- 📈 **InfluxDB**: http://localhost:8087
|
||||
|
||||
### 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
|
||||
|
||||
```bash
|
||||
# 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
|
||||
|
||||
```bash
|
||||
# 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.
|
||||
Reference in New Issue
Block a user