Skip to content

mahype/update-watcher

Repository files navigation

Update-Watcher

CI Release License Go Docs

A modular CLI tool that checks for available software updates and sends notifications. Designed to run on servers, scheduled via cron. Single binary, no runtime dependencies.

Full Documentation

Features

  • 15 Checkers -- APT, DNF, Pacman, Zypper, APK, macOS, Homebrew, npm, Snap, Flatpak, Docker, WordPress, Web Projects, Distro Release, OpenClaw
  • 16 Notifiers -- Slack, Discord, Teams, Telegram, Email, ntfy, Pushover, Gotify, Home Assistant, Google Chat, Matrix, Mattermost, Rocket.Chat, PagerDuty, Pushbullet, Webhook
  • Zero dependencies -- Single static binary, no runtime requirements
  • Multi-platform -- Linux (amd64, arm64, armv7), macOS (amd64, arm64)
  • Interactive setup -- Menu-driven wizard with auto-detection
  • Self-update -- Update the binary itself from GitHub releases
  • Cron scheduling -- Built-in cron job management

Checkers

Checker Description
🐧 APT Debian, Ubuntu
🐧 DNF Fedora, RHEL
🐧 Pacman Arch Linux
🐧 Zypper openSUSE
🐧 APK Alpine Linux
🍎 macOS macOS Softwareupdate
🍺 Homebrew macOS & Linux
📦 npm Global npm packages
📦 Snap Snap packages
📦 Flatpak Flatpak applications
🐳 Docker Container image updates
📝 WordPress Core, plugins & themes
📦 Web Projects npm, yarn, pnpm, Composer
💿 Distro Release OS version upgrades
🐾 OpenClaw OpenClaw updates

Notifiers

Notifier Notifier
💬 Slack 💬 Google Chat
💬 Discord 🔗 Matrix
💬 Microsoft Teams 💬 Mattermost
✈️ Telegram 🚀 Rocket.Chat
📧 E-Mail (SMTP) 🚨 PagerDuty
🔔 ntfy 📌 Pushbullet
📲 Pushover 🌐 Webhook
📡 Gotify 🏠 Home Assistant

Quick Install

curl -sSL https://raw.githubusercontent.com/mahype/update-watcher/main/scripts/install.sh | bash

With server setup (dedicated user, sudoers, cron):

curl -sSL https://raw.githubusercontent.com/mahype/update-watcher/main/scripts/install.sh | bash -s -- --server

Without server setup (binary only):

curl -sSL https://raw.githubusercontent.com/mahype/update-watcher/main/scripts/install.sh | bash -s -- --no-server

Quick Start

Desktop / macOS

# Interactive setup wizard
update-watcher setup

# Run checks (notifications suppressed)
update-watcher run --notify=false

# Schedule daily checks at 7:00 AM
update-watcher install-cron

Linux server (after --server install)

The installer creates a dedicated update-watcher system user — no login shell, no sudo rights. Run all commands as this user so config, cron job, and process are owned by it, not root.

# Interactive setup wizard
sudo -u update-watcher update-watcher setup

# Run checks (notifications suppressed)
sudo -u update-watcher update-watcher run --notify=false

# Schedule daily checks at 7:00 AM
sudo -u update-watcher update-watcher install-cron

Documentation

The full documentation covers installation, configuration, all checkers and notifiers, CLI reference, server setup, and more:

https://mahype.github.io/update-watcher/

Section Description
Getting Started Installation, quickstart, first run
Configuration YAML reference, environment variables, security
Checkers All 15 update checkers with options
Notifiers All 16 notification channels with setup guides
CLI Reference Commands, flags, exit codes
Server Setup Linux, macOS, cron scheduling
Contributing Architecture, adding checkers/notifiers

License

MIT

About

Watch updates via command line

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors