diff --git a/config/CONFIG_MANAGEMENT.md b/config/CONFIG_MANAGEMENT.md index a45d9f8..15e151a 100644 --- a/config/CONFIG_MANAGEMENT.md +++ b/config/CONFIG_MANAGEMENT.md @@ -35,13 +35,13 @@ AiPlayerbot.MaxRandomBots = 300 ```bash # Apply your custom overrides -./scripts/apply-config.py +./scripts/python/apply-config.py # Or apply a preset -./scripts/apply-config.py --preset fast-leveling +./scripts/python/apply-config.py --preset fast-leveling # Preview changes without applying -./scripts/apply-config.py --dry-run +./scripts/python/apply-config.py --dry-run ``` ### 3. Restart Server @@ -114,34 +114,34 @@ Step 5/6: Applying server configuration ### Apply Custom Overrides ```bash -./scripts/apply-config.py +./scripts/python/apply-config.py ``` ### Apply a Preset ```bash # List available presets -./scripts/apply-config.py --list-presets +./scripts/python/apply-config.py --list-presets # Apply specific preset -./scripts/apply-config.py --preset blizzlike -./scripts/apply-config.py --preset fast-leveling -./scripts/apply-config.py --preset hardcore-pvp -./scripts/apply-config.py --preset casual-pve +./scripts/python/apply-config.py --preset blizzlike +./scripts/python/apply-config.py --preset fast-leveling +./scripts/python/apply-config.py --preset hardcore-pvp +./scripts/python/apply-config.py --preset casual-pve ``` ### Advanced Usage ```bash # Apply only specific conf files -./scripts/apply-config.py --files "worldserver.conf,playerbots.conf" +./scripts/python/apply-config.py --files "worldserver.conf,playerbots.conf" # Preview changes without applying -./scripts/apply-config.py --dry-run +./scripts/python/apply-config.py --dry-run # Use different storage path -./scripts/apply-config.py --storage-path /custom/storage +./scripts/python/apply-config.py --storage-path /custom/storage # Use different overrides file -./scripts/apply-config.py --overrides-file /path/to/custom.conf +./scripts/python/apply-config.py --overrides-file /path/to/custom.conf ``` ## ⚙️ Configuration Format @@ -267,7 +267,7 @@ AutoBalance.MinPlayerReward = 1 # Scale rewards for solo play ### Permission Errors ```bash # Make sure the script is executable -chmod +x scripts/apply-config.py +chmod +x scripts/python/apply-config.py # Check file permissions in storage/config/ ls -la storage/config/ diff --git a/config/server-overrides.conf b/config/server-overrides.conf index a01a794..f63c6fc 100644 --- a/config/server-overrides.conf +++ b/config/server-overrides.conf @@ -8,7 +8,7 @@ # Strings: Can be quoted or unquoted # Numbers: Integer or decimal values # -# After editing this file, run: ./scripts/apply-config.py +# After editing this file, run: ./scripts/python/apply-config.py # ===================== # Core Server Settings diff --git a/docs/GETTING_STARTED.md b/docs/GETTING_STARTED.md index 60e32a0..b24dfab 100644 --- a/docs/GETTING_STARTED.md +++ b/docs/GETTING_STARTED.md @@ -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. \ No newline at end of file +For troubleshooting and advanced configuration options, refer to the main project documentation. diff --git a/docs/SCRIPTS.md b/docs/SCRIPTS.md index 6db4145..d319cdb 100644 --- a/docs/SCRIPTS.md +++ b/docs/SCRIPTS.md @@ -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_/ -./scripts/backup-export.sh /path/to/backup/dir # Export to specific directory +./scripts/bash/backup-export.sh # Export to ExportBackup_/ +./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 cat .env | grep -v '^#' # Check module configuration -./scripts/modules.py --list-enabled +./scripts/python/modules.py --list-enabled ``` ### Permission Issues diff --git a/docs/TROUBLESHOOTING.md b/docs/TROUBLESHOOTING.md index e76fd1e..c84f130 100644 --- a/docs/TROUBLESHOOTING.md +++ b/docs/TROUBLESHOOTING.md @@ -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 diff --git a/docs/installing-azerothcore-with-docker.md b/docs/installing-azerothcore-with-docker.md index ec2a66a..6f85ccb 100644 --- a/docs/installing-azerothcore-with-docker.md +++ b/docs/installing-azerothcore-with-docker.md @@ -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 `. 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 ||: