diff --git a/README.md b/README.md index c19951d..b1d1440 100644 --- a/README.md +++ b/README.md @@ -2,30 +2,112 @@ Lightweight SSH-based update manager for Linux systems. +--- + ## Features - Check for updates across multiple hosts -- Run upgrades remotely via SSH -- Run autoremove -- Simple inventory file +- SSH-based (no agents) +- Simple host inventory - No external dependencies -## Usage +--- -./update-manager.sh check -./update-manager.sh update -./update-manager.sh autoremove -./update-manager.sh full +## Installation -## Hosts file format +git clone +cd update-manager +chmod +x update-manager.sh +./update-manager.sh install -name|ip|ssh_user +This will: + +- Install the tool in /opt/update-manager +- Create global command: update-manager +- Create config files if missing + +--- + +## Configuration + +Edit hosts: + +nano /opt/update-manager/hosts.conf + +Format: + +name ip ssh_user Example: -server1|192.168.1.10|user +server1 192.168.1.10 user +server2 192.168.1.20 user + +--- + +## SSH (required) + +Passwordless SSH must be configured. + +ssh-keygen -t ed25519 +ssh-copy-id user@192.168.1.10 + +Repeat for all hosts. + +Test: + +ssh user@192.168.1.10 + +Should work without password. + +--- + +## Usage + +update-manager check + +--- + +## Output + +server1 🔴 2 updates +server2 🟢 up-to-date +server3 ❌ connection failed + +--- ## Config -HOSTS_FILE="${HOSTS_FILE:-/opt/update-manager/hosts.conf}" -NTFY_URL="" +/etc/update-manager.conf + +Default: + +HOSTS_FILE="/opt/update-manager/hosts.conf" +SSH_OPTIONS="-o BatchMode=yes -o ConnectTimeout=5" + +--- + +## Notes + +- hosts.conf and update-manager.conf are local files (not in Git) +- .example files are templates +- Existing config is not overwritten on reinstall + +--- + +## Roadmap + +- update command +- parallel execution +- scheduled checks +- logging integration + +--- + +## Philosophy + +Keep it simple. + +- No agents +- No dependencies +- Just SSH