mirror of
https://github.com/uprightbass360/AzerothCore-RealmMaster.git
synced 2026-01-13 09:07:20 +00:00
6.0 KiB
6.0 KiB
AzerothCore Cleanup Script
This script provides safe and comprehensive cleanup options for AzerothCore Docker resources with multiple levels of cleanup intensity.
Quick Reference
cd scripts
# Safe cleanup - stop containers only
./cleanup.sh --soft
# Moderate cleanup - remove containers and networks (preserves data)
./cleanup.sh --hard
# Complete cleanup - remove everything (DESTROYS ALL DATA)
./cleanup.sh --nuclear
# See what would happen without doing it
./cleanup.sh --hard --dry-run
Cleanup Levels
🟢 Soft Cleanup (--soft)
- What it does: Stops all AzerothCore containers
- What it preserves: Everything (data, networks, images)
- Use case: Temporary shutdown, reboot, or switching between deployments
- Recovery: Quick restart with deployment script
./cleanup.sh --soft
After soft cleanup:
- All your game data is safe
- Quick restart:
./deploy-and-check.sh --skip-deploy
🟡 Hard Cleanup (--hard)
- What it does: Removes containers and networks
- What it preserves: Data volumes and Docker images
- Use case: Clean slate deployment while keeping your data
- Recovery: Full deployment (but reuses existing data)
./cleanup.sh --hard
After hard cleanup:
- Your database and game data is preserved
- Fresh deployment:
./deploy-and-check.sh - No need to re-download client data
🔴 Nuclear Cleanup (--nuclear)
- What it does: Removes EVERYTHING
- What it preserves: Nothing
- Use case: Complete fresh start or when troubleshooting major issues
- Recovery: Full deployment with fresh downloads
./cleanup.sh --nuclear
⚠️ WARNING: This permanently deletes ALL AzerothCore data including:
- Database schemas and characters
- Client data (15GB+ will need re-download)
- Configuration files
- Logs and backups
- All containers and images
Command Options
| Option | Description |
|---|---|
--soft |
Stop containers only (safest) |
--hard |
Remove containers + networks (preserves data) |
--nuclear |
Complete removal (DESTROYS ALL DATA) |
--dry-run |
Show what would be done without actually doing it |
--force |
Skip confirmation prompts (useful for scripts) |
--help |
Show help message |
Examples
Safe Exploration
# See what would be removed with hard cleanup
./cleanup.sh --hard --dry-run
# See what would be removed with nuclear cleanup
./cleanup.sh --nuclear --dry-run
Automated Scripts
# Force cleanup without prompts (for CI/CD)
./cleanup.sh --hard --force
# Dry run for validation
./cleanup.sh --nuclear --dry-run --force
Interactive Cleanup
# Standard cleanup with confirmation
./cleanup.sh --hard
# Will prompt: "Are you sure? (yes/no):"
What Gets Cleaned
Resources Identified
The script automatically identifies and shows:
- Containers: All
ac-*containers (running and stopped) - Networks:
azerothcoreand related networks - Volumes: AzerothCore data volumes (if any named volumes exist)
- Images: AzerothCore server images and related tools
Cleanup Actions by Level
| Resource Type | Soft | Hard | Nuclear |
|---|---|---|---|
| Containers | Stop | Remove | Remove |
| Networks | Keep | Remove | Remove |
| Volumes | Keep | Keep | DELETE |
| Images | Keep | Keep | DELETE |
| Local Data | Keep | Keep | DELETE |
Recovery After Cleanup
After Soft Cleanup
# Quick restart (containers only)
./deploy-and-check.sh --skip-deploy
# Or restart specific layer
docker compose -f ../docker-compose-azerothcore-services.yml up -d
After Hard Cleanup
# Full deployment (reuses existing data)
./deploy-and-check.sh
After Nuclear Cleanup
# Complete fresh deployment
./deploy-and-check.sh
# This will:
# - Download ~15GB client data again
# - Import fresh database schemas
# - Create new containers and networks
Safety Features
Confirmation Prompts
- All destructive operations require confirmation
- Clear warnings about data loss
- Use
--forceto skip prompts for automation
Dry Run Mode
- See exactly what would be done
- No actual changes made
- Perfect for understanding impact
Resource Detection
- Shows current resources before cleanup
- Identifies exactly what will be affected
- Prevents unnecessary operations
Integration with Other Scripts
Combined Usage
# Complete refresh workflow
./cleanup.sh --hard --force
./deploy-and-check.sh
# Troubleshooting workflow
./cleanup.sh --nuclear --dry-run # See what would be removed
./cleanup.sh --nuclear --force # If needed
./deploy-and-check.sh # Fresh start
CI/CD Usage
# Automated cleanup in pipelines
./cleanup.sh --hard --force
./deploy-and-check.sh --skip-deploy || ./deploy-and-check.sh
Troubleshooting
Common Issues
Cleanup hangs or fails:
# Force remove stuck containers
docker kill $(docker ps -q --filter "name=ac-")
docker rm $(docker ps -aq --filter "name=ac-")
Permission errors:
# Some local directories might need sudo
sudo ./cleanup.sh --nuclear
Resources not found:
- This is normal if no AzerothCore deployment exists
- Script will show "No resources found" and exit safely
Manual Cleanup
If the script fails, you can manually clean up:
# Manual container removal
docker ps -a --format '{{.Names}}' | grep '^ac-' | xargs docker rm -f
# Manual network removal
docker network rm azerothcore
# Manual volume removal (DESTROYS DATA)
docker volume ls --format '{{.Name}}' | grep 'ac_' | xargs docker volume rm
# Manual image removal
docker images --format '{{.Repository}}:{{.Tag}}' | grep '^acore/' | xargs docker rmi
docker images --format '{{.Repository}}:{{.Tag}}' | grep '^uprightbass360/azerothcore-wotlk-playerbots' | xargs docker rmi
Exit Codes
- 0: Cleanup completed successfully
- 1: Error occurred or user cancelled operation
Use these exit codes in scripts to handle cleanup results appropriately.