Introduce a comprehensive README file detailing the project's purpose, features, environment variables, usage instructions, project structure, and how it operates. This addition enhances documentation and provides clarity for users and developers.
2.4 KiB
2.4 KiB
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 logginggetenv(name, def)- Environment variable with default
network.lua
Network-related functionality:
port_is_up(host, port, timeout)- Check if TCP port is accessiblesend_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 commandexecute_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 SSHstop_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
- Separation of Concerns: Each module has a single responsibility
- Reusability: Modules can be reused in other projects
- Testability: Individual modules can be unit tested
- Maintainability: Easier to locate and modify specific functionality
- Readability: Clear structure and organization
- 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:
lua auto-boot-ollama-host.lua
The script provides a modular structure for better maintainability while maintaining all functionality.