- FediMeteo, 4 avroluk bir FreeBSD VPS üzerinde başlayan ve Fediverse üzerinden her şehrin hava durumunu otomatik olarak paylaşan küresel bir hava durumu bilgi hizmetidir
- Her ülke FreeBSD jail ile ayrılmış şekilde yönetilir; veriler snac yazılımı ve Open-Meteo API kullanılarak alınır ve Markdown biçiminde yayımlanır
- Sistem 6 saatte bir otomatik güncellenir, 39 jail, 38 ülke ve 2937 şehir destekler ve takipçi sayısı 7700'ün üzerine çıkmıştır
- API anahtarı sızıntısı, koordinat hesaplama hatası, dil çevirisi sorunları gibi çeşitli operasyonel problemler yaşansa da, önbellekleme ve çok dilli destek iyileştirmeleriyle sistem istikrara kavuşmuştur
- Düşük maliyetli altyapıda bile verimli ve özerk bir küresel hizmet kurmanın mümkün olduğunu gösteren bir örnek olarak değerlendirilmektedir
Proje özeti
- FediMeteo, kişisel ilgiden doğan Fediverse tabanlı otomatik hava durumu bildirim hizmetidir
- Yaratıcısı, kendi şehrinin hava durumunu doğrudan zaman akışında görmek istemesiyle projeye başladı
- Hizmet, şehir bazlı hesaplar (botlar) oluşturarak her şehrin hava durumunu düzenli olarak paylaşır
- İşletim sistemi olarak FreeBSD seçildi; ülke bazında jail ayrımıyla yönetim ve güvenlik sağlandı
- İlk testler Almanya'daki bir VPS'te yapıldı; hizmet şu anda İtalya'nın Milano kentindeki 4 avroluk bir VPS üzerinde çalışıyor
Tasarım ilkeleri
- Ülke bazında örnek ayrımı ile yönetim ve güvenliğin güçlendirilmesi, gerekirse her birinin ayrı taşınabilmesi
- Veri kaynağı olarak wttr.in ile Open-Meteo arasında seçim; açık kaynak uyumluluğu ve güvenilirlik ön planda
- Erişilebilirlik odaklılık: yerel dil, metin tarayıcı uyumluluğu, emoji kullanımı, JavaScript'e bağımlı olmama
- Unix felsefesi doğrultusunda küçük bileşenlerin birlikte çalıştığı bir yapı korunuyor
- Temel yazılım olarak snac benimsendi; ActivityPub desteği, RSS üretimi, düşük kaynak kullanımı ve hızlı derleme sunuyor
Teknik uygulama
- Her jail bağımsız çalışır; Python betikleri şehir bazlı verileri alıp Markdown formatına dönüştürür
- geopy ile koordinatlar hesaplandıktan sonra Open-Meteo API çağrılır
- Gönderiler, snac'in
note komutuyla iletilir; harici API anahtarı yönetimi gerekmez
- post.sh betiği tüm şehirleri dolaşarak gönderileri otomatik üretir ve yayımlar
- cron bunu 6 saatte bir çalıştırır, durum ise Uptime-Kuma ile izlenir
- Şehir adları bir dosyada (
cities.txt) yönetilir; yeni bir şehir eklendiğinde otomatik yansıtılır
Büyüme ve tepkiler
- Başlangıçta İtalya merkezli testlerden sonra Avrupa'nın diğer ülkelerine genişledi
- FediFollows projeyi tanıttıktan sonra takipçi sayısı hızla arttı ve farklı ülkelerden kullanıcı talepleri geldi
- Çok dilli destek, emoji ifadeleri ve gizli olmayan paylaşım (unlisted) özelliği eklendi
- Geliştirici topluluğundan gelen hızlı geri bildirimlerle özellikler sürekli iyileştirildi
Ölçekleme ve teknik zorluklar
- Küresel ölçekte genişlerken birim dönüşümü (Celsius/Fahrenheit), saat dilimi farkları, aynı adlı şehirlerin ayrıştırılması gibi sorunlar ortaya çıktı
- ABD ve Kanada'ya açılırken 1200'den fazla şehir eklendi; eyalet bazlı ayrım için
__ ayıracı kullanıldı
- Open-Meteo ücretsiz API sınırı aşıldıktan sonra özel bir API anahtarı sağlandı
- FreeBSD ve snac'in verimliliği sayesinde tek bir VPS üzerinde çok sayıda ülke işletilebildi
Sistem performansı ve altyapı
- VPS özellikleri: FreeBSD 14.3-RELEASE, jail yönetimi için BastilleBSD
- Toplam 39 jail, her 15 dakikada bir ZFS snapshot, her saat harici yedekleme
- RAM kullanımı 501MB, güncellemeler sırasında biraz artıyor
- Ortalama CPU yükü %10'un altında, büyük güncellemelerde ise %70~75'e kadar çıkıyor
- ABD örneği şehirler arasında 5 saniye aralıkla paylaşım yapıyor; tüm işlem yaklaşık 2,5 saat sürüyor
Sorun çözme örnekleri
- API anahtarı sızıntısı: debug kodu nedeniyle açığa çıktı, hemen düzeltildi ve yeni anahtar verildi
- geopy hatası: Nominatim yanıt vermediğinde koordinat önbelleklemesiyle çözüldü
- Dil sorunları: çok dilli çeviri eksikleri ve yanlış yerel dil seçimi düzeltildi
Güncel durum (Aralık 2025 itibarıyla)
- Desteklenen ülkeler: 38 ülke, şehir sayısı 2937
- Fediverse takipçi sayısı 7707'nin üzerinde; RSS abone sayısı tahmin edilemiyor
- Avrupa, Kuzey Amerika, Asya ve Okyanusya'daki başlıca şehirleri kapsıyor
- Sistem istikrarlı şekilde çalışıyor ve ek ülkelere genişleme kapasitesi bulunuyor
Sonuç
- FediMeteo, düşük maliyetli altyapıda da küresel hizmet kurulabileceğini kanıtlıyor
- Veri egemenliği, basit yapı ve açık kaynak iş birliği değerlerini gösteren bir örnek
- Yaratıcısı, proje sayesinde havanın insanları birbirine bağlayan sosyal bir aracıya dönüştüğünü vurguluyor
1 yorum
Hacker News yorumları
Böyle küçük projelerin başarıyla büyüdüğünü görmek gerçekten keyif veriyor
FreeBSD’nin Linux dağıtımlarına göre daha az gereksiz bileşen ve daha düşük gecikme sunduğu hissine kapılıyorum
Vultr’da aylık 4 dolarlık bir FreeBSD VM’i (1GB RAM, 1vCPU) kurdum; Caddy çalışsa bile RAM kullanımı yalnızca %12’de kalıyor
4GB RAM, 4vCPU bir VM’in epeyce trafiği kaldırabileceğini düşünüyorum
Kişisel blogumu retro BBS tarzı metin tabanlı bir web uygulaması yapmak istiyorum — Nim çok iş parçacıklı sunucu + sqlite birleşimiyle, container ya da JS kütüphaneleri olmadan, FreeBSD’de çalışan tek bir 4MB binary şeklinde
Bu yazı sayesinde FreeBSD’ye geçme konusunda daha da ikna oldum
Bugün mkosi(https://github.com/systemd/mkosi) ile test ettim; minimum kurulumda Fedora 43 yaklaşık 130MiB, Debian ise yaklaşık 100MiB RAM kullanıyor
Geçmişte FreeBSD minimum kurulumu denediğimde de benzerdi, ya da ZFS yapılandırmasına göre biraz daha fazlaydı diye hatırlıyorum
Muhtemelen x64’e geçiş bunun sebeplerinden biri olabilir
Aynı işi yapmak için RAM’in iki katına çıkması ilginçti, ama artık fiilen sınırsız RAM kullanabiliyoruz
SSH girişi bile Ubuntu’dan çok daha hızlı ve apk paket yöneticisi de son derece hızlı
Lisans modelinde GNU’yu tercih ediyorum ama kodun kendisinde BSD tarzını daha çok seviyorum
İkincisiyse FlaskBB’ye bakmaya değer
Ben de benzer şekilde open-meteo kullanarak kişisel bir sörf tahmin sistemi yapıyorum
Yalnızca tek bir bölgeyi kapsıyor ama ölçeklendirmesi kolay
open-meteo’nun deniz verilerini kısa ve uzun vadeli hava tahminleriyle birleştirip, sonucu bir LLM ile nicel verileri nitel açıklamalara dönüştürmek için kullanıyorum
Aklımda manuel olarak yaptığım şeyi otomatikleştirmiş oldum
Fikriniz varsa duymak isterim
https://surfrash.xyz/
Veri duvarı yerine açıklama odaklı arayüzü beğendim
Manly (NSW, Australia) bölgesinin de eklenmesini istiyorum
Keyifle okudum
Gençken *BSD ile daha çok ilgilenmiş olmayı isterdim; şimdi Linux’a fazla alıştım, kolay kolay değiştiremiyorum
ZFS ve jail özelliği sayesinde yönetim epey akıcı hale gelmiş gibi görünüyor
Ben podman kullanıyorum ama Linux’ta henüz ZFS denemedim
Kişisel bir arşiv kurmayı planlıyorum, bu yüzden ZFS’nin deduplication özelliğinden yararlanmayı düşünüyorum
Docker gibi karmaşık yığınları azaltmaya çalışıyorum ve systemd var ama jail ya da sandbox kavramı oldukça çekici geliyor
Varsayılan ayarlarla bile iyi çalışan araçları tercih ediyorum
“4 euroluk VPS” özellikleri şaşırtıcı
Örneğin Hetzner’in en ucuz VPS’i 2 vCPU, 4GB RAM, 40GB NVMe SSD sunuyor ama 1Gb/s bağlantı yok
Bulduğum en ucuzu Contabo idi
Ucuz sunucular genelde eski nesil oluyor ya da aşırı paylaşılmış oluyor
4 vCPU, yeni bir sunucudaki 2 vCPU’dan daha yavaş olabilir
Ama RAM ağırlıklı uygulamalar için iyi bir seçim olabilir
Instance bulmanın zor olduğu söyleniyor ama ben iki yılı aşkın süredir sorunsuz kullanıyorum
Ücretsiz hesabın kapatılma ihtimali olduğundan ücretliye geçmek daha güvenli olur
Kubernetes, AWS, DynamoDB gibi devasa altyapılar olmadan basit bir projeyi doğrudan inşa etmek güzel görünüyor
Hacker News’in kendisi de FreeBSD tabanlı 4 çekirdekli bir sunucuda çalışıyor
İlgili bağlantı
Ben de benzer özelliklerde bir sunucuyu yaklaşık 5 dolara aldım
400~500GB depolama alanı var ve 3 aylık 8 dolarlık promosyonla başladı
Sonrasında aylık 5 dolara dönecek; VPS’i bizzat işletmenin verdiği keyif ve içine çekiciliği büyük
OVH fiyat açısından uygun ve sınırsız egress politikası önemli bir avantaj
Upcloud’un destek ekibi de çok iyiydi
OVH desteğine Twitter ya da Discord üzerinden ulaşmanın daha iyi olduğuna dair bir tüyo da duydum
Sunucu fiyatı ve destek kalitesini karşılaştırıp en iyi noktayı bulma sürecinin kendisi bile eğlenceli
Bir ara “freeofcharge.org” alan adını alıp, RAM’e sığan ücretsiz servisleri alt alan adlarıyla sunma fikrini düşünmüştüm
Aylık 10 doların altında çalıştırılabilecek faydalı servisleri bir araya getirme fikriydi
Ben de benzer şekilde, belirli bir bölgenin hava durumu uyarılarını HTML/Markdown biçiminde okunması kolay hale getiren bir araç yapmak istiyorum
Fediverse için değil, sadece erişilebilir hava durumu uyarıları için
“Tahminler yerel dilde sunulmalı” görüşüne karşılık,
yerel dili bilmeyen kullanıcılar da çok olduğu için tarayıcının varsayılan dil ayarını geçersiz kılmanın gereksiz olduğunu düşünüyorum
Bunun yerine emoji ile sezgisel anlatım sunarak dil engelini azaltıyor