Commit Graph

85 Commits

Author SHA1 Message Date
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
e8c7dc215f 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
- Resolve merge conflicts with remote changes
2026-01-28 21:56:54 -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
d62ea7f3df Update core docker-compose.yml to match working local configuration
- Change sablier volumes to use ./shared-ca:/certs:ro (matches script generation)
- Fix x-dockge URLs to use http:// for local access and correct variable syntax
- Ensure consistency with local working setup
2026-01-28 03:32:50 -05:00
Kelin
1a78578be3 Update Docker Compose files for various stacks 2026-01-26 19:11:16 -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
EZ-Homelab
bb65f68571 refactor: Rename docker-compose files to use .yml extension
- Rename transcoders/docker-compose.yaml to .yml
- Rename wikis/docker-compose.yaml to .yml
- Maintains consistency with other docker-compose files in the project

Standardizes file extensions across all Docker Compose configurations.
2026-01-24 23:42:31 -05:00
kelinfoxy
08b184aea7 Standardize Compose Files 2026-01-24 23:11:05 -05:00
EZ-Homelab
a1c9a0958b feat: Add Sablier lazy loading to Jupyter service
- Add Sablier middleware configuration to Jupyter in productivity stack
- Update .gitignore to properly ignore service data files
- Ignore database files, logs, settings.json, and key files

Jupyter now supports on-demand startup via Sablier middleware.
2026-01-24 21:22:49 -05:00
EZ-Homelab
5e7fe08652 feat: Complete Sablier lazy loading implementation
- Add Sablier middleware to all 32 services across stacks
- Update vaultwarden port from 80 to 8091 to avoid conflicts
- Add tdarr-server and unmanic services with lazy loading
- Optimize health checks (wget for some services, dozzle built-in)
- Update Traefik routers and service definitions
- Update port documentation

All services now support on-demand startup via Sablier middleware.
2026-01-24 20:20:11 -05:00
EZ-Homelab
602dc3d12d Add comprehensive health checks for Sablier lazy loading services
- Add health checks to all services using Sablier lazy loading
- Utilities stack: Backrest, Duplicati, Form.io, Vaultwarden
- Productivity stack: Nextcloud, WordPress, Gitea, BookStack, MediaWiki
- Media Management stack: Sonarr, Radarr, Prowlarr, Jellyseerr
- Infrastructure stack: Dozzle, Glances, Code Server
- Dashboards stack: Homarr
- Health checks use curl to service endpoints with 30s intervals
- Appropriate start_period delays for service initialization
- This resolves Sablier warnings about missing health checks
2026-01-24 17:26:52 -05:00
EZ-Homelab
53d4fc0d4b Resolve TasmoAdmin port conflict with MediaWiki
- Change MediaWiki from port 8084 to 8086 to resolve conflict with TasmoAdmin
- Update Traefik loadbalancer port for MediaWiki
- Add MediaWiki to ports-in-use.md documentation
- TasmoAdmin now uses port 8084, MediaWiki uses port 8086
2026-01-24 17:13:33 -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
7449c14ac6 Remove Bitwarden authelia middleware and simplify networks
- Remove authelia middleware from Vaultwarden (Bitwarden) for app compatibility
- Simplify all compose files to use only homelab-network and traefik-network
- Remove unnecessary isolated networks (nextcloud-network, wordpress-network, etc.)
- Remove monitoring-network, formio-network, and media-network
- All services now communicate through the unified homelab-network
- Maintain traefik-network for proxied services only
2026-01-24 15:30:43 -05:00
EZ-Homelab
93ef87091a Enable Authelia middleware by default for all services
- Uncomment Authelia middleware for Vaultwarden (was disabled for app compatibility but should use SSO by default)
- Verify all other services have Authelia middleware except:
  - Jellyfin (media app access)
  - Plex (media app access)
  - Authelia itself (authentication service)
- All x-dockge sections are properly formatted with urls list
2026-01-24 15:24:10 -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
1949fe3c2e Fix mediawiki loadbalancer port to match external host (8084) 2026-01-24 15:14:27 -05:00
EZ-Homelab
8997d1ce0c Fix productivity stack port conflicts
- Changed Nextcloud port from 80 to 8099
- Changed Mealie port from 9000 to 9001
- Changed WordPress port from 80 to 8089
- Changed Gitea port from 3000 to 3011
- Changed DokuWiki port from 80 to 8088
- Changed BookStack port from 80 to 6876
- Updated all corresponding Traefik loadbalancer ports
- Resolved conflicts with external host services in external-host-production.yml
2026-01-24 15:01:36 -05:00
EZ-Homelab
a0bb477d8c Update media-management compose: unified Sablier groups, x-dockge format
- Changed all Sablier groups to ${SERVER_HOSTNAME}-arr for coordinated lazy loading
- Moved x-dockge URLs to top-level section with urls list format
- Added both HTTPS and localhost URLs for service discovery
- Updated guidelines and instructions to reflect new x-dockge format
2026-01-24 14:46:50 -05:00
EZ-Homelab
4fa35461be fix: complete TRAEFIK CONFIGURATION standardization for productivity stack
- Update remaining 6 services (mealie, wordpress, gitea, dokuwiki, bookstack, mediawiki) to new format
- Enable authelia middleware for mealie and wordpress (previously disabled)
- Ensure all services except Jellyfin have authelia@docker protection
- Maintain consistent label structure with service metadata, router config, and Sablier settings
2026-01-23 19:24:39 -05:00
EZ-Homelab
576419443d fix: standardize remaining TRAEFIK CONFIGURATION labels
- Update infrastructure services (dozzle, glances, code-server) to new format
- Update dashboards (homarr) to new format
- Update utilities (backrest, duplicati) to new format
- Update productivity (nextcloud) to new format
- Add authelia middleware to all services except Jellyfin
- Ensure consistent label structure across all stacks
2026-01-23 19:22:33 -05:00
EZ-Homelab
436ff0d035 fix: remove SERVER_HOSTNAME default values causing errors
- Change ${SERVER_HOSTNAME:-debian} to ${SERVER_HOSTNAME} in Sablier groups
- Prevents empty default values that were causing configuration errors
- Applied to dashboards, infrastructure, media, productivity, and utilities stacks
2026-01-23 18:50:10 -05:00
EZ-Homelab
3723cebe9c fix: resolve dockerproxy port 2375 conflict
- Remove port mapping from dockerproxy service
- Docker daemon already provides TCP API access on port 2375
- dockerproxy runs for security but doesn't expose conflicting port
- Resolves 'port already allocated' error during deployment
2026-01-23 18:29:52 -05:00
EZ-Homelab
c8ffce2611 feat: standardize Traefik/Sablier labels across all stacks
- Add consistent # TRAEFIK CONFIGURATION headers to all services
- Standardize label structure with service metadata, router config, and Sablier settings
- Update dockerproxy and sablier-service with Docker API requirements documentation
- Fix YAML validation issues in productivity stack
- Ensure all stacks have uniform labeling for easy management

Resolves Docker API connectivity issues for Sablier lazy loading
2026-01-23 17:31:23 -05:00
EZ-Homelab
0f6d6c1583 Standardize media-management stack labels
- Updated readarr, lidarr, lazylibrarian, mylar3, jellyseerr, tdarr-server, unmanic
- Applied consistent TRAEFIK CONFIGURATION headers and comments
- Removed duplicate x-dockge.url labels from jellyseerr
- All media services now use standardized label format matching other stacks
2026-01-23 17:24:13 -05:00
EZ-Homelab
bd71ad38e2 Complete label standardization across all stacks
- Updated remaining homeassistant services (tasmoadmin, motioneye, nodered)
- All compose files now use standardized TRAEFIK CONFIGURATION headers
- Consistent label formatting with service metadata and Traefik configuration
- Maintained service-specific requirements (host networking, disabled SSO, etc.)
- Repository cleanup complete with all stacks updated to match dashboards template
2026-01-23 16:41:23 -05:00
EZ-Homelab
f6563a67f7 Standardize labels across remaining stacks - Part 1
- Updated core services (traefik, authelia, sablier) with standardized labels
- Updated monitoring services (prometheus, grafana, cadvisor, uptime-kuma, loki)
- Updated utilities services (duplicati, formio, vaultwarden)
- Updated media management services (sonarr, radarr, prowlarr)
- Updated homeassistant services (esphome)
- Added proper TRAEFIK CONFIGURATION headers and comments
- Maintained service-specific configurations (authelia middleware, vaultwarden SSO disabled)
2026-01-23 16:41:12 -05:00
EZ-Homelab
874a5b31ed Remove Nextcloud application files from repo and add to .gitignore
- Removed docker-compose/productivity/nextcloud/html/ directory containing Nextcloud app files
- Added exclusion for Nextcloud html directory in .gitignore
- Nextcloud should install its files via Docker volume mounts, not be committed to repo
2026-01-23 16:24:00 -05:00
EZ-Homelab
38732817e1 refactor: Standardize compose file labels using dashboards template
- Apply consistent label structure across all compose files
- Include complete Traefik and Sablier labels for all services
- Enable Sablier by default for services with middleware definitions
- Comment out Sablier labels for services without middleware
- Add explanatory comments for remote Traefik configurations
- Comment out Authelia middleware where not appropriate (media apps, public services)
- Maintain existing configuration data and functionality
2026-01-23 16:20:26 -05:00
EZ-Homelab
a8835801a7 refactor: Refine compose files with improved Traefik/Sablier labels
- Enable Sablier by default for services with middleware definitions
- Update label comments to indicate 'enabled by default - comment out to disable'
- Ensure x-dockge sections have proxied URLs first, then direct IP:port
- Remove any x-dockge labels from service configurations
- Maintain well-documented, concise label sections for easy enable/disable
2026-01-23 15:53:22 -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
970231fc04 Add health check and theme to Jellyfin for Sablier lazy loading
- Added healthcheck to ensure Jellyfin is ready before Sablier redirects
- Added hacker-terminal theme to Sablier starting page
- This should help Sablier detect when Jellyfin is fully ready
2026-01-22 23:04:02 -05:00
EZ-Homelab
a81b14b457 Revert infrastructure services back to Sablier lazy loading
- Restored Sablier labels and restart: no for Dozzle, Glances, Code Server
- Remote Sablier can control local containers via dockerproxy
- Services will start on-demand when accessed
2026-01-22 20:45:25 -05:00
EZ-Homelab
6de8036e01 Remove Sablier lazy loading from infrastructure services since Sablier runs remotely
- Changed Dozzle, Glances, Code Server from restart: no to unless-stopped
- Removed Sablier labels from all three services
- Updated comments to reflect continuous running
- Kept dockerproxy environment variables for local Docker operations
2026-01-22 20:42:45 -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
30bf095fd3 fix: Configure Sablier lazy loading for docker-compose services
- Change restart policy from 'unless-stopped' to 'no' for services configured with Sablier middleware
- Services affected: jellyfin, dozzle, glances, code-server, homarr, dokuwiki
- Allows Sablier to control container startup/shutdown for lazy loading
- Improves resource utilization by only running services when accessed
2026-01-22 19:12:35 -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
dd15a7c641 Remove remaining redundant docker-compose .yml files
- Remove alternatives.yml, development.yml, homeassistant.yml
- Keep folder-based structure for all stacks
- Note: development stack was removed as it was incomplete
2026-01-22 16:45:02 -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
kelinfoxy
43f78b384f Rename project from AI-Homelab to EZ-Homelab
- Updated all documentation references from AI-Homelab to EZ-Homelab
- Changed repository URLs and directory paths
- Updated wiki content and navigation
- Maintained AI assistance functionality while emphasizing ease of use
- Updated copilot instructions and agent guidelines
2026-01-21 19:54:27 -05:00
kelinfoxy
30e0481685 copilot Instructions improvements
and documentation updates
2026-01-21 18:52:40 -05:00
kelinfoxy
ec6a46a52d Apply stashed changes after merge 2026-01-20 19:40:27 -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
15582a36ad Add x-dockge.url labels to all services with web UIs
- Added x-dockge.url=https://service. labels to all services that have Traefik routers
- Enables Dockge to display direct links to service web interfaces
- Covers all stacks: core, infrastructure, media, productivity, monitoring, utilities, etc.
2026-01-16 20:19:14 -05:00
4a7e36723b Configure Traefik to use Let's Encrypt staging server
- Add caServer to ACME resolver for staging certificates
- Prevents hitting production rate limits during testing
2026-01-16 20:06:27 -05:00
86fc009350 Update Homepage services: add Lidarr/Readarr/Radarr to Media Management, fix Formio URL 2026-01-16 16:25:35 -05:00
35b0280f80 Fix Formio: remove old Mongo data volume to resolve compatibility issue 2026-01-16 16:20:08 -05:00