Raspberry Pi'ye NTFY Push Bildirim Sunucusu Kurulumu
Bu yazı, PiMyLifeUp - Installing the NTFY Push Notification Server on the Raspberry Pi kaynağından Türkçe'ye çevrilerek hazırlanmıştır.
Bu eğitimde, Raspberry Pi'nize NTFY'yi nasıl kurup çalıştıracağınızı göstereceğiz.
![]()
NTFY, telefonunuza veya web uygulaması üzerinden kolayca push bildirimleri göndermenizi sağlayan bir push bildirim sunucusudur.
Kendi kendine barındırılan bir çözüm olduğundan, her şeyin çalışması için başka hizmetlere güvenmek zorunda kalmayacaksınız. Elbette, bu, NTFY'yi yerel bağlantınızın dışında kullanmak için ya port yönlendirmesi yapmanız ya da Tailscale gibi bir hizmet kullanmanız gerektiği anlamına gelir.
Raspberry Pi'de NTFY kurmak nispeten basit bir süreçtir ve ekip, Pi'mizde çalışacak hem ARM7 hem de ARM64 derlemeleri sağlar.
Raspberry Pi'ye NTFY Kurulumu
Aşağıdaki bölümlerde, Raspberry Pi'nize NTFY push bildirim sunucusunu nasıl kuracağınızı göstereceğiz.
Bu adımlar, resmi paket deposunu ekleme, sunucuyu kurma ve yapılandırmayı içerir.
NTFY İçin Raspberry Pi'nizi Hazırlama
1. Yapmamız gereken ilk şey paket listelerini güncellemek ve güncel olmayan tüm paketleri yükseltmektir.
Her iki görevi de aşağıdaki iki komutu kullanarak gerçekleştirebilirsiniz.
sudo apt update
sudo apt upgrade -y
2. Devam etmeden önce, sistemimizde curl paketinin mevcut olduğundan emin olmamız gerekiyor. GPG anahtarını Raspberry Pi'mize kaydetmek ve NTFY sunucusunu test etmek için curl kullanacağız.
curl'u kurmak için, terminalde aşağıdaki komutu kullanmalısınız.
sudo apt install curl
NTFY Paket Deposunu Ekleme
3. NTFY paket deposunu eklemeden önce, GPG anahtarını almalı ve anahtar zincirimize (keyring) kaydetmeliyiz.
GPG anahtarı, paket yöneticisinin paketlerin gerçekten depodan geldiğini doğrulamasını sağlar. Sahte bir paket indirme olasılığını azaltmaya yardımcı olur.
curl -fsSL https://archive.heckel.io/apt/pubkey.txt | sudo gpg --dearmor -o /etc/apt/keyrings/archive.heckel.io.gpg
4. NTFY için GPG anahtarı Raspberry Pi'mize kaydedildikten sonra, artık depoyu kaynaklarımıza ekleyebiliriz.
Bu komut, 32-bit veya 64-bit bir işletim sistemi çalıştırmanıza bağlı olarak hafifçe farklılık gösterir.
64-bit İşletim Sistemleri İçin
echo "deb [arch=arm64 signed-by=/etc/apt/keyrings/archive.heckel.io.gpg] https://archive.heckel.io/apt debian main" | sudo tee /etc/apt/sources.list.d/archive.heckel.io.list
32-bit İşletim Sistemleri İçin
echo "deb [arch=armhf signed-by=/etc/apt/keyrings/archive.heckel.io.gpg] https://archive.heckel.io/apt debian main" | sudo tee /etc/apt/sources.list.d/archive.heckel.io.list
5. Mevcut paket depolarında değişiklik yaptığımızdan, aşağıdaki komutu çalıştırmamız gerekiyor.
Bu komut, her paket kaynağından en son paket listelerini alacaktır.
sudo apt update
Paket Deposundan Raspberry Pi'nize NTFY Kurulumu
6. Sonunda Raspberry Pi'mize NTFY push bildirim sunucusunu kurabileceğimiz noktaya geldik.
Bu yazılımı kurmak artık aşağıdaki komutu çalıştırmak kadar basittir.
sudo apt install ntfy
NFTY'yi Yapılandırma
7. İşleri biraz kolaylaştırmak için, orijinal NTFY yapılandırmasını yedekleyeceğiz.
Raspberry Pi'mizde NTFY için sıfırdan yeni bir yapılandırma dosyası oluşturacağız. Ancak, size hangi başka ayarların mevcut olduğunu öğrenmeniz gerektiğinde eskisine sahip olmak iyidir.
Aşağıda gösterildiği gibi mv komutunu kullanarak yapılandırma dosyasının bir yedeğini oluşturun.
sudo mv /etc/ntfy/server.yml /etc/ntfy/server.bkup
8. Eski sunucu yapılandırmasını kenara aldıktan sonra, artık kendimizinkini yazmaya başlayabiliriz.
Aşağıdaki komutu kullanarak yeni bir "server.yml" dosyası oluşturun.
sudo nano /etc/ntfy/server.yml
a. Bu yapılandırma dosyasına eklememiz gereken ilk satır, temel URL'yi tanımlayan satırdır.
Buradaki değer, Raspberry Pi'nizde NTFY'yi nasıl kurmayı planladığınıza bağlıdır.
Örneğin, bir alan adı kullanıyorsanız, şuna benzer bir şey kullanırsınız: "https://notify.pimylifeup.com".
Aksi takdirde, statik bir IP adresi kullanıyorsanız, bunun yerine "http://192.168.0.132" gibi bir temel URL kullanırsınız.
Kurulumunuz için hangi değerin en iyi çalışacağını belirledikten sonra, "<YOURDOMAIN>" kısmını bu değerle değiştirin.
base-url: "<YOURDOMAIN>"
b. Ardından, NTFY sunucusunun dinlemesini istediğimiz portu belirtmemiz gerekiyor.
Raspberry Pi'nizde başka bir şey çalışmıyorsa, güvenle "80" portuna sadık kalabilirsiniz. Aksi takdirde, lütfen bunu farklı bir port ile değiştirin ve not edin.
listen-http: ":80"
c. Ayrıca NTFY'nin önbellek veritabanı dosyasını saklayacağı bir yer de belirtmeliyiz. Bu, push bildirim sunucusu başladığında otomatik olarak oluşturulacak bir SQLite veritabanıdır.
cache-file: "/var/cache/ntfy/cache.db"
d. Belirteceğimiz bir sonraki şey, NTFY'nin herhangi bir eki (attachment) saklayacağı dizindir. Bu, bir görsel veya başka bir tür ek içeren bir push bildirimi göndermek istiyorsanız gereklidir.
attachment-cache-dir: "/var/cache/ntfy/attachments"
9. Aşağıda, nihai yapılandırmanın nasıl görünmesi gerektiğine dair bir örnek bulunmaktadır. Elbette, sizinki yapılandırma dosyasında yer tutucularımız yerine kendi değerlerinize sahip olacak.
base-url: "<YOURDOMAIN>"
listen-http: ":80"
cache-file: "/var/cache/ntfy/cache.db"
attachment-cache-dir: "/var/cache/ntfy/attachments"
10. Bu değişiklikleri, CTRL + X, ardından Y, sonra ENTER tuşuna basarak dosyaya kaydedebilirsiniz.
Raspberry Pi'de NTFY Sunucusunu Başlatma
11. NTFY artık yapılandırıldığına göre, aşağıdaki komutu kullanarak NTFY sunucusunu başlatabiliriz.
Bu komut, NTFY servisini başlatmak için systemctl kullanır.
sudo systemctl start ntfy
12. NTFY artık çalışır durumda olduğuna göre, servisi etkinleştirmek isteyeceksiniz.
Servisi etkinleştirerek, Raspberry Pi'niz başladığında NTFY push bildirim sunucusu da başlayacaktır.
sudo systemctl enable ntfy
NTFY Push Bildirimlerini Test Etme
13. Varsayılan olarak, NTFY web arayüzü üzerinden bildirim göndermek için herhangi bir kimlik doğrulama gerektirmez.
Belirli bir konuya (topic) bir push bildirimi göndermek için, kullanmanız gereken tek şey aşağıdakidir. NTFY'nin bu şekilde çalışmaya devam etmesine izin vermeyi planlıyorsanız, konu adlarınızın kolayca tahmin edilemeyecek şekilde olmasını sağlamanız önerilir.
curl http://<DOMAIN OR IP>/<TOPICNAME> -d "<YOURTEXTHERE>"
Örneğin, "pimylifeup" konusuna "Hello World" mesajını göndermek isteseydiniz, aşağıdaki komutu kullanırdınız.
curl http://192.168.0.134:8080/pimylifeup -d "Hello World"
14. Artık Raspberry Pi NTFY sunucunuzun yeni mesajınızı alıp almadığını aşağıdaki URL'ye giderek test edebilirsiniz.
URL'ye giderek, NTFY'ye gönderilen tüm mesajları ve o konuya abone olan herhangi bir kullanıcıya neyin gönderilmiş olacağını görebilirsiniz.
http://<DOMAIN OR IP>/<TOPICNAME>
15. Artık Raspberry Pi'nizde NTFY çalışıyor.
HTTPS desteği ekleyerek bu işlevselliği daha da genişletebilirsiniz. Tarayıcı push bildiriminin işlev görmesi için HTTPS gereklidir.

NTFY Kurulumunuza HTTPS Ekleme
Bu bölümde, Raspberry Pi'nizdeki NTFY kurulumunuza HTTPS desteğini nasıl ekleyebileceğinizi inceleyeceğiz.
Bunu başarmanın iki yolu vardır. Biri yerleşik HTTPS desteğini kullanmak, diğeri ise bir ters proxy kullanmaktır. Bu bölümde, Caddy kullanarak ters proxy yolundan gideceğiz.
Bir alan adınız yoksa, kendinden imzalı (self-signed) bir sertifika kullanmanız gerekecek. Bu sertifikalar, cihazınız bağlantıyı doğrulayamadığından NTFY kullanımında sorunlara neden olabilir.
Caddy Kurulumu
1. Raspberry Pi'mize Caddy kurmadan önce, önce paket listesini güncellememiz gerekiyor.
Önceki adımları nispeten yakın bir zamanda takip ettiyseniz, bu adımı atlayabilirsiniz.
sudo apt update
2. Caddy kurmak, aşağıdaki komutu kullanmak kadar kolaydır.
Bu komut, resmi Raspberry Pi OS deposundan Caddy web sunucusunu alacaktır.
sudo apt install caddy
3. Caddy kurulduktan sonra, varsayılan dosyayı temizleyelim. Bunu, kendi talimat setimizi kolayca ekleyebilmemiz için yapıyoruz.
sudo truncate /etc/caddy/Caddyfile -s 0
NTFY İçin CaddyFile Oluşturma
4. Şimdi, aşağıdaki komutu kullanarak Caddyfile'ı yazmaya başlayabilirsiniz. Kullanımı nispeten basit olduğundan nano metin editörünü kullanıyoruz.
sudo nano /etc/caddy/Caddyfile
5. Raspberry Pi'nizde NTFY'yi nasıl kullanmayı planladığınıza bağlı olarak, bu adımlar hafifçe farklılık gösterecektir.
- a – Bir alan adınız varsa bunu kullanın.
- b – IP'nizi kullanmak istiyorsanız ve 80 ve 443 portları boşsa bir yöntem.
- c – Son yöntem, NTFY'yi standart olmayan bir portta çalıştırmanız gerekiyorsa.
a. Kullandığınız bir alan adınız varsa ve zaten Raspberry Pi'nize yönlendirdiyseniz, aşağıdaki biçimi kullanabilirsiniz.
"DOMAINNAMEHERE" kısmını kullanmayı planladığınız alan adıyla değiştirmelisiniz. Caddy, başladığında gereken sertifikayı otomatik olarak oluşturacaktır.
DOMAINNAMEHERE
reverse_proxy:9090
b. Bir alan adı kullanmıyorsanız ve bunun yerine bir IP'ye güveniyorsanız, kullanabileceğimiz alternatif bir yöntem var.
Bu yöntemle, 80 ve 443 portlarının kullanılmaya hazır boş olduğunu varsayıyoruz. Bu blokta, "<YOURIPADDRESS>" kısmını ya yerel IP'nizle ya da harici IP'nizle değiştirmelisiniz.
https://<YOURIPADDRESS> {
reverse_proxy:9090
}
c. Bu son yapılandırma, Raspberry Pi'nizde NTFY'yi farklı bir port altında çalıştırırken kullanışlıdır.
Bu yapılandırmayla, "YOURIPADDRESS" kısmını IP'nizle değiştirmelisiniz.
Ayrıca, "PORT" kısmını NTFY'nin çalışmasını istediğiniz portla değiştirmelisiniz. Kullanılacak bir porta örnek "8443"tür.
{
auto_https disable_redirects
}
https://<YOURIUPADDRESS>:<PORT> {
reverse_proxy:9090
}
6. Bu dosyada değişiklik yaptıktan sonra, kaydedip çıkabilirsiniz. Nano kullanıyorsanız, CTRL + X, ardından Y, sonra ENTER tuşuna basabilirsiniz.
Proxy'ler İçin NTFY'yi Değiştirme
7. Şimdi, "9090" portunu kullanması ve proxy'leri kullanacak şekilde yapılandırılması için NTFY'nin kendisini değiştirmemiz gerekecek.
Aşağıdaki komutu kullanarak NTFY yapılandırma dosyasını açın.
sudo nano /etc/ntfy/server.yml
8. Bu dosyanın içinde, "listen-http" seçeneğini güncelleyerek başlamalıyız.
listen-http: ":80"
Bulduktan sonra, aşağıdaki gibi görünecek şekilde güncelleyin. Bunu, NTFY'nin Raspberry Pi'mizde 9090 portuna bağlanması ve localhost'a kilitlenmesi için değiştiriyoruz.
Tüm trafiğin NTFY ile etkileşim kurmak için proxy'miz üzerinden geçmesini istiyoruz.
listen-http: "localhost:9090"
9. Ardından, dosyanın altına aşağıdaki satırı eklemelisiniz. Bu, davranışı değiştirir.
behind-proxy: true
10. Bu değişiklikleri yaptıktan sonra, CTRL + X, ardından Y, sonra ENTER tuşuna basarak kaydedip çıkın.
Raspberry Pi'nizde Caddy ve NTFY'yi Başlatma
11. Sonunda Caddy ve NTFY'yi çalışır hale getirebileceğimiz noktaya geldik.
Aşağıdaki komutu kullanarak NTFY servisini yeniden başlatarak bu sürece başlayalım.
sudo systemctl restart ntfy
12. Bu başarıyla yeniden başladıysa, bir sonraki adımımız aşağıdaki komutu çalıştırarak Caddy'yi yeniden başlatmaktır.
sudo systemctl restart caddy
Bu komutu çalıştırdıktan sonra bir hatayla karşılaşırsanız, Raspberry Pi'nizi yeniden başlatmayı deneyin.
Yeni Değişikliklerinizi Test Etme
13. Aşağıdaki komutu kullanarak NTFY sunucumuza tekrar yeni bir push bildirimi göndermeyi deneyelim.
Bilgileri kendi sunucunuzunkilerle doldurduğunuzdan emin olun. Kendinden imzalı bir sertifika kullanıyorsanız, bunun çalışması için "-k" seçeneğini kullanmanız gerekebilir.
curl https://<DOMAIN OR IP>/<TOPICNAME> -d "<YOURTEXTHERE>"
Örneğin, "pimylifeup" konusuna "Hello World" mesajını göndermek isteseydiniz, aşağıdaki komutu kullanırdınız.
curl http://192.168.0.134:8443/pimylifeup -d "Hello World"
Sonuç
Umarız bu eğitimin bu noktasında, Raspberry Pi'nizde NTFY çalışıyor olacaktır.
Bu, kendi push bildirim sunucunuzu kolayca kurup çalıştırmanızı sağlayan kullanışlı bir yazılımdır. Her şeyin çalışması için üçüncü taraf bir sunucuya bağımlı olmayacaksınız.
Bir Raspberry Pi'de NTFY çalıştırma hakkında sorularınız varsa, lütfen aşağıya yorum bırakın.