MCBDS Manager - Professional Minecraft Bedrock Server Management

Volume Configuration Feature

Setup & Configuration VOLUME-CONFIGURATION-FEATURE.md

Custom Volume Configuration Feature - Implementation Summary

Date: January 7, 2025
Feature: Custom Drive Location Configuration for Docker Volumes
Project: MCBDS.Marketing


Overview

Added comprehensive support for configuring custom drive locations for MCBDS Manager Docker volumes on Windows, allowing users to store different components on different drives (e.g., game files on SSD, backups on HDD).


Files Created

1. Configure-MCBDSVolumes.ps1

Interactive PowerShell script for volume configuration.

Location: Root directory
Purpose: Guides users through configuring custom paths

Features:

  • Interactive prompts with defaults
  • Drive validation
  • Automatic directory creation
  • Automatic backup of original config
  • Updates docker-compose.windows.yml
  • Color-coded output
  • Configuration summary
  • Error handling

Usage:

cd C:\MCBDSManager
.\Configure-MCBDSVolumes.ps1

2. VOLUME-CONFIGURATION.md

Complete documentation for volume configuration.

Location: Root directory
Purpose: Comprehensive guide for custom volume setup

Sections:

  • Quick start guide
  • Interactive mode walkthrough
  • Manual configuration instructions
  • Common configuration examples
  • Best practices
  • Troubleshooting guide
  • Data migration instructions

3. Updated GetStarted.razor

Added custom volume configuration section to installation guide.

Location: MCBDS.Marketing\Components\Pages\GetStarted.razor
Changes: Added collapsible section in Windows Server deployment guide

Features:

  • Bootstrap collapse component for expandable instructions
  • Two configuration options (Interactive script vs Manual)
  • Example configurations
  • Important warnings and tips
  • Benefits explanation

Configuration Options

What Gets Configured

Component Default Path Purpose
Bedrock Server C:\MCBDSManager\bedrock-server Game files, worlds, configs
Backups C:\MCBDSManager\backups Automated world backups
Configuration C:\MCBDSManager\config MCBDS Manager settings

Example Custom Configurations

Fast SSD + Large HDD:

D:\ (SSD)   Bedrock Server
E:\ (HDD)   Backups
C:\ (SSD)   Configuration

All on One Drive:

D:\ (SSD 1TB)  Everything

Network Storage:

C:\          Bedrock Server
\\NAS\       Backups
C:\          Configuration

Script Workflow

  1. Validation - Check if docker-compose.windows.yml exists
  2. Introduction - Display welcome message and instructions
  3. Path Collection - Prompt for three paths with defaults
  4. Validation - Verify drives exist and are accessible
  5. Summary - Show configuration summary
  6. Confirmation - Ask user to confirm
  7. Directory Creation - Create directories if missing
  8. Backup - Backup original docker-compose.windows.yml
  9. Update - Replace paths in docker-compose.windows.yml
  10. Success - Display next steps

UI Implementation (GetStarted.razor)

Structure

Windows Server Deployment Guide
 Step 1: Clone Repository
     Default instructions
     Advanced: Configure Custom Drive Locations  NEW
         Collapsible section (Bootstrap)
         Option 1: Interactive Script
         Option 2: Manual Configuration
         Example Configuration
         Important Warnings

Bootstrap Components Used

  • collapse - Expandable/collapsible content
  • btn-outline-success - Show/hide button
  • alert-success - Configuration container
  • alert-warning - Important warnings
  • bg-dark code blocks - Command examples

Benefits for Users

Performance

  • Store game files on fast SSD
  • Store backups on large HDD
  • Optimize disk I/O

Organization

  • Separate data by type
  • Use multiple drives efficiently
  • Better disk space management

Flexibility

  • Choose any drive letter
  • Organize to match preferences
  • Easy to reconfigure later

Backup Strategy

  • Dedicated backup drive
  • Easier to backup specific drives
  • Network storage support

Technical Details

PowerShell Script Features

Input Validation:

function Test-ValidPath {
    # Checks if drive exists
    # Warns if inaccessible
}

Path Prompting:

function Get-PathWithDefault {
    # Shows description
    # Displays default
    # Validates input
}

File Updates:

# Regex-based path replacement
$content -replace 'C:\\MCBDSManager\\bedrock-server', $bedrockPath
$content -replace 'C:\\MCBDSManager\\backups', $backupPath
$content -replace 'C:\\MCBDSManager\\config', $configPath

docker-compose.yml Integration

Before Configuration:

volumes:
  - C:\MCBDSManager\bedrock-server:/bedrock
  - C:\MCBDSManager\backups:/app/backups
  - C:\MCBDSManager\config:/app/config

After Configuration:

volumes:
  - D:\Minecraft\bedrock-server:/bedrock
  - E:\Backups\minecraft:/app/backups
  - C:\MCBDSManager\config:/app/config

User Experience Flow

From Marketing Website

  1. User visits /get-started#windows
  2. Follows standard installation steps
  3. Sees "Advanced: Configure Custom Drive Locations"
  4. Clicks "Show Instructions" button
  5. Chooses interactive script or manual config
  6. Downloads and runs Configure-MCBDSVolumes.ps1
  7. Answers interactive prompts
  8. Script configures everything automatically
  9. Continues with installation

Interactive Prompts Example

========================================
  MCBDS Manager - Volume Configuration
========================================

Location for Minecraft Bedrock Dedicated Server files
Default: C:\MCBDSManager\bedrock-server
Bedrock Server Location (press Enter for default): D:\Minecraft\bedrock-server

Location for automated world backups
Default: C:\MCBDSManager\backups
Backup Storage Location (press Enter for default): E:\Backups\minecraft

Location for MCBDS Manager configuration files
Default: C:\MCBDSManager\config
Configuration Location (press Enter for default): [Enter]

========================================
  Configuration Summary
========================================

Bedrock Server: D:\Minecraft\bedrock-server
Backups:        E:\Backups\minecraft
Configuration:  C:\MCBDSManager\config

Apply these settings (Y/N): Y

Testing Checklist

Script Testing

  • Run script in clean environment
  • Test with default paths (press Enter)
  • Test with custom paths
  • Test with invalid drive letters
  • Test with existing directories
  • Test cancellation (N response)
  • Verify backup file creation
  • Verify docker-compose.yml updates

Website Testing

  • Collapse/expand works correctly
  • Code blocks display properly
  • Links work
  • Mobile responsive
  • All instructions clear

Docker Testing

  • Custom paths work with Docker
  • Containers start successfully
  • Volumes mount correctly
  • Data persists after restart
  • Backups save to correct location

  • User Guide: VOLUME-CONFIGURATION.md
  • Script: Configure-MCBDSVolumes.ps1
  • Web Guide: /get-started#windows
  • Technical Docs: MCBDS.Marketing\Components\Pages\GetStarted.razor

Future Enhancements

Possible Improvements

  1. GUI Application

    • Windows Forms interface
    • Visual drive selector
    • Space availability display
  2. Environment Variables

    • Support $env:MCBDS_* variables
    • Non-interactive mode for automation
  3. Linux Support

    • Bash script equivalent
    • Similar interactive experience
  4. Cloud Storage

    • OneDrive integration warning
    • Google Drive compatibility check
  5. Migration Tool

    • Automated data migration
    • Verify data integrity
    • Rollback capability

Support & Troubleshooting

Common Issues

Issue: Script not found

# Solution: Download from GitHub
Invoke-WebRequest -Uri "https://raw.githubusercontent.com/JoshuaBylotas/MCBDSHost/master/Configure-MCBDSVolumes.ps1" -OutFile "Configure-MCBDSVolumes.ps1"

Issue: Permission denied

# Solution: Run as Administrator
# Right-click PowerShell  Run as Administrator

Issue: Docker won't start

# Solution: Verify paths exist
Test-Path "D:\Minecraft\bedrock-server"
Test-Path "E:\Backups\minecraft"

Version History

Version Date Changes
1.0 2025-01-07 Initial implementation

Status: Complete and Ready for Production
Testing: Pending user acceptance testing
Documentation: Complete

Support MCBDS Manager Development

Help us continue developing and improving MCBDS Manager. Your support makes a difference!