Notifly для рядового пользователя
Notifly полезен не только админам и разработчикам. Любой пользователь Linux, macOS или Windows может настроить себе:
- сообщение, когда ноутбук разряжен или поставлен на зарядку,
- алерт о том, что VPN отвалился,
- push, когда скачивание/конвертация закончились,
- уведомление при пропадании интернета (с домашней NAS),
- умные напоминания через
atили Pomodoro-таймеры.
Доступные рецепты
Заголовок раздела «Доступные рецепты»| Сценарий | Когда полезно |
|---|---|
| Батарея ноутбука | Чтобы не пропустить разряд во время работы за вторым монитором |
| VPN | Заметить отвалившийся VPN раньше, чем сорвётся встреча |
| Завершение скачивания | yt-dlp, wget, curl, конвертация видео |
| Потеря интернета | Push с резервного канала (LTE-модема) когда упал основной |
| Напоминания и Pomodoro | Гибкая замена «напоминалкам» в телефоне |
| Перегрев CPU/GPU | Раньше троттлинга и аварийного выключения |
| Завершение рендера | ffmpeg, Blender, экспорт видео, make |
| Цена и наличие товара | Отслеживание цены и появления в наличии |
| Подключение USB | Кто-то вставил флешку, пока вас нет |
| События умного дома | Home Assistant, MQTT, датчики |
Принципы
Заголовок раздела «Принципы»- Все скрипты — в
~/bin/или/usr/local/bin/, токен — в~/.notifly.env(chmod 600). - Используем тот же
notifly-sendshell-wrapper, что и в разделе для админов.
export NOTIFLY_URL="https://your-notifly.example.com"export NOTIFLY_TOKEN="AGdjfk_L.dKe8q"# ~/bin/notifly-send "title" "message" [priority]#!/usr/bin/env bashset -eu; set -a; source ~/.notifly.env; set +aT="${1:?title}"; M="${2:?message}"; P="${3:-5}"curl -fsS -X POST "$NOTIFLY_URL/message?token=$NOTIFLY_TOKEN" \ -H "Content-Type: application/json" \ --data "$(jq -n --arg t "$T" --arg m "$M" --argjson p "$P" \ '{title:$t, message:$m, priority:$p}')" >/dev/nullДля пользователей Windows
Заголовок раздела «Для пользователей Windows»В Windows-версии рецептов используется PowerShell-функция Send-Notifly.
Настройте её один раз:
# 1. Кладём конфиг в профиль пользователя@{ url = "https://your-notifly.example.com" token = "AGdjfk_L.dKe8q"} | ConvertTo-Json | Set-Content "$env:USERPROFILE\.notifly.json"
# 2. Кладём функцию рядом и грузим её при старте PowerShell$fn = @'function Send-Notifly { param([Parameter(Mandatory)][string]$Title, [string]$Message="", [int]$Priority=5) $cfg = Get-Content "$env:USERPROFILE\.notifly.json" -Raw | ConvertFrom-Json $body = @{ title=$Title; message=$Message; priority=$Priority } | ConvertTo-Json -Compress Invoke-RestMethod -Method Post -Uri "$($cfg.url)/message?token=$($cfg.token)" ` -ContentType "application/json; charset=utf-8" ` -Body ([Text.Encoding]::UTF8.GetBytes($body)) -TimeoutSec 10 | Out-Null}'@New-Item -ItemType Directory -Path "$env:USERPROFILE\Documents\WindowsPowerShell" -Force | Out-Null$fn | Set-Content "$env:USERPROFILE\Documents\WindowsPowerShell\Notifly.ps1"
# 3. Подгружаем при старте — добавляем в $PROFILEAdd-Content $PROFILE ". `$env:USERPROFILE\Documents\WindowsPowerShell\Notifly.ps1"Проверка:
Send-Notifly -Title "Тест" -Message "Привет с $env:COMPUTERNAME" -Priority 5Дальше все рецепты в этом разделе ссылаются на эту функцию и планируются через Task Scheduler.