Commit Graph

70 Commits

Author SHA1 Message Date
Kelin
9d320bf9f9 Fix menu.sh service counting robustness
- Add error handling to prevent script crashes during service enumeration
- Make service counting more robust against parsing failures
- Ensure menu displays properly even with docker-compose parsing issues
- Menu now shows complete interface with all 8 main options
2026-01-29 19:59:13 -05:00
Kelin
ea72ad7023 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
2026-01-29 19:55:58 -05:00
Kelin
92c4002c18 Add unified menu interface for EZ-Homelab setup
- New menu.sh script provides single entry point for all functionality
- Interactive menu system with 7 main categories:
  * System Setup & Validation
  * Configuration Management
  * Deployment & Services
  * Monitoring & Maintenance
  * Backup & Recovery
  * Updates & Maintenance
  * Advanced Options
- Real-time system status display
- User-friendly navigation with clear instructions
- Integrates all existing scripts into cohesive interface
2026-01-29 19:55:49 -05:00
Kelin
f141848a10 Add EZ-Homelab Enhanced Setup System
- Complete modular bash-based setup system replacing Python TUI
- Phase 1-4 implementation: Core Infrastructure, Configuration Management, Deployment Engine, Service Orchestration & Management
- 9 production-ready scripts: preflight.sh, setup.sh, pre-deployment-wizard.sh, localize.sh, generalize.sh, validate.sh, deploy.sh, service.sh, monitor.sh, backup.sh, update.sh
- Shared libraries: common.sh (utilities), ui.sh (text interface)
- Template-based configuration system with environment variable substitution
- Comprehensive documentation: PRD, standards, and quick reference guides
- Automated backup, monitoring, and update management capabilities
- Cross-platform compatibility with robust error handling and logging
2026-01-29 19:53:36 -05:00
kelinfoxy
53f96c8422 feat: Add EZ-Homelab TUI deployment script
- Move ez-homelab.py to scripts/ folder for better organization
- Add working directory detection to ensure script works from any location
- Update README-TUI.md with correct script paths
- First commit of the new Python TUI for EZ-Homelab deployment
2026-01-29 16:43:42 -05:00
kelinfoxy
7b4f562c68 feat: Update EZ-Homelab configurations and documentation
- Update .env.example with latest environment variables
- Enhance homepage dashboard configurations and templates
- Improve Traefik routing templates for external hosts
- Update docker-compose files for dashboards and infrastructure
- Add comprehensive TUI documentation and PRD
- Add new Homelab-Audit documentation
- Remove outdated release notes
2026-01-28 21:56:33 -05:00
Kelin
ea91151829 Minor fixes and improvements to ez-homelab.sh 2026-01-26 23:24:23 -05:00
Kelin
62454130db Fix multi-server TLS setup to support password authentication and improve error handling 2026-01-26 18:16:35 -05:00
Kelin
e2d28b5208 feat: Improve TLS handling for multi-server deployments
- Add CORE_SERVER_IP variable for remote server configuration
- Implement setup_multi_server_tls() function for shared CA management
- Change TLS failure handling from exit-on-error to warning-based approach
- Add TLS_ISSUES_SUMMARY for end-of-deployment remediation guidance
- Update documentation for automated TLS setup process
- Add comprehensive AI assistant instructions for project management

This allows deployments to complete successfully even with TLS issues,
providing clear remediation steps instead of failing the entire setup.
2026-01-26 16:34:25 -05:00
Kelin
3076232e8f Fix permission errors in perform_deployment() function
- Use sudo for creating /opt directories during deployment
- Use sudo for copying files to /opt/dockge and /opt/stacks
- Ensure proper ownership of deployment directories
- Fix mkdir command for dashboards directory
2026-01-26 00:08:41 -05:00
Kelin
52e0697311 Fix share_certs_with_core() to handle missing shared CA gracefully
- Check if shared CA exists on core server before attempting to copy
- Generate local shared CA if core server doesn't have certificates
- Provide clear instructions for manual certificate synchronization
- Remove script failure when certificates can't be copied
- Allow infrastructure deployment to continue with local CA generation
2026-01-26 00:05:26 -05:00
Kelin
89ca29918b Implement shared CA certificate system for multi-server TLS security
- Generate shared CA during core deployment for consistent trust across servers
- Modify setup_docker_tls() to use shared CA instead of per-server CAs
- Update share_certs_with_core() to copy shared CA from core server
- Re-enable TLS verification (DOCKER_TLS_VERIFY=1) in Sablier
- Fix Sablier certificate mounting for proper TLS connection
- Add docker-tls/ to .gitignore to prevent certificate leaks
- Update documentation for shared CA approach
2026-01-25 23:08:01 -05:00
kelinfoxy
08b184aea7 Standardize Compose Files 2026-01-24 23:11:05 -05:00
kelinfoxy
a59862c988 Documentation updates 2026-01-24 21:40:51 -05:00
EZ-Homelab
9e5c09bd2a fix: Ensure ez-homelab.sh copies config directories for all stacks
- Add config directory copying to setup_stacks_for_dockge() function
- Add config directory copying to infrastructure deployment
- Fixes monitoring stack (prometheus/loki/promtail) config file issues
- Ensures all service configs are properly deployed

All stacks now have their configuration files copied during setup.
2026-01-24 21:16:30 -05:00
EZ-Homelab
7a1cd5a8a0 Fix port conflicts and standardize service configurations
- Resolve port conflicts: TasmoAdmin (8084), Form.io (3002), Gitea (3010)
- Add missing Authelia SSO and Sablier lazy loading to utilities stack
- Standardize Form.io labels to match TRAEFIK CONFIGURATION guidelines
- Reorganize ports-in-use.md with stack-based table and proper column order
- Remove Dokuwiki deployment from ez-homelab.sh (already in productivity stack)
- Update service restart policies for lazy loading compatibility
2026-01-24 17:01:53 -05:00
EZ-Homelab
c5d54c6bc7 Fix variable substitution patterns: remove :-default fallbacks
- Replace all ${VARIABLE:-default} with ${VARIABLE} in compose files
- Ensure explicit variable requirements without default values
- Updated 10 docker-compose.yml files across all stacks
- Made reset-ondemand-services.sh executable
2026-01-24 15:20:31 -05:00
EZ-Homelab
28064ff385 fix: preserve Docker images in reset script
- Remove Docker image removal step to keep images cached
- Update step numbering and final warnings
- Maintains faster redeployment while still providing clean environment
2026-01-23 18:23:52 -05:00
EZ-Homelab
3e221bb3f2 feat: enhance reset-test-environment.sh for complete cleanup
- Stop and remove ALL containers (not just specific stacks)
- Remove ALL Docker images, volumes, and networks
- Completely remove /opt/stacks and /opt/dockge directories
- Updated warnings to reflect thorough cleanup
- Maintains safety checks and user confirmation
2026-01-23 18:22:43 -05:00
EZ-Homelab
3701b11a73 feat: Update Sablier configs for debian hostname and reorganize .env.example
- Change Traefik configs to use ${SERVER_HOSTNAME} placeholder (defaults to debian)
- Update ez-homelab.sh to replace SERVER_HOSTNAME in config templates
- Set Sablier session duration to 5m for testing (increase to 30m for production)
- Add SERVER_HOSTNAME prompt and saving in setup script
- Reorganize .env.example with better structure and SMTP variables
- Add production guidance comments to docker-compose files
- Intentional SMTP variable redundancy for service flexibility
2026-01-23 15:25:25 -05:00
EZ-Homelab
3b01467477 Fix Docker detection logic to avoid unnecessary system setup
- Script now properly detects if Docker is installed and user is in docker group
- Prevents forcing logout/login when Docker is already properly configured
- Only runs system_setup when actually needed
2026-01-22 21:32:44 -05:00
EZ-Homelab
d4e6ce682b fix: Skip Docker/Docker Compose installation when already installed
- Update ez-homelab.sh Step 3: Check if Docker is installed before attempting installation
- Update ez-homelab.sh Step 4: Check if Docker Compose is installed before attempting installation
- Update setup-homelab.sh Step 3: Improve Docker check to verify service status and start if needed
- Both scripts now skip installation and notify when components are already available
- Maintains backward compatibility and proper service management
2026-01-22 20:07:31 -05:00
EZ-Homelab
06ce59e02a feat: Add automatic environment variable replacement in deployment script
- Add replace_env_vars() function to automatically scan and replace  patterns
- Function checks all config files (.yml, .yaml, .conf, .json) for variables
- Replaces variables found in .env file with their values
- Warns about variables referenced in templates but missing from .env
- Applied to both core deployment and stack setup for Dockge
- Maintains backward compatibility with existing hardcoded replacements
- Makes deployment script maintenance-free for new services
2026-01-22 19:55:31 -05:00
EZ-Homelab
9cc0e93c79 feat: Add comprehensive restart policy documentation and Sablier lazy loading support
- Add SERVER_HOSTNAME env var for Sablier group naming
- Update default hostname from 'jarvis' to 'debian' for generic repo compatibility
- Add restart policy documentation to all docker-compose files
- Add Sablier labels to lazy-loaded services (jellyfin, dozzle, glances, code-server, homarr, dokuwiki)
- Update sablier.yml template to use debian- prefixes
- Enhance deploy script to auto-detect hostname and update configurations
- Ensure all YAML files remain syntactically valid
2026-01-22 19:49:24 -05:00
EZ-Homelab
4140a32adb fix: Update script to replace ${DEFAULT_EMAIL} in authelia users database
- Add sed replacement for ${DEFAULT_EMAIL} with actual admin email
- Ensures email addresses are properly configured during deployment
2026-01-22 19:05:18 -05:00
EZ-Homelab
71d9a1e152 feat: Complete EZ-Homelab deployment system overhaul
- Add unified ez-homelab.sh script with guided menu interface
- Create dedicated Dockge stack in /opt/dockge for clean isolation
- Move dockerproxy from core to infrastructure stack
- Fix Authelia configuration with proper variable placeholders
- Update all compose files to use  variables
- Enhance script with comprehensive variable replacement
- Fix sed delimiter conflicts and middleware issues
- Add proper step numbering and error handling
- Prepare all stacks for Dockge management
- Update README with new deployment instructions
2026-01-22 18:56:20 -05:00
EZ-Homelab
89760895f2 Refactor docker-compose structure to folder-based organization
- Remove redundant .yml files from main docker-compose folder
- Update deploy script to use folder-based structure for all stacks
- Update documentation to reflect new folder-based organization
- Standardize all stacks to use docker-compose.yml in individual folders

This eliminates confusion between file-based and folder-based structures,
making the repository more maintainable and consistent.
2026-01-22 16:44:44 -05:00
EZ-Homelab
535ae5017b Fix deploy script: source .env after copying it
- Move .env sourcing after cp to avoid 'No such file' error
- Ensure secrets are available for placeholder replacement
2026-01-22 16:14:24 -05:00
EZ-Homelab
12baa5cdf3 Fix EZ-Homelab scripts for successful fresh installs
- Fix Authelia config template paths (/data/ -> /config/)
- Add secret placeholder replacement in deploy script
- Add user database placeholder replacement
- Add automatic dashboard stack deployment (Homepage, Homarr)
- Remove incorrect Portainer reference from infrastructure log
- Update deployment steps and final summary
2026-01-22 16:08:39 -05:00
kelinfoxy
30e0481685 copilot Instructions improvements
and documentation updates
2026-01-21 18:52:40 -05:00
kelinfoxy
b03ffd092c Add Dokuwiki deployment to deploy-homelab.sh for immediate availability 2026-01-20 20:21:00 -05:00
kelinfoxy
ae35eafdb6 Merge remote changes and resolve conflict in copilot-instructions.md 2026-01-20 19:40:20 -05:00
kelinfoxy
16b7e1f1a7 Documentation Reorganization
Major upgrade to the documentation.
2026-01-20 19:01:21 -05:00
kelinfoxy
21ee910267 Merge remote updates, accepting remote versions for conflicted files 2026-01-17 20:22:10 -05:00
00a3111ce4 Refine setup script prompts and cleanup deploy script credential files
- Skip password confirmation prompt if DEFAULT_PASSWORD is already set and valid
- Remove redundant placeholder values from is_placeholder function
- Clean up temporary and permanent credential files after deployment to avoid redundancy with .env
2026-01-16 19:51:18 -05:00
39324c9c9d Fix get_env_value to strip comments and trim spaces properly 2026-01-16 18:48:23 -05:00
8d3175918c Add prompts for DEFAULT_USER, DEFAULT_EMAIL, DEFAULT_PASSWORD if placeholders; use defaults for Authelia credentials 2026-01-16 18:41:22 -05:00
882491c418 Fix ADMIN_USER assignment and add prompt for username/email if placeholders; trim spaces in get_env_value 2026-01-16 18:37:02 -05:00
10f5a38487 Add validation for DUCKDNS_TOKEN and DUCKDNS_SUBDOMAINS in setup script 2026-01-16 18:28:27 -05:00
0df343a9e0 Add 'your-username' to placeholder checks 2026-01-16 18:25:50 -05:00
86acc36e30 Remove newlines from variables before sed to prevent multi-line sed commands 2026-01-16 17:33:28 -05:00
40bd255727 Escape | characters in variables before using sed to prevent unterminated s command 2026-01-16 17:31:43 -05:00
0cbc6128bd Fix sed commands to use # delimiter to avoid issues with special characters in variables 2026-01-16 17:30:27 -05:00
7e7488a4c5 Fix missing generate_secret function in setup script 2026-01-16 17:28:50 -05:00
5561355e25 Modify setup script for minimal interaction: use valid .env values, prompt for Authelia credentials with options 2026-01-16 17:02:20 -05:00
655df5c159 Apply researched resource limits to all Docker Compose stacks
- Add deploy.resources sections to all services based on service type
- Lightweight services: 0.25 CPU, 128M RAM (Traefik, Authelia, Pi-hole)
- Web services: 0.50 CPU, 256M RAM (Dashboards, simple web apps)
- Media services: 2.0 CPU, 2G RAM (Jellyfin, transcoding)
- Database services: 1.0 CPU, 1G RAM (PostgreSQL, caching)
- Heavy apps: 1.5 CPU, 1G RAM (Nextcloud, Home Assistant)
- Monitoring: 0.75 CPU, 512M RAM (Prometheus, Grafana)
- Include CPU, memory, and process limits with reservations
- Create comprehensive resource limits template documentation
2026-01-15 21:30:11 -05:00
a697bc265c Add SSL certificate preservation across test environment resets
- Add acme.json to .gitignore to prevent accidental commits
- Modify reset script to preserve certificates in repo folder before cleanup
- Modify setup script to restore certificates to correct location
- Update step numbering in reset script (now 7 steps)
- Maintain proper file permissions and ownership for certificates
2026-01-15 20:25:07 -05:00
ac27a073e3 Fix setup script to ensure Docker Compose is installed 2026-01-15 15:28:06 -05:00
ef5868b481 Update deploy-homelab.sh script 2026-01-15 03:32:21 -05:00
258e8eec94 Refactor scripts for improved maintainability
- setup-homelab.sh: Fixed syntax errors, placeholder detection, and hardcoded paths
- deploy-homelab.sh: Refactored from inline code to function-based structure
- Both scripts now use consistent function organization for better readability
- Enhanced credential handling and error checking
- All scripts validated for syntax correctness
2026-01-14 18:10:23 -05:00