# Auto-Boot Ollama Host This directory contains the auto-boot-ollama-host script, organized into multiple modules for better maintainability and structure. ## File Structure ### Main Script - `auto-boot-ollama-host.lua` - Main script that orchestrates all functionality ### Modules #### `config.lua` Handles all environment variable configuration with sensible defaults: - Docker configuration (container name, since time) - Ollama service configuration (host, port) - SSH configuration (port, user, identity file) - Pattern configuration (error and finish patterns) - Wake-on-LAN configuration #### `utils.lua` Provides utility functions: - `log(msg)` - Timestamped logging - `getenv(name, def)` - Environment variable with default #### `network.lua` Network-related functionality: - `port_is_up(host, port, timeout)` - Check if TCP port is accessible - `send_wol(mac, bcast_ip, port)` - Send Wake-on-LAN magic packet #### `ssh.lua` SSH command execution: - `execute(command, user, host, port, identity_file)` - Execute remote SSH command - `execute_with_output(command, user, host, port, identity_file)` - Execute SSH command and return output #### `ollama_manager.lua` Ollama service management: - `start_service(config)` - Start Ollama service via SSH - `stop_service_and_shutdown(config)` - Stop service and shutdown host #### `session_check.lua` Windows desktop session detection: - `is_user_logged_in_enhanced(config)` - Check if user is logged into desktop session ## Benefits of Modular Structure 1. **Separation of Concerns**: Each module has a single responsibility 2. **Reusability**: Modules can be reused in other projects 3. **Testability**: Individual modules can be unit tested 4. **Maintainability**: Easier to locate and modify specific functionality 5. **Readability**: Clear structure and organization 6. **Configuration**: Centralized configuration management ## New Features ### Desktop Session Detection The script includes Windows desktop session detection: - Checks if the SSH_USER is currently logged into a Windows desktop session - If user is logged in, skips Ollama startup/shutdown to avoid interruption - If user is not logged in, proceeds with normal operation ## Usage To use the script, simply run: ```bash lua auto-boot-ollama-host.lua ``` The script provides a modular structure for better maintainability while maintaining all functionality.