No description
Find a file
Jeena cbb4b03d66 fix: Adapt FreshRSS login to reversed challenge order
FreshRSS upstream commit 476e57b reversed the concatenation order
of the bcrypt hash and nonce in the login challenge for safer
password evaluation. Update our challenge computation to match
the new hash+nonce order.
2026-03-19 04:17:42 +00:00
systemd chore: Rename project to service-update-alerts 2026-03-12 15:50:49 +00:00
tests chore: Rename project to service-update-alerts 2026-03-12 15:50:49 +00:00
.env.sample feat: Add Uptime Kuma version check via Socket.IO 2026-03-19 04:17:18 +00:00
.gitignore feat: Add authenticated service checks 2026-03-12 13:57:37 +00:00
AGENTS.md feat: Add update checker tooling 2026-03-12 12:50:08 +00:00
BACKLOG.md feat: Add Uptime Kuma version check via Socket.IO 2026-03-19 04:17:18 +00:00
check_updates.py fix: Adapt FreshRSS login to reversed challenge order 2026-03-19 04:17:42 +00:00
pyproject.toml feat: Add Uptime Kuma version check via Socket.IO 2026-03-19 04:17:18 +00:00
README.md feat: Add Uptime Kuma version check via Socket.IO 2026-03-19 04:17:18 +00:00
services.yaml feat: Add Uptime Kuma version check via Socket.IO 2026-03-19 04:17:18 +00:00

service-update-alerts

Small Python script to compare running service versions against upstream releases.

Requirements

  • Python 3.10+

Setup

Create and activate a virtual environment, then install dependencies:

python -m venv .venv
source .venv/bin/activate
pip install -e .[dev]

Copy .env.sample to .env and fill required values. Export the variables before running the script:

export PAPERLESS_API_TOKEN=...
export FRESHRSS_USERNAME=...
export FRESHRSS_PASSWORD=...
export MATRIX_HOMESERVER=...
export MATRIX_ROOM_ID=...
export MATRIX_ACCESS_TOKEN=...
export UPTIME_KUMA_PUSH_URL=...
export UPTIME_KUMA_USERNAME=...
export UPTIME_KUMA_PASSWORD=...

The script also reads .env automatically if present.

The Matrix bot will attempt to join the configured room automatically if it is not already a member.

Usage

python3 check_updates.py --config services.yaml
python3 check_updates.py --config services.yaml --all

Tests

python -m pytest

To run live integration checks against the real services:

RUN_LIVE_TESTS=1 python -m pytest tests/test_live_services.py

Systemd (user)

Copy the unit files and enable the timer:

mkdir -p ~/.config/systemd/user
cp systemd/service-update-alerts.service ~/.config/systemd/user/
cp systemd/service-update-alerts.timer ~/.config/systemd/user/
systemctl --user daemon-reload
systemctl --user enable --now service-update-alerts.timer

View logs:

journalctl --user -u service-update-alerts.service