2 puan yazan GN⁺ 2025-12-31 | 1 yorum | WhatsApp'ta paylaş
  • 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

 
GN⁺ 2025-12-31
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

    • Linux, dağıtıma ve yapılandırmaya göre değişiyor
      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
    • 20 yıl önce Linux’un kaynak kullanımının bugün olduğunun yarısı kadar olduğunu 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
    • Alpine gibi hafif dağıtımlar da var
      SSH girişi bile Ubuntu’dan çok daha hızlı ve apk paket yöneticisi de son derece hızlı
    • BSD araçları, iç işleyişlerini anlamak açısından GNU araçlarından çok daha okunabilir
      Lisans modelinde GNU’yu tercih ediyorum ama kodun kendisinde BSD tarzını daha çok seviyorum
    • “retro BBS-like web app” derken eski dial-up BBS’leri mi kastediyorsun, yoksa forum tarzı bir mesaj panosunu mu, merak ettim
      İ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/

    • Harika. Herhangi bir plaj için faydalı olur gibi görünüyor
      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

    • Ben de aynı fikirdeyim
      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

    • LowEndBox bu tür VPS bilgilerini toplayan popüler bir site
    • Netcup VPS 500 G11s de bakmaya değer
    • VPS sağlayıcıları arasında vCPU performans karşılaştırmasına dikkat etmek gerekiyor
      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
    • Oracle Cloud ücretsiz olarak 4 oCPU (ARM), 24GB RAM, 200GB NVMe SSD, 4Gb/s bant genişliği veriyor
      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
    • Eskiden buyvm üzerinden yıllık 5 dolarlık (256MB RAM) bir VPS kullanıyordum; basit işler için oldukça kullanışlıydı
  • 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ı

    • Aslında yapı 2 CPU paketi × 4 çekirdek × 2 thread, yani toplam 16 thread
    • Yine de bunlar adanmış çekirdekler, başka tenant’larla paylaşılmıyor
  • 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

    • Projenin amacı çok dilli destek değil, tahmini doğrudan kullanıcıya ulaştırmak
      Bunun yerine emoji ile sezgisel anlatım sunarak dil engelini azaltıyor