



<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Archiwa powiadomienia &#8226; Z IT Wzięte</title>
	<atom:link href="https://zitwziete.org/tag/powiadomienia/feed/" rel="self" type="application/rss+xml" />
	<link>https://zitwziete.org/tag/powiadomienia/</link>
	<description></description>
	<lastBuildDate>Wed, 18 Mar 2026 20:04:31 +0000</lastBuildDate>
	<language>pl-PL</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.2</generator>

<image>
	<url>https://zitwziete.org/wp-content/uploads/2021/10/cropped-logo1-bez-tla-biale-32x32.png</url>
	<title>Archiwa powiadomienia &#8226; Z IT Wzięte</title>
	<link>https://zitwziete.org/tag/powiadomienia/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>ntfy – Darmowe powiadomienia push z serwera na telefon</title>
		<link>https://zitwziete.org/ntfy-darmowe-powiadomienia-push-z-serwera-na-telefon/</link>
					<comments>https://zitwziete.org/ntfy-darmowe-powiadomienia-push-z-serwera-na-telefon/#respond</comments>
		
		<dc:creator><![CDATA[ZITWziete]]></dc:creator>
		<pubDate>Sun, 25 Jan 2026 21:18:54 +0000</pubDate>
				<category><![CDATA[Poradniki]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Tutoriale]]></category>
		<category><![CDATA[moje 0.02 pln]]></category>
		<category><![CDATA[porady]]></category>
		<category><![CDATA[powiadomienia]]></category>
		<guid isPermaLink="false">https://zitwziete.org/?p=988</guid>

					<description><![CDATA[<p>Alerty ze serwera lub ze skryptów na smartfon bez żadnych kosztów i konfiguracji. Genialny patent.</p>
<p>Artykuł <a href="https://zitwziete.org/ntfy-darmowe-powiadomienia-push-z-serwera-na-telefon/">ntfy – Darmowe powiadomienia push z serwera na telefon</a> pochodzi z serwisu <a href="https://zitwziete.org">Z IT Wzięte</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><strong>Chcesz dostawać alerty z Zabbix prosto na telefon? Masz dość sprawdzania maili z monitoringu?</strong> ntfy.sh to darmowy serwis powiadomień push, który wysyła alerty z serwera Linux bezpośrednio na smartfon – bez rejestracji, bez konfiguracji SMTP, bez opłat za SMS.</p>



<p class="wp-block-paragraph"><strong>Powiadomienia push z serwera na telefon </strong>– zarówno przez integrację z Zabbix, jak i w własnych skryptach bash.</p>



<h2 class="wp-block-heading">Czym jest ntfy i jak działa?</h2>



<p class="wp-block-paragraph">ntfy (czytaj: &#8222;notify&#8221;) to <strong>darmowy serwis powiadomień push</strong> oparty o prosty protokół HTTP. Zamiast konfigurować serwer SMTP czy płacić za bramkę SMS, wysyłasz jedno żądanie curl:</p>



<pre class="wp-block-code"><code>curl -d "Backup zakończony" ntfy.sh/moj-serwer-xyz123</code></pre>



<p class="wp-block-paragraph"><strong>Jedna komenda = powiadomienie push na telefonie.</strong> Bez konta, bez tokena, bez konfiguracji serwera.</p>



<p class="wp-block-paragraph">Bajecznie proste do zastosowania praktycznie we wszytkim. </p>



<h3 class="wp-block-heading">Dlaczego ntfy zamiast powiadomień email czy SMS?</h3>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Metoda</th><th>Opóźnienie</th><th>Koszt</th><th>Konfiguracja</th></tr></thead><tbody><tr><td>Email</td><td>1-15 minut</td><td>Darmowy</td><td>Wymaga SMTP</td></tr><tr><td>SMS (smsapi, twilio)</td><td>Sekundy</td><td>~0.07 PLN/sms</td><td>API + konto</td></tr><tr><td><strong>ntfy</strong></td><td><strong>Sekundy</strong></td><td><strong>Darmowy</strong></td><td><strong>Tylko curl</strong></td></tr></tbody></table></figure>



<p class="wp-block-paragraph">Dla administratora serwera Linux czy VPS to game changer – <strong>alerty ze serwera na smartfon</strong> bez żadnych kosztów i konfiguracji.</p>



<h3 class="wp-block-heading"></h3>



<h2 class="wp-block-heading">Konfiguracja aplikacji mobilnej</h2>



<ol class="wp-block-list">
<li>Pobierz aplikację <strong>ntfy</strong>:</li>
</ol>



<ul class="wp-block-list">
<li>Android: <a href="https://play.google.com/store/apps/details?id=io.heckel.ntfy">Google Play</a> lub F-Droid</li>



<li>iOS: <a href="https://apps.apple.com/app/ntfy/id1625396347">App Store</a></li>
</ul>



<ol class="wp-block-list">
<li>Kliknij <strong>+</strong> i wpisz nazwę tematu (np. <code>serwer-prod-x7k9m2</code>)</li>



<li>Gotowe – każdy POST na <code>ntfy.sh/serwer-prod-x7k9m2</code> ląduje na telefonie</li>
</ol>



<p class="wp-block-paragraph"><strong>Ważne:</strong> Używaj losowych nazw tematów! Tematy są publiczne – kto zna nazwę, może subskrybować.</p>



<h2 class="wp-block-heading">Integracja ntfy z Zabbix – powiadomienia push zamiast email</h2>



<p class="wp-block-paragraph">Standardowe <strong>powiadomienia Zabbix przez email</strong> są wolne i często ignorowane. SMS-y kosztują. ntfy daje <strong>natychmiastowe alerty na telefon za darmo</strong>.</p>



<h3 class="wp-block-heading">Krok 1: Skrypt alertów dla Zabbix</h3>



<p class="wp-block-paragraph">Sprawdź katalog alertscripts:</p>



<pre class="wp-block-code"><code>grep AlertScriptsPath /etc/zabbix/zabbix_server.conf
# Domyślnie: /usr/lib/zabbix/alertscripts</code></pre>



<p class="wp-block-paragraph">Utwórz plik <code>/usr/lib/zabbix/alertscripts/ntfy.sh</code>:</p>



<pre class="wp-block-code"><code>#!/bin/bash

# ========== KONFIGURACJA ==========
# Wpisz własną, unikalną nazwę tematu!
NTFY_TOPIC="zabbix-TWOJ-UNIKALNY-STRING"
# ==================================

TO="$1"
SUBJECT="$2"
MESSAGE="$3"

# Mapowanie severity Zabbix na priorytety ntfy
case "$SUBJECT" in
    *Disaster*|*DISASTER*)
        PRIORITY="urgent"
        TAGS="rotating_light,disaster"
        ;;
    *High*|*HIGH*)
        PRIORITY="high"
        TAGS="warning,high"
        ;;
    *Average*|*AVERAGE*)
        PRIORITY="default"
        TAGS="orange_circle,average"
        ;;
    *Warning*|*WARNING*)
        PRIORITY="low"
        TAGS="yellow_circle,warning"
        ;;
    *OK*|*Resolved*)
        PRIORITY="low"
        TAGS="white_check_mark,resolved"
        ;;
    *)
        PRIORITY="default"
        TAGS="bell"
        ;;
esac

# Wysłanie powiadomienia push
curl -s \
    -H "Title: ${SUBJECT}" \
    -H "Priority: ${PRIORITY}" \
    -H "Tags: ${TAGS}" \
    -d "${MESSAGE}" \
    "https://ntfy.sh/${NTFY_TOPIC}"

exit 0</code></pre>



<p class="wp-block-paragraph">Nadaj uprawnienia:</p>



<pre class="wp-block-code"><code>chmod +x /usr/lib/zabbix/alertscripts/ntfy.sh
chown zabbix:zabbix /usr/lib/zabbix/alertscripts/ntfy.sh</code></pre>



<p class="wp-block-paragraph">Test (jako user zabbix):</p>



<pre class="wp-block-code"><code>sudo -u zabbix /usr/lib/zabbix/alertscripts/ntfy.sh "" "&#91;HIGH] Test alert" "Testowe powiadomienie z Zabbix"</code></pre>



<h3 class="wp-block-heading">Krok 2: Media Type w Zabbix</h3>



<p class="wp-block-paragraph"><strong>Alerts → Media types → Create media type</strong></p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Parametr</th><th>Wartość</th></tr></thead><tbody><tr><td>Name</td><td><code>ntfy</code></td></tr><tr><td>Type</td><td><code>Script</code></td></tr><tr><td>Script name</td><td><code>ntfy.sh</code></td></tr><tr><td>Script parameters</td><td><code>{ALERT.SENDTO}</code></td></tr><tr><td></td><td><code>{ALERT.SUBJECT}</code></td></tr><tr><td></td><td><code>{ALERT.MESSAGE}</code></td></tr></tbody></table></figure>



<h3 class="wp-block-heading">Krok 3: Trigger Action</h3>



<p class="wp-block-paragraph"><strong>Alerts → Actions → Trigger actions → Create action</strong></p>



<p class="wp-block-paragraph"><strong>Zakładka Action:</strong></p>



<ul class="wp-block-list">
<li>Name: <code>Powiadomienia push ntfy</code></li>



<li>Conditions: <code>Trigger severity >= Warning</code></li>
</ul>



<p class="wp-block-paragraph"><strong>Zakładka Operations:</strong></p>



<p class="wp-block-paragraph">Default subject:</p>



<pre class="wp-block-code"><code>&#91;{TRIGGER.SEVERITY}] {HOST.NAME}: {TRIGGER.NAME}</code></pre>



<p class="wp-block-paragraph">Default message:</p>



<pre class="wp-block-code"><code>Host: {HOST.NAME}
Problem: {TRIGGER.NAME}
Severity: {TRIGGER.SEVERITY}
Czas: {EVENT.DATE} {EVENT.TIME}</code></pre>



<p class="wp-block-paragraph">W sekcji Operations → Add:</p>



<ul class="wp-block-list">
<li>Send to users: wybierz użytkowników</li>



<li>Send only to: <code>ntfy</code></li>
</ul>



<p class="wp-block-paragraph"><strong>Zakładka Recovery operations</strong> – analogicznie dla powiadomień o rozwiązaniu problemu.</p>



<h3 class="wp-block-heading">Krok 4: Media dla użytkownika</h3>



<p class="wp-block-paragraph"><strong>Users → [Twój user] → Media → Add</strong></p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Pole</th><th>Wartość</th></tr></thead><tbody><tr><td>Type</td><td><code>ntfy</code></td></tr><tr><td>Send to</td><td><code>default</code></td></tr><tr><td>Enabled</td><td>✓</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><strong>Gotowe!</strong> Zabbix wykrywa problem → <strong>push notification leci na telefon</strong>.</p>



<h2 class="wp-block-heading">Powiadomienia push w skryptach Bash</h2>



<p class="wp-block-paragraph">ntfy idealnie nadaje się do <strong>alertów ze skryptów</strong> – backup, monitoring dysku, cronjob, deployment.</p>



<h3 class="wp-block-heading">Alert po zakończeniu backupu</h3>



<pre class="wp-block-code"><code>#!/bin/bash

NTFY_TOPIC="backup-serwer-abc123"

notify() {
    curl -s \
        -H "Title: $1" \
        -H "Priority: $2" \
        -H "Tags: $3" \
        -d "$4" \
        "https://ntfy.sh/${NTFY_TOPIC}"
}

notify "Backup started" "low" "arrow_forward" "Rozpoczynam backup na $(hostname)"

if tar -czf /backup/data-$(date +%Y%m%d).tar.gz /data 2&gt;/tmp/backup.err; then
    SIZE=$(ls -lh /backup/data-$(date +%Y%m%d).tar.gz | awk '{print $5}')
    notify "&#x2705; Backup OK" "default" "white_check_mark" "Rozmiar: ${SIZE}"
else
    notify "&#x274c; Backup FAILED" "urgent" "x" "Błąd: $(cat /tmp/backup.err)"
    exit 1
fi</code></pre>



<h3 class="wp-block-heading">Monitoring miejsca na dysku</h3>



<p class="wp-block-paragraph"><strong>Alert gdy dysk się zapełnia</strong> – klasyczny przypadek użycia dla administratora VPS:</p>



<pre class="wp-block-code"><code>#!/bin/bash
# Cron: */30 * * * * /usr/local/bin/disk-check.sh

NTFY_TOPIC="monitoring-xyz789"
THRESHOLD=85

df -h | grep -vE '^Filesystem|tmpfs|cdrom' | awk '{print $5 " " $6}' | while read output; do
    usage=$(echo $output | awk '{print $1}' | sed 's/%//')
    partition=$(echo $output | awk '{print $2}')

    if &#91; $usage -ge $THRESHOLD ]; then
        curl -s \
            -H "Title: &#x26a0; Brak miejsca na dysku" \
            -H "Priority: high" \
            -H "Tags: warning,disk" \
            -d "Partycja $partition zapełniona w ${usage}% na $(hostname)" \
            "https://ntfy.sh/${NTFY_TOPIC}"
    fi
done</code></pre>



<h3 class="wp-block-heading">Alert o logowaniu SSH</h3>



<p class="wp-block-paragraph"><strong>Powiadomienie push gdy ktoś loguje się na serwer</strong> – przydatne do monitorowania bezpieczeństwa:</p>



<p class="wp-block-paragraph">Utwórz <code>/usr/local/bin/ssh-notify.sh</code>:</p>



<pre class="wp-block-code"><code>#!/bin/bash

&#91; "$PAM_TYPE" != "open_session" ] &amp;&amp; exit 0

curl -s \
    -H "Title: &#x1f510; SSH: ${PAM_USER}@$(hostname)" \
    -H "Priority: high" \
    -H "Tags: lock,ssh" \
    -d "User: ${PAM_USER}
Z adresu: ${PAM_RHOST}
Czas: $(date '+%Y-%m-%d %H:%M:%S')" \
    "https://ntfy.sh/ssh-TWOJ-TOPIC"

exit 0</code></pre>



<pre class="wp-block-code"><code>chmod +x /usr/local/bin/ssh-notify.sh</code></pre>



<p class="wp-block-paragraph">Dodaj na końcu <code>/etc/pam.d/sshd</code>:</p>



<pre class="wp-block-code"><code>session optional pam_exec.so /usr/local/bin/ssh-notify.sh</code></pre>



<h3 class="wp-block-heading">Uniwersalna funkcja do skryptów</h3>



<p class="wp-block-paragraph">Dodaj do <code>~/.bashrc</code> lub <code>/etc/profile.d/ntfy.sh</code>:</p>



<pre class="wp-block-code"><code>export NTFY_TOPIC="moj-serwer-default"

ntfy() {
    local msg="$1"
    local title="${2:-Alert}"
    local priority="${3:-default}"

    curl -s \
        -H "Title: ${title}" \
        -H "Priority: ${priority}" \
        -d "${msg}" \
        "https://ntfy.sh/${NTFY_TOPIC}"
}

ntfy-ok()    { ntfy "$1" "&#x2705; ${2:-OK}" "default"; }
ntfy-warn()  { ntfy "$1" "&#x26a0; ${2:-Warning}" "high"; }
ntfy-error() { ntfy "$1" "&#x274c; ${2:-Error}" "urgent"; }</code></pre>



<p class="wp-block-paragraph">Użycie:</p>



<pre class="wp-block-code"><code>ntfy "Zadanie zakończone" "Mój skrypt"
ntfy-ok "Deployment finished"
ntfy-error "Baza danych nie odpowiada" "DB Alert"</code></pre>



<h2 class="wp-block-heading">Priorytety powiadomień</h2>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Priorytet</th><th>Header</th><th>Efekt na telefonie</th></tr></thead><tbody><tr><td>Minimalny</td><td><code>min</code></td><td>Ciche, bez wibracji</td></tr><tr><td>Niski</td><td><code>low</code></td><td>Bez dźwięku</td></tr><tr><td>Normalny</td><td><code>default</code></td><td>Standardowe powiadomienie</td></tr><tr><td>Wysoki</td><td><code>high</code></td><td>Dźwięk + wysoki priorytet</td></tr><tr><td>Pilny</td><td><code>urgent</code></td><td><strong>Przebija tryb &#8222;nie przeszkadzać&#8221;</strong></td></tr></tbody></table></figure>



<p class="wp-block-paragraph">Dla alertów Zabbix z severity Disaster używaj <code>urgent</code> – telefon zadzwoni nawet w nocy.</p>



<h2 class="wp-block-heading">Tagi i emoji</h2>



<p class="wp-block-paragraph">Tagi zamieniają się na emoji w powiadomieniu:</p>



<pre class="wp-block-code"><code>curl -H "Tags: warning,server,fire" -d "CPU 98%!" ntfy.sh/moj-topic</code></pre>



<p class="wp-block-paragraph">Przydatne tagi: <code>warning</code> <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/26a0.png" alt="⚠" class="wp-smiley" style="height: 1em; max-height: 1em;" />, <code>white_check_mark</code> <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" />, <code>x</code> <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/274c.png" alt="❌" class="wp-smiley" style="height: 1em; max-height: 1em;" />, <code>rotating_light</code> <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f6a8.png" alt="🚨" class="wp-smiley" style="height: 1em; max-height: 1em;" />, <code>fire</code> <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f525.png" alt="🔥" class="wp-smiley" style="height: 1em; max-height: 1em;" />, <code>computer</code> <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4bb.png" alt="💻" class="wp-smiley" style="height: 1em; max-height: 1em;" />, <code>lock</code> <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f512.png" alt="🔒" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>



<h2 class="wp-block-heading">Akcja po kliknięciu</h2>



<p class="wp-block-paragraph">Link otwierany po tapnięciu w powiadomienie:</p>



<pre class="wp-block-code"><code>curl \
    -H "Click: https://zabbix.firma.pl/tr_events.php?eventid=${EVENT_ID}" \
    -H "Title: Problem na serwerze" \
    -d "Kliknij aby otworzyć w Zabbix" \
    ntfy.sh/zabbix-alerts</code></pre>



<h2 class="wp-block-heading">Limity publicznego serwera ntfy.sh</h2>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Parametr</th><th>Limit</th></tr></thead><tbody><tr><td>Wiadomości dziennie</td><td>250 per IP</td></tr><tr><td>Rozmiar załącznika</td><td>15 MB</td></tr><tr><td>Retencja</td><td>12 godzin</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">Dla typowego <strong>monitoringu serwera VPS</strong> to więcej niż wystarczy.</p>



<h2 class="wp-block-heading">Podsumowanie</h2>



<p class="wp-block-paragraph">ntfy.sh to najprostszy sposób na <strong>powiadomienia push z serwera Linux na telefon</strong>:</p>



<ul class="wp-block-list">
<li><strong>Zero konfiguracji</strong> – tylko curl</li>



<li><strong>Natychmiastowe alerty</strong> – push w sekundę</li>



<li><strong>Integracja z Zabbix</strong> – 10 minut i działa</li>



<li><strong>Działa w skryptach bash</strong> – jedna linijka kodu</li>



<li><strong>Darmowy</strong> – bez rejestracji, bez limitu który boli</li>



<li>W dokumentacji znajdziecie wszysto. jak tego użyć <strong>od Basha aż do Powershell</strong></li>
</ul>



<p class="wp-block-paragraph">Koniec sprawdzania maili. Ustaw ntfy, telefon Cię powiadomi.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph"><strong>Linki:</strong></p>



<ul class="wp-block-list">
<li>Strona: <a href="https://ntfy.sh">ntfy.sh</a></li>



<li>Dokumentacja: <a href="https://docs.ntfy.sh">docs.ntfy.sh</a></li>



<li>GitHub: <a href="https://github.com/binwiederhier/ntfy">github.com/binwiederhier/ntfy</a></li>
</ul>



<p class="wp-block-paragraph"></p>
<p>Artykuł <a href="https://zitwziete.org/ntfy-darmowe-powiadomienia-push-z-serwera-na-telefon/">ntfy – Darmowe powiadomienia push z serwera na telefon</a> pochodzi z serwisu <a href="https://zitwziete.org">Z IT Wzięte</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://zitwziete.org/ntfy-darmowe-powiadomienia-push-z-serwera-na-telefon/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
