You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+8Lines changed: 8 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,6 +2,14 @@
2
2
3
3
All notable changes to UnraidMonitor will be documented in this file.
4
4
5
+
## [0.12.0] - 2026-06-03
6
+
7
+
### Added
8
+
-**Image-update detection** (opt-in: `image_updates.enabled`) — polls registries every 24 hours (configurable via `image_updates.poll_interval_hours`), sends a batched digest alert when newer images are available, with per-container Pull buttons
9
+
-**Auto-heal** (opt-in: `auto_heal.containers`) — automatically restarts opted-in containers that report a Docker HEALTHCHECK `unhealthy` status; storm guard prevents restart loops (configurable `max_restarts` / `window_minutes`); protected containers are never touched
10
+
-**Richer startup message** — on first boot after a version upgrade, shows a "What's new" section with user-facing highlights; persists last-announced version to `data/announced_version.json`
11
+
-**CI test pipeline** — GitHub Actions workflow runs tests, ruff lint, and mypy type-check on every push and pull request
src/utils/rate_limiter.py - PerUserRateLimiter for per-user API rate limiting
86
88
src/utils/sanitize.py - Prompt injection prevention, sensitive data redaction
87
89
src/utils/telegram_retry.py - Telegram API retry logic for rate limit handling
90
+
src/utils/version_store.py - read/write data/announced_version.json for startup What's new gate (atomic)
88
91
89
92
## Project Overview
90
93
91
-
Unraid Server Monitor Bot (v0.11.1) - A Docker-based Telegram bot for monitoring Unraid servers. Monitors Docker containers (events, logs, resources) and Unraid server health (CPU, memory, disks, array, UPS). Uses multi-provider LLM support (Anthropic, OpenAI, Ollama) for AI-powered diagnostics and natural language interaction. Sends alerts via Telegram with quick-action buttons.
94
+
Unraid Server Monitor Bot (v0.12.0) - A Docker-based Telegram bot for monitoring Unraid servers. Monitors Docker containers (events, logs, resources) and Unraid server health (CPU, memory, disks, array, UPS). Uses multi-provider LLM support (Anthropic, OpenAI, Ollama) for AI-powered diagnostics and natural language interaction. Sends alerts via Telegram with quick-action buttons.
92
95
93
96
## Commands
94
97
@@ -191,6 +194,7 @@ Inline keyboard buttons use `prefix:data` format, parsed with `split(":", 1)` to
191
194
-`srv_set:metric:value` (apply server threshold, e.g., `srv_set:cpu_temp:90`, 0 = reset to default)
Data files in `data/`: `mutes.json`, `server_mutes.json`, `array_mutes.json`, `ignored_errors.json`, `model_selection.json` (runtime LLM choice), `chat_ids.json` (persistent Telegram chat IDs for alert delivery)
276
+
Data files in `data/`: `mutes.json`, `server_mutes.json`, `array_mutes.json`, `ignored_errors.json`, `model_selection.json` (runtime LLM choice), `chat_ids.json` (persistent Telegram chat IDs for alert delivery), `announced_version.json` (last-announced bot version for startup What's new gate)
Copy file name to clipboardExpand all lines: README.md
+31-5Lines changed: 31 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -12,19 +12,21 @@ A Telegram bot for monitoring Docker containers and Unraid servers. Get real-tim
12
12
-**Smart Ignore Patterns** - AI-generated patterns to filter known errors, with interactive toggle selection
13
13
-**Multi-Provider LLM** - Switch between Anthropic Claude, OpenAI GPT, or local Ollama models at runtime
14
14
-**Container Control** - Start, stop, restart, and pull containers with inline confirmation buttons
15
+
-**Image-Update Detection** - Opt-in daily digest of containers with newer images available, with Pull buttons
16
+
-**Auto-Heal** - Opt-in automatic restart of unhealthy containers (HEALTHCHECK failures) with storm guard
15
17
-**Unraid Server Monitoring** - CPU/memory, temperatures, UPS status, and array health
16
18
-**Memory Pressure Management** - Automatic container priority handling during high memory
17
19
-**Mute System** - Temporarily silence alerts per container, server, or array
18
20
-**Natural Language Chat** - Ask questions naturally instead of using commands
19
21
-**Interactive Dashboard** - `/manage` hub for status, resources, ignores, and mutes
20
22
-**Sectioned Help** - `/help` with navigable category buttons instead of a text wall
21
23
22
-
## What's New in v0.11.0
24
+
## What's New in v0.12.0
23
25
24
-
-**Server alert action buttons**(v0.10.0) - CPU temperature and usage alerts now include Mute and Adjust Threshold buttons, matching the UX of container and array alerts
25
-
-**Model family system**(v0.10.0) - Use family names like `sonnet`, `haiku`, `opus` instead of dated model IDs; per-feature model switching with `/model chat sonnet`, `/model diagnose haiku`
26
-
-**Dynamic provider resolution**(v0.10.1-0.10.3) - `/model` changes take effect immediately, config persistence fixes, and tool-call translation fixes for Anthropic API
27
-
-**Security hardening**(v0.11.0) - Prompt injection defense for LLM inputs, SSRF protection in setup wizard, race condition fixes in memory monitor, crash tracker memory leak fix, and tighter file permissions
26
+
-**Image-update detection**- Opt-in daily digest of containers with newer images available, with per-container Pull buttons (`image_updates.enabled: true`)
27
+
-**Auto-heal**- Opt-in automatic restart of containers that fail their Docker HEALTHCHECK, with a storm guard that gives up after configurable retries (`auto_heal.containers: [...]`)
28
+
-**Richer startup message**- On first boot after an upgrade, shows a "What's new" summary so you always know what changed
29
+
-**CI test pipeline**- Tests, lint, and type-check now run automatically on every push and pull request
28
30
29
31
See the [changelog](CHANGELOG.md) for full details.
30
32
@@ -350,6 +352,30 @@ unraid:
350
352
ups_battery: 30# Alert below this %
351
353
```
352
354
355
+
### Image-Update Detection
356
+
357
+
Checks once per day (configurable) whether a newer image is available for watched containers. Sends a single batched digest message with Pull buttons. Disabled by default — opt in per-deployment.
358
+
359
+
```yaml
360
+
image_updates:
361
+
enabled: false # Set true to enable daily image-update checks
362
+
poll_interval_hours: 24# How often to check (minimum 1)
363
+
```
364
+
365
+
### Auto-Heal
366
+
367
+
Automatically restarts containers that report a Docker HEALTHCHECK `unhealthy` status. A per-container storm guard gives up after `max_restarts` within `window_minutes` and sends an escalation alert. Protected containers are never touched regardless of this setting.
368
+
369
+
```yaml
370
+
auto_heal:
371
+
enabled: true # Master switch
372
+
containers: # List of container names to auto-heal (opt-in)
373
+
- radarr
374
+
- sonarr
375
+
max_restarts: 3 # Give up after this many restarts in the window
376
+
window_minutes: 60 # Rolling window for the restart count
0 commit comments