Commit Graph

76 Commits

Author SHA1 Message Date
Kelin
0de82e55b6 Refactor proxying-external-hosts.md: Remove Method 2 (Docker labels) completely
Changes:
- Removed entire Method 2 section (Docker labels with dummy containers)
- Simplified to focus only on Method 1 (File Provider) as recommended approach
- Updated Quick Start section with cleaner step-by-step instructions
- Removed resource consumption warnings (no longer relevant)
- Updated AI Management section to remove Docker labels references
- Maintained all advanced configuration examples (WebSocket, HTTPS backend, IP whitelist)
- Kept all troubleshooting, security best practices, and complete example

The guide now focuses exclusively on the recommended YAML file approach,
which is simpler, more reliable, and doesn't consume unnecessary resources.
2026-02-08 15:59:44 -05:00
Kelin
7c8f128eaf Update architecture diagram to show public internet routing and HTTP vs HTTPS traffic
Changes:
- Added public internet layer showing HTTPS traffic flow
- Clarified that internal network uses HTTP (no SSL/TLS)
- Added traffic flow summary section
- Updated 'How It Works' section to explicitly mention HTTPS externally, HTTP internally
- Added 'Key Points' section explaining no double encryption

The diagram now clearly shows:
1. 🌐 Public Internet → HTTPS (ports 80/443)
2. Core Server (SSL termination)
3. Internal Network → HTTP (no encryption needed)
4. Additional Servers (direct port access)
2026-02-08 15:19:48 -05:00
Kelin
63b2ae8fe0 Update multi-server deployment docs for simplified architecture
Changes:
- Remove references to local Traefik on additional servers
- Update architecture diagram to show direct port exposure
- Clarify that additional servers are 'headless' (no local reverse proxy)
- Update traffic flow to show direct routing from core to services
- Update performance metrics (50MB vs 100MB, 2min vs 5-10min deployment)
- Rename 'Remote Server' to 'Additional Server' for consistency

The docs now accurately reflect the current simplified architecture where
additional servers only run Sablier and expose ports directly.
2026-02-08 15:13:44 -05:00
kelinfoxy
5cbb106160 Add multi-server support and update docs
Introduce multi-server architecture documentation and reorganize README content. Top-level README now documents Core vs Remote server roles, links to local docs instead of wiki pages, and highlights Traefik/Sablier multi-server behavior. docker-compose/README.md was rewritten to be a template-style reference with single- and multi-server deployment guidance, Traefik label examples, and sablier usage; dockge README was moved into docker-compose/dockge/. docker-compose/core/README.md was updated to describe core responsibilities, shared CA artifacts, and startup order for multi-server deployments. Several obsolete/duplicated docs and action reports were removed and a new multi-server deployment doc was added to centralize on-demand/remote service guidance. Overall this cleans up legacy docs and documents the multi-server workflow and TLS/shared-CA requirements.
2026-02-05 22:30:52 -05:00
copilot-swe-agent[bot]
300d870a2b Replace personal data with variables and placeholders
- Replace hardcoded password in code-server config with ${CODE_SERVER_PASSWORD}
- Replace domain kelin-hass.duckdns.org with yourdomain.duckdns.org in docs
- Replace domain kelinreij.duckdns.org with yourdomain.duckdns.org in homepage config
- Replace personal emails with example addresses
- Replace DuckDNS token and credentials in markup.yml with placeholders
- Replace Let's Encrypt account numbers with placeholders

Co-authored-by: kelinfoxy <67766943+kelinfoxy@users.noreply.github.com>
2026-02-05 18:40:44 +00:00
Kelin
73cb274160 v0.1.2: Multi-server architecture + security cleanup
- Implement multi-server Traefik + Sablier architecture
- Add label-based automatic service discovery
- Create separate Sablier stack deployment
- Add remote server deployment workflow (Option 3)
- Add 9 new functions for multi-server management
- Remove deprecated config-templates folder
- Replace hardcoded private data with placeholders
- Update backup timestamp format to YY_MM_DD_hh_mm
- Add markup.yml to .gitignore

Breaking changes:
- Removed Sablier from core docker-compose.yml (now separate stack)
- Config templates moved from config-templates/ to docker-compose/core/
- REQUIRED_VARS now dynamic based on deployment type
2026-02-04 19:36:18 -05:00
EZ-Homelab Assistant
90a26a9ac4 Fix homepage Traefik network routing and update configurations
- Add traefik.docker.network=traefik-network label to homepage service
- Prevent Traefik from using wrong IP from homelab-network
- Resolve 504 Gateway Timeout issues after authentication
- Update various docker-compose configurations and templates
- Clean up unused configuration files
2026-01-30 23:29:00 -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
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
kelinfoxy
4adaeae7ce Update documentation for v0.1.0 release 2026-01-27 13:42:06 -05:00
kelinfoxy
552f0240b5 Docs update 2026-01-27 13:20:22 -05:00
kelinfoxy
ee93f26d52 Merge branch 'main' of https://github.com/kelinfoxy/EZ-Homelab 2026-01-26 23:45:56 -05:00
kelinfoxy
916e970994 Docs update 2026-01-26 23:45:28 -05:00
Kelin
7b70675aa1 Update README.md documentation 2026-01-26 19:51:44 -05:00
Kelin
7eb0e97393 Add multi-server TLS setup instructions to manual setup guide 2026-01-26 18:38:53 -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
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
331841fdbe wiki update 2026-01-25 12:35:16 -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
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
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
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
e533b6cdeb feat: standardize Traefik configuration and update documentation
- Reorganize Sablier middlewares in alphabetical order with authelia first
- Add service definitions comment to external-host-production.yml
- Update docker-guidelines.md with comprehensive Traefik configuration:
  * Emphasize authelia SSO and sablier lazy loading as defaults
  * Add detailed remote server configuration instructions
  * Include complete TRAEFIK CONFIGURATION examples in service creation/modification guidelines
  * Expand remote server setup with YAML file examples
  * Update planning phase with Traefik considerations
  * Enhance documentation phase with HTTPS URLs and routing notes
2026-01-23 20:26:54 -05:00
EZ-Homelab
008bf628c0 Update documentation to remove development stack references
- Remove development stack references from ports and quick-reference docs
- Development stack was incomplete and removed during restructuring
2026-01-22 16:45:16 -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
ef55974b50 Wiki major update
updated with recent documentation
2026-01-21 19:18:39 -05:00
kelinfoxy
30e0481685 copilot Instructions improvements
and documentation updates
2026-01-21 18:52:40 -05:00
kelinfoxy
c6d14d4904 env documentation 2026-01-21 17:10:55 -05:00
kelinfoxy
2dc6bdec81 Documentation update 2026-01-21 15:54:58 -05:00
kelinfoxy
47ffc28f0b Documentation update 2026-01-21 14:10:03 -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
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
4609ec5e89 Update getting-started.md with manual changes
- Add monitoring services section with Dockge and Uptime Kuma
- Simplify stack removal instructions in service management section
- Streamline documentation structure
2026-01-15 20:11:41 -05:00
3d07ddac26 Add comprehensive Docker stack management documentation
- Document safe stack removal process with proper cleanup steps
- Explain consequences of just deleting folders without stopping containers
- Add restoration instructions for accidentally removed stacks
- Include warnings about data loss and dependency checking
2026-01-15 19:57:41 -05:00
52e3d6e2af Add comprehensive SSL certificate documentation to getting-started.md
- Explain Let's Encrypt + DuckDNS integration
- Document staging vs production certificate servers
- Add troubleshooting guide for certificate issues
- Include best practices and validation commands
- Cover wildcard certificates and DNS challenge process
2026-01-15 19:34:58 -05:00
75906bc043 Add Let's Encrypt staging configuration for testing environments
- Include commented staging caServer in config template
- Add troubleshooting section for test environment certificate conflicts
- Document rate limit avoidance strategies for development/testing
2026-01-15 19:24:06 -05:00
8894d05f3b Update Traefik config template and docs to reflect working SSL certificate setup
- Remove explicit DNS resolvers from dnsChallenge to fix propagation check failures
- Add note about resolvers causing issues with DuckDNS TXT record resolution
- Preserve knowledge from certificate debugging session
2026-01-15 19:20:26 -05:00
adb894d35e Round 10: Add Traefik routing to monitoring services
- Added Traefik labels and routing to prometheus, grafana, loki, cadvisor
- Fixed Grafana ROOT_URL to use domain-based URL (https://grafana.${DOMAIN})
- Added uptime-kuma bypass rule in Authelia (needs initial setup)
- Updated all services to use traefik-network
- Synced domain from kelin-hass to kelin-casa across all configs
- Fixed missing tls=true label on uptime-kuma
- Note: Loki is API-only service (no web UI, accessed via Grafana)
2026-01-14 23:08:37 -05:00
650700ed0a Re-enable Watchtower with correct Docker API version
Fixes:
- docker-compose/infrastructure.yml:
  - Uncommented Watchtower service
  - Updated image from 1.7.1 to latest
  - Changed DOCKER_API_VERSION from 1.44 to 1.52 (current Docker version)
  - Added default empty value for WATCHTOWER_NOTIFICATION_URL

- scripts/deploy-homelab.sh:
  - Removed "temporarily disabled" note
  - Added Watchtower to infrastructure stack list

- docs/services-overview.md:
  - Updated infrastructure stack count from 7 to 8
  - Added Watchtower to service list

Watchtower now runs successfully with scheduled updates at 4 AM daily
2026-01-14 02:25:20 -05:00
3e53cc3225 Remove automatic deployment prompt from setup script
Changes:
- scripts/setup-homelab.sh: Remove interactive deployment prompt
  - Users must now run deploy script manually
  - Simplifies both scripts (no sudo workarounds needed)
  - Clearer two-step process: setup then deploy

- Documentation updates:
  - README.md: Updated step 3-4 with manual deployment
  - docs/getting-started.md: Removed step 6 (log out), clarified steps
  - docs/manual-setup.md: Added sudo to deploy command
  - docs/troubleshooting/COMMON-ISSUES.md: Added sudo to all deploy commands

Rationale:
- Automatic deployment via 'su -' cannot work with sudo requirement
- Manual two-step process is clearer and more reliable
- Setup focuses on configuration, deploy focuses on services
2026-01-14 02:04:56 -05:00
aa3f927b2c Reorganize docker-compose stacks for better service grouping
Stack changes:
- Renamed media-extended.yml → media-management.yml (better clarity)
- Moved Plex from media → alternatives (Jellyfin is primary)
- Moved code-server from utilities → infrastructure
- Moved Sonarr, Radarr, Prowlarr from media → media-management
- Moved Calibre-web from media-management → media

New stack organization:
- media.yml (3): Jellyfin, Calibre-web, qBittorrent
- media-management.yml (13): All *arr apps, transcoders
- alternatives.yml (6): Plex, Portainer, Authentik
- infrastructure.yml (7): Added code-server
- utilities.yml (6): Removed code-server

Documentation updated:
- README.md: Updated stack descriptions
- services-overview.md: Updated service counts and locations
- All service docs: Updated file paths media-extended → media-management
2026-01-14 01:32:20 -05:00
8b2f534c3c docs: user manual edits to getting-started.md
- Updated Getting Started Checklist with clone repo as first step
- Clarified deployment script description
- Added VS Code SSH tip in Simple Setup
- Enhanced VS Code integration section
- Added Debloat/custom service section with AI agent guidance
2026-01-13 23:48:56 -05:00
a916d48776 docs: explicitly document wildcard SSL certificate usage
- README.md: Updated Traefik feature to mention wildcard certificates via DNS challenge
- README.md: Added wildcard cert note to deployment script section
- getting-started.md: Explicitly mention wildcard certificate generation in deploy step

All documentation now clearly states the project uses wildcard SSL certificates with DNS challenge.
2026-01-13 23:15:23 -05:00