Add terminal UI and update README

This commit is contained in:
Ed Nielsen 2026-03-18 15:35:37 +01:00
parent 580d2fdf83
commit 084b1cde7a

655
README.md
View file

@ -8,18 +8,657 @@ Built for speed, clarity, and control — no fluff.
## 🚀 Features ## 🚀 Features
- Check for available updates on all hosts * Check for available updates on all hosts
- Run updates remotely via SSH * Run updates remotely via SSH
- Simple host configuration file * Simple host configuration file
- Interactive terminal UI (whiptail) * Interactive terminal UI (whiptail)
- Lightweight and dependency-minimal * Lightweight and dependency-minimal
--- ---
## 📦 Installation ## 📦 Installation (Full Setup)
### 1. Clone repo
```bash ```bash
git clone https://github.com/your-repo/update-manager.git git clone https://github.com/your-repo/update-manager.git
cd update-manager cd update-manager
chmod +x setup.sh ```
sudo ./setup.sh
---
### 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