update-manager/README.md

8.8 KiB

⚙️ 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

git clone https://github.com/your-repo/update-manager.git
cd update-manager

2. Create install directory

sudo mkdir -p /opt/update-manager

3. Copy files

sudo cp update-manager.sh /opt/update-manager/
sudo cp update-manager-ui.sh /opt/update-manager/ 2>/dev/null

4. Make executable

sudo chmod +x /opt/update-manager/update-manager.sh
sudo chmod +x /opt/update-manager/update-manager-ui.sh 2>/dev/null

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

sudo apt update && sudo apt install -y whiptail openssh-client

7. First run (creates config)

update-manager check

Quick Start (1 minute)

Edit hosts file

nano /opt/update-manager/hosts.conf

Example:

# 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

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):

ssh-keygen

Copy key to hosts:

ssh-copy-id user@host

Test access:

ssh user@host

✔ No password prompt = ready


🖥️ Terminal UI

Interactive menu for managing hosts.

Start UI

update-manager-ui

UI Features

  • Check all hosts
  • View hosts file
  • Edit hosts file
  • Add host
  • Remove host

📁 File Structure

/opt/update-manager/
├── update-manager.sh
├── update-manager-ui.sh
├── hosts.conf
└── update-manager.conf

⚙️ Configuration

Default config:

/etc/update-manager.conf

Example:

HOSTS_FILE="/opt/update-manager/hosts.conf"
SSH_OPTIONS="-o BatchMode=yes -o ConnectTimeout=5"

🔧 Commands

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


⚙️ 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

git clone https://github.com/your-repo/update-manager.git
cd update-manager

2. Create install directory

sudo mkdir -p /opt/update-manager

3. Copy files

sudo cp update-manager.sh /opt/update-manager/
sudo cp update-manager-ui.sh /opt/update-manager/ 2>/dev/null

4. Make executable

sudo chmod +x /opt/update-manager/update-manager.sh
sudo chmod +x /opt/update-manager/update-manager-ui.sh 2>/dev/null

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

sudo apt update && sudo apt install -y whiptail openssh-client

7. First run (creates config)

update-manager check

Quick Start (1 minute)

Edit hosts file

nano /opt/update-manager/hosts.conf

Example:

# 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

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):

ssh-keygen

Copy key to hosts:

ssh-copy-id user@host

Test access:

ssh user@host

✔ No password prompt = ready


🖥️ Terminal UI

Interactive menu for managing hosts.

Start UI

update-manager-ui

UI Features

  • Check all hosts
  • View hosts file
  • Edit hosts file
  • Add host
  • Remove host

📁 File Structure

/opt/update-manager/
├── update-manager.sh
├── update-manager-ui.sh
├── hosts.conf
└── update-manager.conf

⚙️ Configuration

Default config:

/etc/update-manager.conf

Example:

HOSTS_FILE="/opt/update-manager/hosts.conf"
SSH_OPTIONS="-o BatchMode=yes -o ConnectTimeout=5"

🔧 Commands

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)
  • Ntfy messages
  • Optional web UI

❤️ 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

git clone https://github.com/your-repo/update-manager.git
cd update-manager

2. Create install directory

sudo mkdir -p /opt/update-manager

3. Copy files

sudo cp update-manager.sh /opt/update-manager/
sudo cp update-manager-ui.sh /opt/update-manager/ 2>/dev/null

4. Make executable

sudo chmod +x /opt/update-manager/update-manager.sh
sudo chmod +x /opt/update-manager/update-manager-ui.sh 2>/dev/null

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

sudo apt update && sudo apt install -y whiptail openssh-client

7. First run (creates config)

update-manager check

Quick Start (1 minute)

Edit hosts file

nano /opt/update-manager/hosts.conf

Example:

# 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

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):

ssh-keygen

Copy key to hosts:

ssh-copy-id user@host

Test access:

ssh user@host

✔ No password prompt = ready


🖥️ Terminal UI

Interactive menu for managing hosts.

Start UI

update-manager-ui

UI Features

  • Check all hosts
  • View hosts file
  • Edit hosts file
  • Add host
  • Remove host

📁 File Structure

/opt/update-manager/
├── update-manager.sh
├── update-manager-ui.sh
├── hosts.conf
└── update-manager.conf

⚙️ Configuration

Default config:

/etc/update-manager.conf

Example:

HOSTS_FILE="/opt/update-manager/hosts.conf"
SSH_OPTIONS="-o BatchMode=yes -o ConnectTimeout=5"

🔧 Commands

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