No description
Every classification returned "HTTP Error 404" because the configured model gemma4:26b-64k no longer exists on the Ollama host: the tag was retired upstream and the local weights were deleted, so all pending updates fell back to manual review. Switch to the current gemma4:26b tag (25.2B, 262k context) and make it explicit in .env so the classifier no longer depends on the code default matching reality. PieFed intermittently returned an empty body, which surfaced as a current version error in the digest. Retry version fetches with a short backoff so one bad response no longer triggers an alert. Leave-one-out validation for the new model: immich 6/7 (the miss is the conditional-breaking example where the model follows the written rule that thresholds below the running version do not apply), freshrss 6/6, uptime-kuma 4/4. |
||
|---|---|---|
| services | ||
| systemd | ||
| tests | ||
| update_monitor | ||
| .env.sample | ||
| .gitignore | ||
| AGENTS.md | ||
| BACKLOG.md | ||
| pyproject.toml | ||
| README.md | ||
| test_classifier.py | ||
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