docs: reflect new script directory layout

This commit is contained in:
uprightbass360
2025-11-09 02:49:48 -05:00
parent a18e315f1f
commit acf2364294
6 changed files with 90 additions and 80 deletions

View File

@@ -2,6 +2,9 @@
This guide provides a complete walkthrough for deploying AzerothCore RealmMaster on your local machine or remote server.
***Note: All :port and credential information is based on default configuration and should be updated based on your settings.***
***If you have any suggestions about how to make this documentation better, please file an issue and I will look into it.***
## Prerequisites
Before you begin, ensure you have:
@@ -193,6 +196,9 @@ The remote deployment process transfers:
- ❌ Build artifacts (source code, compilation files stay local)
### Module Presets
> **⚠️ Warning:** Module preset support is still in progress. The bundled presets have not been fully tested yet—please share issues or suggestions via Discord (`uprightbass360`).
- Define JSON presets in `config/module-profiles/*.json`. Each file contains:
- `modules` (array, required) list of `MODULE_*` identifiers to enable.
- `label` (string, optional) text shown in the setup menu (emoji welcome).
@@ -302,10 +308,10 @@ docker logs ac-mysql -f
docker compose restart ac-worldserver
# Stop all services
./scripts/stop-containers.sh
./scripts/bash/stop-containers.sh
# Start services
./scripts/start-containers.sh
./scripts/bash/start-containers.sh
```
### Management Commands
@@ -361,22 +367,22 @@ http://YOUR_SERVER_IP:4201
./deploy.sh --profile modules # Force custom modules build
# Lower-level module operations
./scripts/stage-modules.sh # Download enabled modules
./scripts/setup-source.sh # Initialize AzerothCore source
./scripts/copy-module-configs.sh # Create module .conf files
./scripts/manage-modules-sql.sh # Execute module SQL scripts
./scripts/bash/stage-modules.sh # Download enabled modules
./scripts/bash/setup-source.sh # Initialize AzerothCore source
./scripts/bash/copy-module-configs.sh # Create module .conf files
./scripts/bash/manage-modules-sql.sh # Execute module SQL scripts
# Management tools
./scripts/deploy-tools.sh # Launch phpMyAdmin + Keira3
./scripts/bash/deploy-tools.sh # Launch phpMyAdmin + Keira3
```
#### Container Management
```bash
# Start specific services
./scripts/start-containers.sh # Start all configured containers
./scripts/bash/start-containers.sh # Start all configured containers
# Stop services gracefully
./scripts/stop-containers.sh # Stop all containers
./scripts/bash/stop-containers.sh # Stop all containers
# Monitor service health
./status.sh # Check realm status
@@ -387,10 +393,10 @@ http://YOUR_SERVER_IP:4201
#### Deployment Verification
```bash
# Quick health check
./scripts/verify-deployment.sh --skip-deploy --quick
./scripts/bash/verify-deployment.sh --skip-deploy --quick
# Full deployment verification
./scripts/verify-deployment.sh
./scripts/bash/verify-deployment.sh
```
#### Cleaning Up
@@ -416,12 +422,8 @@ open http://localhost:8081
docker exec -it ac-mysql mysql -u root -p
# Manual backup operations
./scripts/backup.sh # Create immediate backup
./scripts/restore.sh YYYYMMDD_HHMMSS # Restore from specific backup
# User data backup/import utilities
./scripts/backup-export.sh [output_dir] # Export user accounts & characters
./scripts/backup-import.sh [backup_dir] # Import user data from backup
./scripts/bash/backup-export.sh [output_dir] # Export user accounts & characters
./scripts/bash/backup-import.sh [backup_dir] # Import user data from backup
# View available backups
ls -la storage/backups/
@@ -464,4 +466,4 @@ For detailed information about troubleshooting, architecture, and advanced confi
- **Module presets** help quickly configure common setups
- **Remote deployment** keeps builds local while deploying remotely
For troubleshooting and advanced configuration options, refer to the main project documentation.
For troubleshooting and advanced configuration options, refer to the main project documentation.

View File

@@ -92,10 +92,10 @@ Comprehensive cleanup with multiple destruction levels and safety checks.
### Container Lifecycle Management
#### `scripts/start-containers.sh` - Service Startup
#### `scripts/bash/start-containers.sh` - Service Startup
Starts all configured containers using appropriate profiles.
#### `scripts/stop-containers.sh` - Graceful Shutdown
#### `scripts/bash/stop-containers.sh` - Graceful Shutdown
Stops all containers with proper cleanup and data protection.
#### `status.sh` - Service Health Monitoring
@@ -107,12 +107,12 @@ Stops all containers with proper cleanup and data protection.
### Database & Backup Management
#### `scripts/backup-export.sh` - User Data Export
#### `scripts/bash/backup-export.sh` - User Data Export
Exports user accounts and character data for migration or backup purposes.
```bash
./scripts/backup-export.sh # Export to ExportBackup_<timestamp>/
./scripts/backup-export.sh /path/to/backup/dir # Export to specific directory
./scripts/bash/backup-export.sh # Export to ExportBackup_<timestamp>/
./scripts/bash/backup-export.sh /path/to/backup/dir # Export to specific directory
```
**Output Structure:**
@@ -123,12 +123,12 @@ ExportBackup_YYYYMMDD_HHMMSS/
└── manifest.json # Backup metadata
```
#### `scripts/backup-import.sh` - User Data Import
#### `scripts/bash/backup-import.sh` - User Data Import
Restores user accounts and characters from backup while preserving world data.
```bash
./scripts/backup-import.sh # Import from ImportBackup/
./scripts/backup-import.sh /path/to/backup # Import from specific directory
./scripts/bash/backup-import.sh # Import from ImportBackup/
./scripts/bash/backup-import.sh /path/to/backup # Import from specific directory
```
**Required Files:**
@@ -138,32 +138,32 @@ Restores user accounts and characters from backup while preserving world data.
### Module Management Scripts
#### `scripts/stage-modules.sh` - Module Staging
#### `scripts/bash/stage-modules.sh` - Module Staging
Downloads and stages enabled modules for source integration.
```bash
./scripts/stage-modules.sh # Stage all enabled modules
./scripts/bash/stage-modules.sh # Stage all enabled modules
```
Called automatically by `build.sh`. Downloads enabled modules from GitHub and prepares them for compilation.
#### `scripts/setup-source.sh` - Source Repository Setup
#### `scripts/bash/setup-source.sh` - Source Repository Setup
Initializes or updates AzerothCore source repositories for compilation.
```bash
./scripts/setup-source.sh # Setup source for current configuration
./scripts/bash/setup-source.sh # Setup source for current configuration
```
Automatically clones the appropriate AzerothCore fork (main or playerbot) based on configuration.
#### `scripts/manage-modules.sh` - Module Management Container
#### `scripts/bash/manage-modules.sh` - Module Management Container
Internal script that runs inside the `ac-modules` container to handle module lifecycle:
- Downloads module source code
- Executes module SQL scripts
- Manages module configuration files
- Tracks installation state
#### `config/module-manifest.json` & `scripts/modules.py`
#### `config/module-manifest.json` & `scripts/python/modules.py`
Central module registry and management system:
- **`config/module-manifest.json`** - Declarative manifest defining all 30+ supported modules with metadata:
- Repository URLs
@@ -171,30 +171,30 @@ Central module registry and management system:
- Build requirements
- SQL scripts and config files
- Dependencies
- **`scripts/modules.py`** - Python helper that reads the manifest and `.env` to:
- **`scripts/python/modules.py`** - Python helper that reads the manifest and `.env` to:
- Generate `modules.env` with enabled module lists
- Determine if rebuild is required
- Provide module metadata to shell scripts
This centralized approach eliminates duplicate module definitions across scripts.
#### `scripts/manage-modules-sql.sh` - Module Database Integration
#### `scripts/bash/manage-modules-sql.sh` - Module Database Integration
Executes module-specific SQL scripts for database schema updates.
#### `scripts/copy-module-configs.sh` - Configuration File Management
#### `scripts/bash/copy-module-configs.sh` - Configuration File Management
Creates module `.conf` files from `.dist.conf` templates for active modules.
```bash
./scripts/copy-module-configs.sh # Create missing module configs
./scripts/bash/copy-module-configs.sh # Create missing module configs
```
### Post-Deployment Automation
#### `scripts/auto-post-install.sh` - Post-Installation Configuration
#### `scripts/bash/auto-post-install.sh` - Post-Installation Configuration
Automated post-deployment tasks including module configuration, service verification, and initial setup.
```bash
./scripts/auto-post-install.sh # Run post-install tasks
./scripts/bash/auto-post-install.sh # Run post-install tasks
```
**Automated Tasks:**
@@ -205,16 +205,16 @@ Automated post-deployment tasks including module configuration, service verifica
### Advanced Deployment Tools
#### `scripts/migrate-stack.sh` - Remote Deployment Migration
#### `scripts/bash/migrate-stack.sh` - Remote Deployment Migration
Exports and transfers locally built images to remote hosts via SSH.
```bash
./scripts/migrate-stack.sh \
./scripts/bash/migrate-stack.sh \
--host docker-server \
--user sam \
--project-dir /home/sam/AzerothCore-RealmMaster
./scripts/migrate-stack.sh \
./scripts/bash/migrate-stack.sh \
--host remote.example.com \
--user deploy \
--port 2222 \
@@ -230,25 +230,25 @@ Exports and transfers locally built images to remote hosts via SSH.
**Note:** Typically called via `./deploy.sh --remote-host` rather than directly.
#### `scripts/deploy-tools.sh` - Management Tools Deployment
#### `scripts/bash/deploy-tools.sh` - Management Tools Deployment
Deploys web-based management tools (phpMyAdmin, Keira3) independently.
```bash
./scripts/deploy-tools.sh # Deploy management tools only
./scripts/bash/deploy-tools.sh # Deploy management tools only
```
#### `scripts/verify-deployment.sh` - Deployment Validation
#### `scripts/bash/verify-deployment.sh` - Deployment Validation
Comprehensive deployment verification with health checks and service validation.
```bash
./scripts/verify-deployment.sh # Full deployment verification
./scripts/verify-deployment.sh --skip-deploy # Verify existing deployment
./scripts/verify-deployment.sh --quick # Quick health check only
./scripts/bash/verify-deployment.sh # Full deployment verification
./scripts/bash/verify-deployment.sh --skip-deploy # Verify existing deployment
./scripts/bash/verify-deployment.sh --quick # Quick health check only
```
### Backup System Scripts
#### `scripts/backup-scheduler.sh` - Automated Backup Service
#### `scripts/bash/backup-scheduler.sh` - Automated Backup Service
Runs inside the backup container to provide scheduled database backups.
**Features:**
@@ -304,22 +304,22 @@ Runs inside the backup container to provide scheduled database backups.
./status.sh --watch
# Stop all services
./scripts/stop-containers.sh
./scripts/bash/stop-containers.sh
# Start services
./scripts/start-containers.sh
./scripts/bash/start-containers.sh
```
#### Backup and Restore Operations
```bash
# Export user data for migration
./scripts/backup-export.sh
./scripts/bash/backup-export.sh
# Import user data from backup
./scripts/backup-import.sh /path/to/backup
./scripts/bash/backup-import.sh /path/to/backup
# Verify deployment health
./scripts/verify-deployment.sh --quick
./scripts/bash/verify-deployment.sh --quick
```
#### Project Cleanup
@@ -387,7 +387,7 @@ docker logs <container-name>
cat .env | grep -v '^#'
# Check module configuration
./scripts/modules.py --list-enabled
./scripts/python/modules.py --list-enabled
```
### Permission Issues

View File

@@ -55,7 +55,7 @@ docker logs ac-modules | grep -A20 -B5 "rebuild"
ls -la "${STORAGE_PATH_LOCAL:-./local-storage}/source/azerothcore/"
# Force source setup
./scripts/setup-source.sh
./scripts/bash/setup-source.sh
```
## Getting Help
@@ -100,12 +100,12 @@ storage/backups/
└── acore_world.sql.gz
# User data import/export
ExportBackup_YYYYMMDD_HHMMSS/ # Created by scripts/backup-export.sh
ExportBackup_YYYYMMDD_HHMMSS/ # Created by scripts/bash/backup-export.sh
├── acore_auth.sql.gz # User accounts
├── acore_characters.sql.gz # Character data
└── manifest.json
ImportBackup/ # Used by scripts/backup-import.sh
ImportBackup/ # Used by scripts/bash/backup-import.sh
├── acore_auth.sql[.gz] # Required: accounts
├── acore_characters.sql[.gz] # Required: characters
└── acore_world.sql[.gz] # Optional: world data

View File

@@ -31,7 +31,7 @@ Add your own overrides by dropping a `.yml` file into `compose-overrides/` with
### Module Layout
- **Manifest**: `config/module-manifest.json` tracks every supported module (type, repo, dependencies). Edit this if you need to add or update modules—`scripts/modules.py` and all container helpers consume it automatically.
- **Manifest**: `config/module-manifest.json` tracks every supported module (type, repo, dependencies). Edit this if you need to add or update modules—`scripts/python/modules.py` and all container helpers consume it automatically.
- **Presets**: `config/module-profiles/*.json` replaces the old `profiles/*.json`. Each preset defines a `modules` list plus optional `label/description/order`, and `setup.sh` surfaces them in the module-selection menu or via `--module-config <name>`.
Because the manifest/preset locations mirror the upstream structure conceptually, experienced users can jump straight into editing those files without re-learning the workflow.
@@ -77,8 +77,8 @@ services:
| MySQL container with bind-mounted storage | `ac-mysql` + `ac-storage-init` | Bind mounts live under `storage/` and `local-storage/`; tmpfs keeps runtime data fast and is checkpointed to disk automatically. |
| Manual DB import container | `ac-db-import` & `ac-db-init` | Automatically imports schemas or restores from backups; disable by skipping the `db` profile if you truly want manual control. |
| World/Auth servers with optional DBC overrides | `ac-authserver-*` / `ac-worldserver-*` | Profile-based builds cover vanilla, playerbots, and custom module binaries. DBC overrides go into the shared client data mount just like upstream. |
| Client data bind mounts | `ac-client-data-standard` (or `-playerbots`) | Runs `scripts/download-client-data.sh`, caches releases, and mounts them read-only into the worldserver. |
| Optional helpers (phpMyAdmin, scripts) | `ac-phpmyadmin`, `ac-keira3`, `scripts/*.sh` | Enable via `--profile tools`. Credentials still come from `MYSQL_ROOT_PASSWORD`, identical to upstream instructions. |
| Client data bind mounts | `ac-client-data-standard` (or `-playerbots`) | Runs `scripts/bash/download-client-data.sh`, caches releases, and mounts them read-only into the worldserver. |
| Optional helpers (phpMyAdmin, scripts) | `ac-phpmyadmin`, `ac-keira3`, `scripts/bash/*.sh` | Enable via `--profile tools`. Credentials still come from `MYSQL_ROOT_PASSWORD`, identical to upstream instructions. |
For a full architecture diagram, cross-reference [README → Architecture Overview](../README.md#architecture-overview).
@@ -90,8 +90,8 @@ The upstream document introduced `up.sh`, `down.sh`, and `boot.sh`. RealmMaster
1. **Configure** `./setup.sh` (interactive `.env` generator). Mirrors creating `docker-compose.override.yml` without editing YAML.
2. **Build (optional)** `./build.sh` compiles images when playerbots or C++ modules are enabled, as described in [README → Getting Started → Step 2](../README.md#getting-started). Skip if you only need vanilla binaries.
3. **Deploy** `./deploy.sh` chooses the right profile and runs `docker compose up -d --build`, equivalent to the upstream `up.sh`.
4. **Stop** `./scripts/stop-containers.sh` or `docker compose down` (from the README [Management Commands](../README.md#management-commands)), matching the upstream `down.sh`.
5. **Reboot** run `./scripts/stop-containers.sh && ./scripts/start-containers.sh`, similar to their `boot.sh`.
4. **Stop** `./scripts/bash/stop-containers.sh` or `docker compose down` (from the README [Management Commands](../README.md#management-commands)), matching the upstream `down.sh`.
5. **Reboot** run `./scripts/bash/stop-containers.sh && ./scripts/bash/start-containers.sh`, similar to their `boot.sh`.
6. **Status & Logs** `./status.sh` summarizes container health and exposed ports (see [README → Management & Operations → Common Workflows](../README.md#management--operations)).
If you still prefer tiny wrappers, feel free to recreate the original scripts pointing at our compose file:
@@ -100,9 +100,17 @@ If you still prefer tiny wrappers, feel free to recreate the original scripts po
#!/usr/bin/env bash
set -euo pipefail
PROJECT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")"/.. && pwd)"
if [ -f "${PROJECT_DIR}/.env" ]; then
set -a
source "${PROJECT_DIR}/.env"
set +a
else
echo "Missing ${PROJECT_DIR}/.env" >&2
exit 1
fi
docker compose -f "${PROJECT_DIR}/docker-compose.yml" \
--profile services-standard \
-p "${COMPOSE_PROJECT_NAME:-azerothcore-realmmaster}" up -d --build
-p "${COMPOSE_PROJECT_NAME}" up -d --build
```
@@ -115,10 +123,10 @@ start:
@./deploy.sh
stop:
@./scripts/stop-containers.sh
@./scripts/bash/stop-containers.sh
boot:
@./scripts/stop-containers.sh && ./deploy.sh
@./scripts/bash/stop-containers.sh && ./deploy.sh
boot.log:
@./deploy.sh && docker logs -f ac-worldserver ||: