Volume Configuration Feature
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
- Validation - Check if docker-compose.windows.yml exists
- Introduction - Display welcome message and instructions
- Path Collection - Prompt for three paths with defaults
- Validation - Verify drives exist and are accessible
- Summary - Show configuration summary
- Confirmation - Ask user to confirm
- Directory Creation - Create directories if missing
- Backup - Backup original docker-compose.windows.yml
- Update - Replace paths in docker-compose.windows.yml
- 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 contentbtn-outline-success- Show/hide buttonalert-success- Configuration containeralert-warning- Important warningsbg-darkcode 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
- User visits
/get-started#windows - Follows standard installation steps
- Sees "Advanced: Configure Custom Drive Locations"
- Clicks "Show Instructions" button
- Chooses interactive script or manual config
- Downloads and runs
Configure-MCBDSVolumes.ps1 - Answers interactive prompts
- Script configures everything automatically
- 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
Documentation Links
- 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
GUI Application
- Windows Forms interface
- Visual drive selector
- Space availability display
Environment Variables
- Support
$env:MCBDS_*variables - Non-interactive mode for automation
- Support
Linux Support
- Bash script equivalent
- Similar interactive experience
Cloud Storage
- OneDrive integration warning
- Google Drive compatibility check
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