Add comprehensive README for enhanced setup system
- Complete documentation for the bash-based setup system - Quick start guide with menu and manual usage options - Architecture overview of all 4 phases - Feature highlights and environment configuration - Development guidelines and troubleshooting section - Clear instructions for fresh installs and existing setups
This commit is contained in:
154
scripts/enhanced-setup/README.md
Normal file
154
scripts/enhanced-setup/README.md
Normal file
@@ -0,0 +1,154 @@
|
||||
# EZ-Homelab Enhanced Setup System
|
||||
|
||||
A comprehensive, modular bash-based setup and management system for EZ-Homelab, replacing the complex Python TUI with robust, cross-platform scripts.
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
### For Fresh Installs (Recommended)
|
||||
```bash
|
||||
# Clone the repository
|
||||
git clone https://github.com/kelinfoxy/EZ-Homelab.git
|
||||
cd EZ-Homelab
|
||||
|
||||
# Start the interactive menu system
|
||||
cd scripts/enhanced-setup
|
||||
./menu.sh
|
||||
```
|
||||
|
||||
The menu provides guided access to all functionality with real-time system status.
|
||||
|
||||
### Manual Usage
|
||||
```bash
|
||||
cd scripts/enhanced-setup
|
||||
|
||||
# Phase 1: System Setup
|
||||
./preflight.sh # Validate system requirements
|
||||
./setup.sh # Install Docker and dependencies
|
||||
|
||||
# Phase 2: Configuration
|
||||
./pre-deployment-wizard.sh # Interactive service selection
|
||||
./localize.sh # Apply environment variables
|
||||
./validate.sh # Validate configurations
|
||||
|
||||
# Phase 3: Deployment
|
||||
./deploy.sh core # Deploy core services
|
||||
./deploy.sh infrastructure # Deploy infrastructure
|
||||
./deploy.sh monitoring # Deploy monitoring stack
|
||||
|
||||
# Phase 4: Management
|
||||
./service.sh list # List all services
|
||||
./monitor.sh dashboard # System monitoring
|
||||
./backup.sh config # Backup configurations
|
||||
./update.sh check # Check for updates
|
||||
```
|
||||
|
||||
## 📋 System Architecture
|
||||
|
||||
### Phase 1: Core Infrastructure
|
||||
- **preflight.sh**: System requirement validation
|
||||
- **setup.sh**: Docker installation and configuration
|
||||
|
||||
### Phase 2: Configuration Management
|
||||
- **pre-deployment-wizard.sh**: Interactive service selection and configuration
|
||||
- **localize.sh**: Template variable substitution
|
||||
- **generalize.sh**: Reverse template processing
|
||||
- **validate.sh**: Multi-purpose validation (environment, compose, network, SSL)
|
||||
|
||||
### Phase 3: Deployment Engine
|
||||
- **deploy.sh**: Orchestrated service deployment with health checks and rollback
|
||||
|
||||
### Phase 4: Service Orchestration & Management
|
||||
- **service.sh**: Individual service management (start/stop/restart/logs/exec)
|
||||
- **monitor.sh**: Real-time monitoring and alerting
|
||||
- **backup.sh**: Automated backup orchestration
|
||||
- **update.sh**: Service update management with zero-downtime
|
||||
|
||||
### Shared Libraries
|
||||
- **lib/common.sh**: Shared utilities, logging, validation functions
|
||||
- **lib/ui.sh**: Text-based UI components and progress indicators
|
||||
|
||||
## 🎯 Key Features
|
||||
|
||||
- **🔧 Template-Based Configuration**: Environment variable substitution system
|
||||
- **🚀 Smart Deployment**: Dependency-ordered deployment with health verification
|
||||
- **📊 Real-Time Monitoring**: System resources, service health, and alerting
|
||||
- **💾 Automated Backups**: Configuration, volumes, logs with retention policies
|
||||
- **⬆️ Safe Updates**: Rolling updates with rollback capabilities
|
||||
- **🔍 Comprehensive Validation**: Multi-layer checks for reliability
|
||||
- **📝 Detailed Logging**: Structured logging to `~/.ez-homelab/logs/`
|
||||
- **🔄 Cross-Platform**: Works on Linux, macOS, and other Unix-like systems
|
||||
|
||||
## 📖 Documentation
|
||||
|
||||
- **[PRD](prd.md)**: Product Requirements Document
|
||||
- **[Standards](standards.md)**: Development standards and guidelines
|
||||
- **[Traefik Guide](../docs/Traefik%20Routing%20Quick%20Reference.md)**: Traefik configuration reference
|
||||
|
||||
## 🛠️ Environment Variables
|
||||
|
||||
Create a `.env` file in the EZ-Homelab root directory:
|
||||
|
||||
```bash
|
||||
# Domain and SSL
|
||||
DOMAIN=yourdomain.com
|
||||
EMAIL=your@email.com
|
||||
|
||||
# Timezone
|
||||
TZ=America/New_York
|
||||
|
||||
# User IDs (auto-detected if not set)
|
||||
EZ_USER=yourusername
|
||||
EZ_UID=1000
|
||||
EZ_GID=1000
|
||||
|
||||
# Service-specific variables
|
||||
# Add as needed for your services
|
||||
```
|
||||
|
||||
## 🏗️ Development
|
||||
|
||||
### Prerequisites
|
||||
- Bash 4.0+
|
||||
- Docker and Docker Compose
|
||||
- Standard Unix tools (curl, wget, jq, git)
|
||||
|
||||
### Adding New Services
|
||||
1. Create docker-compose.yml in appropriate category directory
|
||||
2. Add template variables with `${VAR_NAME}` syntax
|
||||
3. Update service discovery in common.sh if needed
|
||||
4. Test with validation scripts
|
||||
|
||||
### Script Standards
|
||||
- Follow the established patterns in existing scripts
|
||||
- Use shared libraries for common functionality
|
||||
- Include comprehensive error handling and logging
|
||||
- Add help text with `--help` flag
|
||||
|
||||
## 🤝 Contributing
|
||||
|
||||
1. Follow the development standards in `standards.md`
|
||||
2. Test thoroughly on multiple platforms
|
||||
3. Update documentation as needed
|
||||
4. Submit pull requests with clear descriptions
|
||||
|
||||
## 📄 License
|
||||
|
||||
This project is part of EZ-Homelab. See the main repository for licensing information.
|
||||
|
||||
## 🆘 Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
- **Permission denied**: Run `chmod +x *.sh lib/*.sh`
|
||||
- **Docker not found**: Run `./setup.sh` first
|
||||
- **Template errors**: Check `.env` file and run `./validate.sh`
|
||||
- **Service failures**: Check logs with `./service.sh logs <service>`
|
||||
|
||||
### Getting Help
|
||||
- Check the logs in `~/.ez-homelab/logs/`
|
||||
- Run individual scripts with `--help` for usage
|
||||
- Use the troubleshooting tools in the Advanced menu
|
||||
- Check the documentation files for detailed guides
|
||||
|
||||
---
|
||||
|
||||
**Happy Homelabbing!** 🏠💻
|
||||
Reference in New Issue
Block a user