# ⚙️ update-manager Simple CLI tool for checking and managing updates across multiple Linux hosts over SSH. Built for speed, clarity, and control — no fluff. --- ## 🚀 Features * Check for available updates on all hosts * Run updates remotely via SSH * Simple host configuration file * Interactive terminal UI (whiptail) * Lightweight and dependency-minimal --- ## 📦 Installation (Full Setup) ### 1. Clone repo ```bash git clone https://github.com/your-repo/update-manager.git cd update-manager ``` --- ### 2. Create install directory ```bash sudo mkdir -p /opt/update-manager ``` --- ### 3. Copy files ```bash sudo cp update-manager.sh /opt/update-manager/ sudo cp update-manager-ui.sh /opt/update-manager/ 2>/dev/null ``` --- ### 4. Make executable ```bash sudo chmod +x /opt/update-manager/update-manager.sh sudo chmod +x /opt/update-manager/update-manager-ui.sh 2>/dev/null ``` --- ### 5. Create symlinks ```bash sudo ln -sf /opt/update-manager/update-manager.sh /usr/local/bin/update-manager sudo ln -sf /opt/update-manager/update-manager-ui.sh /usr/local/bin/update-manager-ui 2>/dev/null ``` --- ### 6. Install dependencies ```bash sudo apt update && sudo apt install -y whiptail openssh-client ``` --- ### 7. First run (creates config) ```bash update-manager check ``` --- ## ⚡ Quick Start (1 minute) ### Edit hosts file ```bash nano /opt/update-manager/hosts.conf ``` Example: ```txt # name ip user lanx-ai 172.16.5.135 ed lanx-www 172.16.5.140 ed lanx-modoboa 172.16.5.130 ed ``` --- ### Run check ```bash update-manager check ``` --- ## 🧠 Notes * Hosts file is created automatically on first run * Lines starting with `#` are ignored * Empty lines are ignored * Requires passwordless SSH access --- ## 🔐 SSH Setup (Required) Generate SSH key (if needed): ```bash ssh-keygen ``` Copy key to hosts: ```bash ssh-copy-id user@host ``` Test access: ```bash ssh user@host ``` ✔ No password prompt = ready --- ## 🖥️ Terminal UI Interactive menu for managing hosts. ### Start UI ```bash update-manager-ui ``` --- ### UI Features * Check all hosts * View hosts file * Edit hosts file * Add host * Remove host --- ## 📁 File Structure ```txt /opt/update-manager/ ├── update-manager.sh ├── update-manager-ui.sh ├── hosts.conf └── update-manager.conf ``` --- ## ⚙️ Configuration Default config: ```bash /etc/update-manager.conf ``` Example: ```bash HOSTS_FILE="/opt/update-manager/hosts.conf" SSH_OPTIONS="-o BatchMode=yes -o ConnectTimeout=5" ``` --- ## 🔧 Commands ```bash update-manager check # Check all hosts update-manager update # Run updates on all hosts ``` --- ## 💡 Philosophy * Keep it simple * Keep it transparent * No hidden magic * Pure SSH control --- ## 🧱 Future Ideas * Email reports (cron) * Optional web UI * Integration with Lanx monitoring --- ## ❤️ Built for Lanx Designed for clean infrastructure, not enterprise chaos. Developed by Ed & # ⚙️ update-manager Simple CLI tool for checking and managing updates across multiple Linux hosts over SSH. Built for speed, clarity, and control — no fluff. --- ## 🚀 Features * Check for available updates on all hosts * Run updates remotely via SSH * Simple host configuration file * Interactive terminal UI (whiptail) * Lightweight and dependency-minimal --- ## 📦 Installation (Full Setup) ### 1. Clone repo ```bash git clone https://github.com/your-repo/update-manager.git cd update-manager ``` --- ### 2. Create install directory ```bash sudo mkdir -p /opt/update-manager ``` --- ### 3. Copy files ```bash sudo cp update-manager.sh /opt/update-manager/ sudo cp update-manager-ui.sh /opt/update-manager/ 2>/dev/null ``` --- ### 4. Make executable ```bash sudo chmod +x /opt/update-manager/update-manager.sh sudo chmod +x /opt/update-manager/update-manager-ui.sh 2>/dev/null ``` --- ### 5. Create symlinks ```bash sudo ln -sf /opt/update-manager/update-manager.sh /usr/local/bin/update-manager sudo ln -sf /opt/update-manager/update-manager-ui.sh /usr/local/bin/update-manager-ui 2>/dev/null ``` --- ### 6. Install dependencies ```bash sudo apt update && sudo apt install -y whiptail openssh-client ``` --- ### 7. First run (creates config) ```bash update-manager check ``` --- ## ⚡ Quick Start (1 minute) ### Edit hosts file ```bash nano /opt/update-manager/hosts.conf ``` Example: ```txt # name ip user lanx-ai 172.16.5.135 ed lanx-www 172.16.5.140 ed lanx-modoboa 172.16.5.130 ed ``` --- ### Run check ```bash update-manager check ``` --- ## 🧠 Notes * Hosts file is created automatically on first run * Lines starting with `#` are ignored * Empty lines are ignored * Requires passwordless SSH access --- ## 🔐 SSH Setup (Required) Generate SSH key (if needed): ```bash ssh-keygen ``` Copy key to hosts: ```bash ssh-copy-id user@host ``` Test access: ```bash ssh user@host ``` ✔ No password prompt = ready --- ## 🖥️ Terminal UI Interactive menu for managing hosts. ### Start UI ```bash update-manager-ui ``` --- ### UI Features * Check all hosts * View hosts file * Edit hosts file * Add host * Remove host --- ## 📁 File Structure ```txt /opt/update-manager/ ├── update-manager.sh ├── update-manager-ui.sh ├── hosts.conf └── update-manager.conf ``` --- ## ⚙️ Configuration Default config: ```bash /etc/update-manager.conf ``` Example: ```bash HOSTS_FILE="/opt/update-manager/hosts.conf" SSH_OPTIONS="-o BatchMode=yes -o ConnectTimeout=5" ``` --- ## 🔧 Commands ```bash update-manager check # Check all hosts update-manager update # Run updates on all hosts ``` --- ## 💡 Philosophy * Keep it simple * Keep it transparent * No hidden magic * Pure SSH control --- ## 🧱 Future Ideas * Email reports (cron) * Optional web UI * Integration with Lanx monitoring --- ## ❤️ Built for Lanx Designed for clean infrastructure, not enterprise chaos. Developed by Ed & # ⚙️ update-manager Simple CLI tool for checking and managing updates across multiple Linux hosts over SSH. Built for speed, clarity, and control — no fluff. --- ## 🚀 Features * Check for available updates on all hosts * Run updates remotely via SSH * Simple host configuration file * Interactive terminal UI (whiptail) * Lightweight and dependency-minimal --- ## 📦 Installation (Full Setup) ### 1. Clone repo ```bash git clone https://github.com/your-repo/update-manager.git cd update-manager ``` --- ### 2. Create install directory ```bash sudo mkdir -p /opt/update-manager ``` --- ### 3. Copy files ```bash sudo cp update-manager.sh /opt/update-manager/ sudo cp update-manager-ui.sh /opt/update-manager/ 2>/dev/null ``` --- ### 4. Make executable ```bash sudo chmod +x /opt/update-manager/update-manager.sh sudo chmod +x /opt/update-manager/update-manager-ui.sh 2>/dev/null ``` --- ### 5. Create symlinks ```bash sudo ln -sf /opt/update-manager/update-manager.sh /usr/local/bin/update-manager sudo ln -sf /opt/update-manager/update-manager-ui.sh /usr/local/bin/update-manager-ui 2>/dev/null ``` --- ### 6. Install dependencies ```bash sudo apt update && sudo apt install -y whiptail openssh-client ``` --- ### 7. First run (creates config) ```bash update-manager check ``` --- ## ⚡ Quick Start (1 minute) ### Edit hosts file ```bash nano /opt/update-manager/hosts.conf ``` Example: ```txt # name ip user lanx-ai 172.16.5.135 ed lanx-www 172.16.5.140 ed lanx-modoboa 172.16.5.130 ed ``` --- ### Run check ```bash update-manager check ``` --- ## 🧠 Notes * Hosts file is created automatically on first run * Lines starting with `#` are ignored * Empty lines are ignored * Requires passwordless SSH access --- ## 🔐 SSH Setup (Required) Generate SSH key (if needed): ```bash ssh-keygen ``` Copy key to hosts: ```bash ssh-copy-id user@host ``` Test access: ```bash ssh user@host ``` ✔ No password prompt = ready --- ## 🖥️ Terminal UI Interactive menu for managing hosts. ### Start UI ```bash update-manager-ui ``` --- ### UI Features * Check all hosts * View hosts file * Edit hosts file * Add host * Remove host --- ## 📁 File Structure ```txt /opt/update-manager/ ├── update-manager.sh ├── update-manager-ui.sh ├── hosts.conf └── update-manager.conf ``` --- ## ⚙️ Configuration Default config: ```bash /etc/update-manager.conf ``` Example: ```bash HOSTS_FILE="/opt/update-manager/hosts.conf" SSH_OPTIONS="-o BatchMode=yes -o ConnectTimeout=5" ``` --- ## 🔧 Commands ```bash update-manager check # Check all hosts update-manager update # Run updates on all hosts ``` --- ## 💡 Philosophy * Keep it simple * Keep it transparent * No hidden magic * Pure SSH control --- ## 🧱 Future Ideas * Email reports (cron) * Optional web UI * Integration with Lanx monitoring --- ## ❤️ Built for Lanx Designed for clean infrastructure, not enterprise chaos. Developed by Ed & NodeFox