2 poin oleh GN⁺ 2025-12-31 | 1 komentar | Bagikan ke WhatsApp
  • FediMeteo adalah layanan informasi cuaca global yang berawal dari VPS FreeBSD seharga 4 euro, dan secara otomatis memposting cuaca tiap kota melalui Fediverse
  • Tiap negara dikelola secara terpisah dengan FreeBSD jail, mengambil data memakai perangkat lunak snac dan Open-Meteo API, lalu mempublikasikannya dalam format Markdown
  • Sistem ini memperbarui otomatis setiap 6 jam, mendukung 39 jail, 38 negara, 2937 kota, dan telah tumbuh hingga memiliki lebih dari 7700 pengikut
  • Berbagai masalah operasional sempat terjadi, seperti kebocoran API key, kesalahan perhitungan koordinat, dan masalah terjemahan bahasa, namun sistem menjadi stabil setelah peningkatan caching dan dukungan multibahasa
  • Ini dinilai sebagai contoh bahwa bahkan dengan infrastruktur berbiaya rendah, layanan global yang efisien dan otonom tetap bisa dibangun

Gambaran proyek

  • FediMeteo adalah layanan notifikasi cuaca otomatis berbasis Fediverse yang bermula dari ketertarikan pribadi
    • Pembuatnya memulai proyek ini karena ingin melihat cuaca kotanya langsung di timeline
    • Layanan ini membuat akun per kota (bot) dan secara berkala memposting cuaca masing-masing kota
  • FreeBSD dipilih sebagai sistem operasi, dan jail dipisahkan per negara demi kemudahan pengelolaan serta keamanan
  • Pengujian awal dilakukan di VPS di Jerman, dan kini layanan berjalan di VPS 4 euro di Milan, Italia

Prinsip desain

  • Pemisahan instance per negara untuk memperkuat pengelolaan dan keamanan, serta memungkinkan pemindahan individual bila diperlukan
  • Sumber data dipilih antara wttr.in dan Open-Meteo, dengan penekanan pada keterbukaan sumber dan keandalan
  • Peningkatan aksesibilitas: bahasa lokal, kompatibilitas dengan browser teks, penggunaan emoji, dan tanpa ketergantungan pada JavaScript
  • Mempertahankan struktur komponen kecil yang saling bekerja sama sesuai filosofi Unix
  • Mengadopsi snac sebagai perangkat lunak inti, dengan dukungan ActivityPub, pembuatan RSS, penggunaan sumber daya rendah, dan waktu kompilasi cepat

Implementasi teknis

  • Tiap jail berjalan secara independen, dan skrip Python mengambil data per kota lalu mengubahnya ke Markdown
    • Menghitung koordinat dengan geopy lalu memanggil Open-Meteo API
    • Mengirim posting melalui perintah note milik snac, tanpa perlu pengelolaan API key eksternal
  • Skrip post.sh menelusuri semua kota untuk membuat dan mempublikasikan posting secara otomatis
    • cron dijalankan setiap 6 jam, dan status dipantau dengan Uptime-Kuma
  • Nama kota dikelola lewat file (cities.txt), dan kota baru otomatis tercermin saat ditambahkan

Pertumbuhan dan respons

  • Awalnya diuji dengan fokus pada Italia, lalu diperluas ke berbagai negara di Eropa
  • Setelah FediFollows memperkenalkan proyek ini, jumlah pengikut melonjak dan permintaan dari pengguna di berbagai negara meningkat
  • Ditambahkan fitur dukungan multibahasa, ekspresi emoji, dan posting nonpublik (unlisted)
  • Berkat umpan balik cepat dari komunitas pengembang, peningkatan fitur terus berlangsung

Ekspansi dan tantangan teknis

  • Saat ekspansi global, muncul masalah seperti konversi satuan (Celsius/Fahrenheit), perbedaan zona waktu, dan pembedaan kota dengan nama yang sama
  • Saat masuk ke Amerika Serikat dan Kanada, lebih dari 1200 kota ditambahkan, dan pemisah __ digunakan untuk membedakan berdasarkan negara bagian
  • Setelah menemui masalah batas gratis Open-Meteo API terlampaui, proyek ini kemudian mendapatkan API key khusus
  • Berkat efisiensi FreeBSD dan snac, banyak negara tetap dapat dijalankan dalam satu VPS

Kinerja sistem dan infrastruktur

  • Spesifikasi VPS: FreeBSD 14.3-RELEASE, dengan BastilleBSD untuk mengelola jail
    • Total 39 jail, snapshot ZFS setiap 15 menit, dan backup eksternal dilakukan tiap jam
    • Penggunaan RAM 501MB, sedikit meningkat saat pembaruan
  • Rata-rata beban CPU di bawah 10%, naik hingga 70~75% saat pembaruan skala besar
  • Instance Amerika Serikat memposting dengan jeda 5 detik antar kota, dan seluruh proses memakan waktu sekitar 2 setengah jam

Contoh penyelesaian masalah

  • Kebocoran API key: terungkap karena kode debug, lalu segera diperbaiki dan key baru diterbitkan
  • Error geopy: saat respons Nominatim gagal, masalah diatasi dengan memperkenalkan caching koordinat
  • Masalah bahasa: diperbaiki untuk kasus terjemahan multibahasa yang hilang dan pemilihan bahasa lokal yang keliru

Status saat ini (per Desember 2025)

  • Negara yang didukung: 38 negara, jumlah kota 2937
  • Jumlah pengikut di Fediverse lebih dari 7707, sementara jumlah pelanggan RSS tidak dapat diperkirakan
  • Mencakup kota-kota utama di Eropa, Amerika Utara, Asia, dan Oseania
  • Sistem beroperasi stabil, dan masih ada ruang untuk ekspansi ke negara tambahan

Kesimpulan

  • FediMeteo membuktikan bahwa layanan global dapat dibangun bahkan dengan infrastruktur berbiaya rendah
  • Ini merupakan contoh nilai dari kedaulatan data, struktur sederhana, dan kolaborasi open source
  • Sang pembuat menekankan bahwa melalui proyek ini, cuaca telah menjadi medium sosial yang menghubungkan orang-orang

1 komentar

 
GN⁺ 2025-12-31
Komentar Hacker News
  • Sangat menyenangkan melihat proyek kecil seperti ini bertumbuh dengan sukses
    FreeBSD terasa memiliki lebih sedikit hal yang tidak perlu dan latensi lebih rendah dibanding distro Linux
    Saya menyiapkan VM FreeBSD seharga $4 per bulan di Vultr (1GB RAM, 1vCPU), dan bahkan saat menjalankan Caddy, penggunaan RAM hanya 12%
    Dengan VM 4GB RAM, 4vCPU, rasanya bisa menangani trafik yang cukup besar
    Saya ingin membuat blog pribadi sebagai webapp berbasis teks bergaya BBS retro — kombinasi server multithread Nim + sqlite, dijalankan di FreeBSD sebagai satu biner 4MB tanpa container atau library JS
    Tulisan ini membuat saya makin yakin untuk beralih ke FreeBSD

    • Linux berbeda-beda tergantung distro dan konfigurasinya
      Hari ini saya mengujinya dengan mkosi(https://github.com/systemd/mkosi); untuk instalasi minimal, Fedora 43 memakai sekitar 130MiB RAM, Debian sekitar 100MiB
      Waktu dulu mencoba instalasi minimal FreeBSD, setahu saya hasilnya mirip, atau sedikit lebih tinggi tergantung konfigurasi ZFS
    • Saya ingat 20 tahun lalu Linux memakai setengah sumber daya dibanding sekarang
      Mungkin transisi ke x64 adalah salah satu penyebabnya
      Menarik bahwa untuk melakukan hal yang sama kini RAM yang dipakai jadi dua kali lipat, tetapi sebagai gantinya sekarang kita praktis punya RAM tak terbatas
    • Distro ringan seperti Alpine juga ada
      Bahkan login SSH terasa jauh lebih cepat daripada Ubuntu, dan manajer paket apk juga sangat gesit
    • Utilitas BSD jauh lebih mudah dibaca daripada utilitas GNU untuk memahami cara kerjanya di dalam
      Saya lebih suka model lisensi GNU, tetapi untuk kodenya sendiri saya lebih menyukai gaya BSD
    • Untuk “retro BBS-like web app”, saya penasaran apakah yang dimaksud adalah BBS dial-up zaman dulu, atau papan diskusi bergaya forum
      Jika yang kedua, FlaskBB mungkin layak dilihat
  • Saya juga sedang membuat sistem prakiraan selancar pribadi dengan open-meteo
    Memang hanya mencakup satu wilayah, tetapi mudah diperluas
    Saya menggabungkan data laut dari open-meteo dengan prakiraan cuaca jangka pendek dan panjang, lalu memakai LLM untuk mengubah data kuantitatif menjadi penjelasan kualitatif
    Pada dasarnya ini mengotomatiskan apa yang biasa saya lakukan di kepala
    Kalau ada ide, saya senang mendengarnya
    https://surfrash.xyz/

    • Keren. Sepertinya akan berguna untuk pantai mana pun
      Saya suka antarmuka yang berfokus pada penjelasan alih-alih dinding data
      Saya juga ingin meminta penambahan wilayah Manly (NSW, Australia)
  • Seru untuk dibaca
    Andai dulu saat muda saya lebih tertarik pada *BSD, tetapi sekarang saya sudah terlalu terbiasa dengan Linux sehingga sulit pindah begitu saja
    Berkat ZFS dan fitur jail, pengelolaannya tampak menjadi mulus
    Saya memakai podman, tetapi di Linux saya belum pernah mencoba ZFS
    Saya berencana membuat arsip pribadi, jadi saya ingin memanfaatkan deduplication ZFS

    • Saya juga merasa begitu
      Saya sedang berusaha mengurangi stack rumit seperti Docker, dan walau ada systemd, konsep jail atau sandbox terasa cukup menarik
      Saya lebih suka alat yang bekerja baik hanya dengan konfigurasi bawaan
  • Spesifikasi “VPS 4 euro” itu mengejutkan
    Misalnya, VPS termurah Hetzner punya 2 vCPU, 4GB RAM, 40GB NVMe SSD, tetapi tidak ada koneksi 1Gb/s
    Yang termurah yang saya temukan adalah Contabo

    • LowEndBox adalah situs populer yang mengumpulkan informasi VPS semacam ini
    • Netcup VPS 500 G11s juga layak dicek
    • Perlu hati-hati saat membandingkan performa vCPU antar penyedia VPS
      Server murah sering kali memakai generasi lama atau dibagi terlalu agresif
      4 vCPU bisa saja lebih lambat daripada 2 vCPU di server yang lebih baru
      Namun, jika aplikasinya berfokus pada RAM, itu bisa menjadi pilihan yang bagus
    • Oracle Cloud gratis menyediakan 4 oCPU (ARM), 24GB RAM, 200GB NVMe SSD, bandwidth 4Gb/s
      Ada yang bilang sulit mendapatkan instance, tetapi saya sudah memakainya dengan baik selama lebih dari 2 tahun
      Karena akun gratis bisa dihentikan, lebih aman beralih ke paket berbayar
    • Dulu saya pernah memakai VPS buyvm seharga $5 per tahun (256MB RAM), dan untuk penggunaan sederhana itu cukup berguna
  • Menyenangkan melihat orang membangun proyek sederhana sendiri tanpa infrastruktur raksasa (Kubernetes, AWS, DynamoDB, dll.)

  • Hacker News sendiri juga berjalan di server FreeBSD 4-core
    Tautan terkait

    • Sebenarnya strukturnya 2 paket CPU × 4 core × 2 thread, jadi total 16 thread
    • Tetap saja, itu adalah core khusus sehingga tidak dibagi dengan tenant lain
  • Saya juga membeli server dengan spesifikasi serupa seharga sekitar $5
    Ada penyimpanan 400~500GB, dan awalnya dimulai dengan promo $8 selama 3 bulan
    Setelah itu akan beralih menjadi $5 per bulan, dan kesenangan serta rasa tenggelam dalam mengelola VPS sendiri cukup besar
    OVH murah dan punya keunggulan kebijakan egress tak terbatas
    Dukungan Upcloud juga sangat baik
    Saya juga mendengar tips bahwa untuk dukungan OVH, lebih baik bertanya lewat Twitter atau Discord
    Proses membandingkan harga server dan kualitas dukungan untuk mencari kombinasi terbaik itu sendiri menyenangkan

  • Saya pernah memikirkan ide membeli domain bernama “freeofcharge.org”, lalu menyediakan layanan gratis yang muat di dalam RAM sebagai subdomain
    Konsepnya adalah mengumpulkan layanan berguna yang bisa dijalankan dengan biaya di bawah $10 per bulan

  • Saya juga ingin membuat alat serupa yang mengubah peringatan cuaca untuk wilayah tertentu menjadi HTML/Markdown yang mudah dibaca
    Bukan untuk fediverse, hanya untuk notifikasi cuaca yang mudah diakses

  • Terkait pendapat bahwa “prakiraan harus disediakan dalam bahasa lokal”,
    saya rasa tidak perlu menimpa pengaturan bahasa default browser karena banyak juga pengguna yang tidak memahami bahasa setempat

    • Tujuan proyek ini bukan dukungan multibahasa, melainkan menyampaikan prakiraan langsung kepada pengguna
      Sebagai gantinya, proyek ini memberi ekspresi intuitif lewat emoji untuk mengurangi hambatan bahasa