Lightweight SSH-based update manager for Linux systems. Supports checking updates, upgrading packages, and running autoremove across multiple hosts from a single script.
Find a file
2026-03-25 13:36:53 +00:00
docs fix: rename diagram file 2026-03-18 21:54:30 +01:00
images Fix UpdateManager logo filename 2026-03-25 13:33:27 +00:00
log Add logging, dialog UI, README updates and initial release 2026-03-18 19:25:01 +01:00
.gitignore Initial commit: update manager with examples and README 2026-03-18 13:09:14 +01:00
CHANGELOG.md docs: add UI screenshots and logging section 2026-03-18 21:02:45 +01:00
dialogrc Add dialog theme file 2026-03-18 20:02:44 +01:00
hosts.conf.example Add example config files 2026-03-18 13:27:39 +01:00
LICENSE Add GPL v3 license (NodeFox) 2026-03-18 16:04:43 +01:00
README.md Fixed header file 2026-03-25 13:36:53 +00:00
update-manager-ui.sh docs: add UI screenshots and logging section 2026-03-18 21:00:38 +01:00
update-manager.conf.example Clean config handling and use example files 2026-03-18 13:47:57 +01:00
update-manager.sh Add logging, dialog UI, README updates and initial release 2026-03-18 19:25:01 +01:00

Simple CLI tool to check and manage updates across multiple Ubuntu systems over SSH.

Built for Lanx environments lightweight, fast and no unnecessary dependencies.

---

📚 Table of Contents


Features

  • Check updates on multiple hosts
  • Run updates remotely over SSH
  • Interactive CLI menu (dialog-based UI)
  • Centralized logging
  • Simple config files
  • No agents required
  • Works with existing SSH setup

Update Manager UI

Main menu

Main menu

Log menu

Log menu

Lightweight • No dependencies • Works over SSH


Quick Install

git clone https://github.com/YOUR-USER/update-manager.git
cd update-manager

sudo apt update
sudo apt install dialog openssh-client

sudo mkdir -p /opt/update-manager
sudo cp update-manager.sh update-manager-ui.sh dialogrc /opt/update-manager/

sudo chmod +x /opt/update-manager/update-manager.sh
sudo chmod +x /opt/update-manager/update-manager-ui.sh

sudo ln -s /opt/update-manager/update-manager.sh /usr/local/bin/update-manager
sudo ln -s /opt/update-manager/update-manager-ui.sh /usr/local/bin/update-manager-ui

SSH Setup (Required)

Update Manager uses SSH to connect to your hosts.

You must have SSH key-based authentication set up (no password prompts).

Generate SSH key (if not already done)

ssh-keygen -t ed25519

Copy key to hosts

ssh-copy-id user@192.168.1.10
ssh-copy-id user@192.168.1.20
ssh-copy-id user@192.168.1.30

Test connection

ssh user@192.168.1.10

You should be able to connect without entering a password.

⚠️ If SSH is not configured, the tool will fail or hang during execution.


Configuration

Copy config files

cp update-manager.conf.example update-manager.conf
cp hosts.conf.example hosts.conf

Edit hosts

nano hosts.conf

Example:

# name        ip              user
server1       192.168.1.10    user
server2       192.168.1.20    user
server3       192.168.1.30    user

Usage

Check updates

update-manager check

Start UI

update-manager-ui

Logging

Log file location:

/opt/update-manager/log/update-manager.log

View log:

less /opt/update-manager/log/update-manager.log

Follow log:

tail -f /opt/update-manager/log/update-manager.log

File Structure

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

How it works

  • Uses SSH to connect to each host
  • Runs apt commands remotely
  • Logs results locally
  • No agents or services needed
  • Designed for simple and efficient operations

Requirements

  • SSH access to all hosts
  • SSH keys recommended (no password prompts)
  • Ubuntu/Debian-based systems

Future ideas

  • 🔔 Notifications (ntfy / push alerts)
  • 🌐 Web interface
  • 📧 Email reporting
  • 📊 Basic monitoring (status, last check, pending updates)
  • 🧩 Plugin system (extensible modules)
  • 🔐 Security & compliance checks
  • 🤖 AI integration (Lanx AI)

❤️ Credits

Built with ❤️ for Lanx by NodeFox 🦊
Maintained by Eddie Nielsen

Learn. Adopt. Survive. Share.


License

This project is licensed under the GNU GPL v3 License.

See the LICENSE file for full details.