65 lines
1.8 KiB
Markdown
65 lines
1.8 KiB
Markdown
# truenas-catalog-notify
|
|
|
|
Lightweight TrueNAS Apps catalog watcher that sends Telegram alerts when the catalog changes.
|
|
|
|
## What it tracks
|
|
|
|
The watcher pulls `https://apps.truenas.com/catalog` over plain HTTP (no browser/emulation), parses app cards, and compares these fields against a saved snapshot:
|
|
|
|
- app name
|
|
- app URL
|
|
- train
|
|
- added date
|
|
- summary text
|
|
|
|
On changes, it sends Telegram messages with:
|
|
|
|
- one detailed message per newly added app (name, URL, train, added date, catalog summary, and page title)
|
|
- screenshot images from the app page, posted as Telegram photos (up to the configured per-app limit)
|
|
- removed apps (`-`)
|
|
- updated apps (`~`) and field-level diffs
|
|
|
|
## Environment variables
|
|
|
|
- `TELEGRAM_BOT_TOKEN` (required for notifications)
|
|
- `TELEGRAM_CHAT_ID` (required for notifications)
|
|
- `CHECK_INTERVAL_SECONDS` (default: `1800`)
|
|
- `STATE_PATH` (default: `/data/catalog_state.json`)
|
|
- `CATALOG_URL` (default: `https://apps.truenas.com/catalog`)
|
|
- `REQUEST_TIMEOUT_SECONDS` (default: `30`)
|
|
- `LOG_LEVEL` (default: `INFO`)
|
|
- `MAX_SCREENSHOTS_PER_APP` (default: `3`)
|
|
|
|
## Build
|
|
|
|
```bash
|
|
docker build -t truenas-catalog-notify .
|
|
```
|
|
|
|
## Run
|
|
|
|
```bash
|
|
docker run -d \
|
|
--name truenas-catalog-notify \
|
|
-e TELEGRAM_BOT_TOKEN=123456:ABC... \
|
|
-e TELEGRAM_CHAT_ID=123456789 \
|
|
-e CHECK_INTERVAL_SECONDS=1800 \
|
|
-v truenas-catalog-notify-data:/data \
|
|
--restart unless-stopped \
|
|
truenas-catalog-notify
|
|
```
|
|
|
|
## Notes
|
|
|
|
- First run only stores the initial snapshot (no notification).
|
|
- Notifications start when a later check differs from the saved snapshot.
|
|
- If Telegram variables are missing, the watcher logs changes but skips sending messages.
|
|
- If you hit permissions on `/data/catalog_state.json`, rebuild and recreate the container with the latest image.
|
|
|
|
## Rebuild after changes
|
|
|
|
```bash
|
|
docker compose build --no-cache
|
|
docker compose up -d --force-recreate
|
|
```
|