Перейти к содержимому

Notifly для рядового пользователя

Notifly полезен не только админам и разработчикам. Любой пользователь Linux, macOS или Windows может настроить себе:

  • сообщение, когда ноутбук разряжен или поставлен на зарядку,
  • алерт о том, что VPN отвалился,
  • push, когда скачивание/конвертация закончились,
  • уведомление при пропадании интернета (с домашней NAS),
  • умные напоминания через at или Pomodoro-таймеры.
СценарийКогда полезно
Батарея ноутбукаЧтобы не пропустить разряд во время работы за вторым монитором
VPNЗаметить отвалившийся VPN раньше, чем сорвётся встреча
Завершение скачиванияyt-dlp, wget, curl, конвертация видео
Потеря интернетаPush с резервного канала (LTE-модема) когда упал основной
Напоминания и PomodoroГибкая замена «напоминалкам» в телефоне
  • Все скрипты — в ~/bin/ или /usr/local/bin/, токен — в ~/.notifly.env (chmod 600).
  • Используем тот же notifly-send shell-wrapper, что и в разделе для админов.
~/.notifly.env
export NOTIFLY_URL="https://your-notifly.example.com"
export NOTIFLY_TOKEN="AGdjfk_L.dKe8q"
# ~/bin/notifly-send "title" "message" [priority]
#!/usr/bin/env bash
set -eu; set -a; source ~/.notifly.env; set +a
T="${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

\u0412 Windows-\u0432\u0435\u0440\u0441\u0438\u0438 \u0440\u0435\u0446\u0435\u043f\u0442\u043e\u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f PowerShell-\u0444\u0443\u043d\u043a\u0446\u0438\u044f Send-Notifly. \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u0442\u0435 \u0435\u0451 \u043e\u0434\u0438\u043d \u0440\u0430\u0437:

Окно терминала
# 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. Подгружаем при старте — добавляем в $PROFILE
Add-Content $PROFILE ". `$env:USERPROFILE\Documents\WindowsPowerShell\Notifly.ps1"

\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430:

Окно терминала
Send-Notifly -Title "Тест" -Message "Привет с $env:COMPUTERNAME" -Priority 5

\u0414\u0430\u043b\u044c\u0448\u0435 \u0432\u0441\u0435 \u0440\u0435\u0446\u0435\u043f\u0442\u044b \u0432 \u044d\u0442\u043e\u043c \u0440\u0430\u0437\u0434\u0435\u043b\u0435 \u0441\u0441\u044b\u043b\u0430\u044e\u0442\u0441\u044f \u043d\u0430 \u044d\u0442\u0443 \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0438 \u043f\u043b\u0430\u043d\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 Task Scheduler.