Migrasi proyek Dillo dari GitHub
(dillo-browser.org)- Proyek peramban web Dillo sedang bermigrasi dari GitHub ke server yang di-host sendiri
- Alasan utama migrasi yang diajukan meliputi ketergantungan pada JavaScript, struktur kontrol terpusat, dan performa yang lambat di GitHub
- Server baru beroperasi di domain dillo-browser.org dan menggunakan frontend Git ringan berbasis cgit serta pelacak bug buatan sendiri bernama ‘buggy’
- Semua data dikelola sebagai repositori git dan dicerminkan ke Codeberg dan Sourcehut, sehingga meminimalkan risiko kehilangan data
- Dirancang agar tetap dapat dipercaya bahkan saat DNS hilang melalui tanda tangan OpenPGP, sehingga memperkuat kemandirian dan keberlanjutan proyek
Latar belakang
- Dahulu, situs asli Dillo adalah dillo.org, yang mencakup repositori Mercurial, server mail, pelacak bug, dan arsip milis
- Pada 2022, domain tersebut hilang, dan pihak ketiga membuka situs serupa yang dipenuhi iklan AI
- Sebagian materi berhasil dipulihkan, tetapi tidak sepenuhnya lengkap
- Pengalaman ini mendorong keputusan untuk menghindari ketergantungan pada satu situs dan membangun struktur cadangan yang terdistribusi
- Awalnya kode diunggah ke GitHub, tetapi kemudian dinilai tidak cocok untuk jangka panjang
Masalah di GitHub
- GitHub berguna untuk workflow CI dan pengelolaan repositori, tetapi memiliki berbagai keterbatasan
- Frontend tidak berfungsi tanpa JavaScript, sehingga isu atau PR tidak dapat dilihat dengan peramban Dillo
- Halaman menggunakan sumber daya secara berlebihan dan menimbulkan beban yang tidak perlu hanya untuk merender HTML sederhana
- Ada risiko akun diblokir oleh satu entitas pengendali, yang dapat memutus akses ke data
- Platform semakin lambat dan menuntut koneksi internet yang cepat
- Sistem notifikasi “push model” GitHub tidak cocok dengan gaya pengembangan yang berfokus pada kerja offline
- Kurangnya alat pengelolaan komunitas pada proyek dengan proporsi pengguna non-pengembang yang tinggi meningkatkan kelelahan pengembang
- Ketika GitHub beralih ke fokus pada LLM dan AI generatif, situs-situs memperkuat tembok JavaScript atau pelacakan sidik jari browser untuk memblokir crawler LLM
- Efek sampingnya, akses pengguna Dillo ikut terblokir
Membangun hosting sendiri
- Layanan forge yang ada tidak mampu sekaligus menghilangkan single point of failure dan mempertahankan operasi yang ringan
- Karena itu diputuskan untuk mengoperasikan server sendiri dan mempertahankan beberapa mirror
- Domain dillo-browser.org dibeli dan server VPS kecil dibangun
- Operasinya ternyata lebih stabil dari perkiraan, dan sebagian besar hanya menangani trafik bot AI
- cgit dipilih sebagai frontend Git
- Ditulis dalam bahasa C sehingga penggunaan RAM dan CPU rendah, serta berfungsi tanpa JavaScript
- Sebagian CSS dimodifikasi agar tampil baik di Dillo
- Dapat diakses di https://git.dillo-browser.org/
- Pelacak bug menggunakan ‘buggy’ yang dikembangkan sendiri
- Mengurai file Markdown untuk menghasilkan halaman HTML, dan setiap bug disimpan di repositori git
- Saat commit, git hook secara otomatis memperbarui halaman
- Bisa diedit secara offline dan tidak menimbulkan kekhawatiran celah keamanan
- Tersedia di https://bug.dillo-browser.org/
- Arsip milis disimpan secara terdistribusi di 3 layanan eksternal, dan salinan internal akan ditambahkan di masa mendatang
Pengaturan mirror
- Semua data inti dikelola dalam bentuk repositori git dan dicerminkan ke Codeberg dan Sourcehut
- Bahkan jika repositori tertentu berhenti beroperasi, biaya perpindahan ke mirror lain tetap rendah
- Satu-satunya titik kegagalan tunggal adalah DNS (dillo-browser.org)
- Jika DNS hilang, pengguna dapat diberi tahu melalui milis, Fediverse, IRC, dan sebagainya
- Karena data direplikasi di git, kehilangan fatal tidak akan terjadi
Tanda tangan OpenPGP
- Halaman ini ditandatangani dengan kunci GPG Rodrigo Arias Mallo (32E65EC501A1B6FDF8190D293EE6BA977EB2A253)
- Ini adalah kunci yang sama dengan rilis terbaru Dillo, dan juga terdaftar di akun GitHub
- File tanda tangan (
index.html.asc) ditautkan melalui<link rel=signature>
- Tanda tangan OpenPGP memungkinkan kepercayaan tetap dipertahankan meski DNS hilang
- Kepemilikan dibuktikan berdasarkan kepercayaan pada tanda tangan, bukan rantai sertifikat TLS
- Tanda tangan disertakan di semua mirror git untuk memperkuat ketahanan terhadap kehilangan data
Progres migrasi dan prospek
- Repositori GitHub tidak akan langsung dihapus dan akan terus diperbarui sampai migrasi selesai
- Setelah selesai, repositori akan diubah ke status ‘archived’ dan diumumkan di situs resmi
- Commit yang ada dan file rilis akan dipertahankan demi kompatibilitas build lama
- Infrastruktur baru ini dapat dioperasikan secara mandiri dengan biaya dan konsumsi energi yang rendah
- Berdasarkan donasi saat ini dan biaya server, dapat dipertahankan setidaknya selama 3 tahun
- Jika ingin mendukung, bisa memberi bantuan melalui Liberapay (https://liberapay.com/dillo/)
1 komentar
Komentar Hacker News
Selama beberapa tahun saya memakai GitLab sebagai alternatif self-hosted. Saya suka, tetapi sangat boros sumber daya
Belakangan ini saya sedang menguji Forgejo buatan tim Codeberg, dan ini benar-benar luar biasa
Perbedaan terbesarnya ada pada penggunaan memori. GitLab berbasis Ruby on Rails sehingga banyak layanan berjalan bersamaan, sedangkan Forgejo adalah arsitektur biner tunggal yang ditulis dalam Go
GitLab perlahan menghabiskan memori VM 16GB, tetapi Forgejo hanya memakai sekitar 300MB bahkan saat server dan runner dijalankan bersama
Tidak ada GraphQL, tetapi REST API tampaknya sudah cukup bagus
Saya kurang paham perbedaan gitea dan forgejo, tetapi melihat dokumen perbandingan Forgejo, sepertinya ini adalah soft fork pada 2022 karena masalah tata kelola
Karena strukturnya sederhana dan berbasis Go, perawatan dan biayanya sangat rendah. Kami juga membangun alat internal langsung di atas Forgejo
Karena di-host on-premise, pengembangan dan CI tidak berhenti meski internet putus. Ia juga mendukung cache package manager sehingga pengelolaan dependensi jadi mudah
Dibanding GitHub, downtime-nya 10 kali lebih sedikit, dan itu pun sebagian besar adalah pemeliharaan terjadwal
Kalau ada tulisan yang mengklaim availability GitHub lebih baik, rasanya lucu
Saat membuat repositori baru, cukup
git init --bare, dan backup juga berjalan otomatisKalau mengembangkan sendirian, rasanya UI memang tidak terlalu diperlukan
Saya rasa CI ala GitLab jauh lebih baik daripada GitHub Actions, GitHub memang jadi standar berkat popularitasnya, tetapi desainnya terasa kurang memuaskan
Hanya dengan file system bersama, scaling dan backup pun jadi sederhana
Saya menjalankan klub matematika di daerah, dan anak-anak memakai Forgejo untuk mengumpulkan tugas LaTeX dan Python
Pengelolaan login dan reset kata sandinya mudah, jadi sangat berguna juga untuk pendidikan
Saya setuju dengan pendapat yang tidak menyukai model notifikasi push GitHub dan ingin melihat pembaruan hanya saat memeriksanya sendiri
Dengan memanfaatkan penyaringan email, notifikasi push bisa diubah seperti model pull. Kumpulkan notifikasi di folder khusus lalu lihat hanya saat diperlukan
Menarik membaca cerita dari orang yang membuat sendiri bug tracker sederhana bernama 'buggy'. Katanya ini alat C yang mem-parsing Markdown dan menghasilkan halaman HTML
Semangat hacker-nya masih hidup
Ada pertanyaan yang menanyakan perbedaan antara “model push” dan “model pull”
Saya rasa sekarang kita sedang berada pada fase diaspora ketika berbagai alternatif GitHub bermunculan sekaligus
Dalam beberapa bulan, bisa saja satu arus utama mulai mengerucut. Kalau ada perusahaan atau tokoh terkenal meluncurkan platform baru, mereka juga bisa memimpin pasar
Proyek yang meninggalkan GitHub masih sangat sedikit, jadi menurut saya masih terlalu dini
Justru sedang terjadi re-decentralization. Ini zaman ketika masing-masing memilih forge yang sesuai dengan kontrol, yurisdiksi, dan workflow mereka sendiri
Saya ingin mengundang proyek Dillo ke Tangled → tangled.org
Saya rasa masalah terbesar GitHub adalah pengalaman penggunaan yang makin lambat
Untuk penjelajahan kode saya mengandalkan github.dev, tetapi PR dan Actions tetap lambat dan membuat frustrasi
Jika ingin memasang Forgejo di VM, saya sudah membuat skrip yang bisa menyiapkan server dan runner sekaligus → easyforgejo
Saya bukan ahli di topik ini, tetapi tetap membacanya dengan menarik
Mengejutkan bahwa ada begitu banyak hal yang perlu dipertimbangkan hanya untuk menyiapkan satu sistem kontrol versi
Saya memakai Fossil, dan untuk organisasi kecil saat satu orang merangkap sebagai developer, admin sistem, dan staf dukungan, ini jauh lebih sederhana
Batasan deploy key GitHub juga merepotkan. Saat menjalankan banyak aplikasi dan server, saya harus mengatur key terpisah untuk masing-masing, dan itu cukup merepotkan