Refactor auto-boot-ollama-host script into modular structure with separate configuration, network, SSH, and service management modules for improved maintainability and readability

This commit is contained in:
Bastian (BaM)
2025-09-14 17:37:12 +02:00
parent 1442eb3df7
commit 149d8b2191
7 changed files with 340 additions and 174 deletions

42
scripts/config.lua Normal file
View File

@@ -0,0 +1,42 @@
-- Configuration module for auto-boot-ollama-host
-- Handles all environment variable configuration with defaults
local function getenv(name, def)
local v = os.getenv(name)
return (v ~= nil and v ~= "") and v or def
end
local config = {}
-- Docker configuration
config.CONTAINER_NAME = getenv("CONTAINER_NAME", "paperless-ai")
config.SINCE = getenv("SINCE", "0s")
-- Ollama service configuration
config.OLLAMA_HOST = getenv("OLLAMA_HOST", "192.168.222.12")
config.OLLAMA_PORT = tonumber(getenv("OLLAMA_PORT", "11434"))
-- SSH configuration
config.SSH_PORT = tonumber(getenv("SSH_PORT", "22"))
config.SSH_USER = getenv("SSH_USER", "user")
config.SSH_IDENTITY_FILE = getenv("SSH_IDENTITY_FILE", "/root/.ssh/id_rsa")
-- Pattern configuration
config.ERROR_PATTERN = getenv(
"ERROR_PATTERN",
("[ERROR] Document analysis failed: connect EHOSTUNREACH %s:%d"):format(
config.OLLAMA_HOST,
config.OLLAMA_PORT
)
)
config.FINISH_PATTERN = getenv("FINISH_PATTERN", "[DEBUG] Finished fetching. Found 0 documents.")
-- Wake-on-LAN configuration
config.WOL_MAC = getenv("WOL_MAC", "")
config.WOL_BCAST = getenv("WOL_BCAST", "192.168.222.255")
config.WOL_PORT = tonumber(getenv("WOL_PORT", "9"))
-- Optional: wait for service to come up (kept commented to stay minimal)
-- config.UP_WAIT_TIMEOUT = tonumber(getenv("UP_WAIT_TIMEOUT", "90"))
return config