update-manager/README.md

238 lines
4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 🖥️ Update Manager
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](#features)
* [Update Manager UI](#update-manager-ui)
* [Quick Install](#quick-install)
* [SSH Setup](#ssh-setup-required)
* [Configuration](#configuration)
* [Usage](#usage)
* [Logging](#logging)
* [File Structure](#file-structure)
* [How it works](#how-it-works)
* [Requirements](#requirements)
* [Future ideas](#future-ideas)
* [License](#license)
---
## 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
<p align="center">
<img src="docs/images/menu-main.png" width="50%" alt="Main menu">
</p>
### Log menu
<p align="center">
<img src="docs/images/menu-logs.png" width="50%" alt="Log menu">
</p>
<p align="center">
<em>Lightweight • No dependencies • Works over SSH</em>
</p>
---
## Quick Install
```bash
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)
```bash
ssh-keygen -t ed25519
```
---
### Copy key to hosts
```bash
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
```bash
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
```bash
cp update-manager.conf.example update-manager.conf
cp hosts.conf.example hosts.conf
```
---
### Edit hosts
```bash
nano hosts.conf
```
Example:
```bash
# name ip user
server1 192.168.1.10 user
server2 192.168.1.20 user
server3 192.168.1.30 user
```
---
## Usage
### Check updates
```bash
update-manager check
```
### Start UI
```bash
update-manager-ui
```
---
## Logging
Log file location:
```bash
/opt/update-manager/log/update-manager.log
```
View log:
```bash
less /opt/update-manager/log/update-manager.log
```
Follow log:
```bash
tail -f /opt/update-manager/log/update-manager.log
```
---
## File Structure
```bash
/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)
---
## License
This project is licensed under the GNU GPL v3 License.
See the LICENSE file for full details.
---
## Author
Built with ❤️ for [Lanx](https://lanx.dk) by **NodeFox** 🦊
Maintained by Eddie Nielsen
Feel free to contribute, suggest improvements or fork the project.