Sebagai pengembang perangkat lunak tentu tidak asing dengan GitHub sebagai penyedia hosting repositori git, istilah lain sebagai git forge. Selain GitHub, ada alternatif lain seperti Gitlab, Codeberg, SourceForge dan Bitbucket. Penulis pernah menggunakan semua itu tetapi tidak membahasnya untuk kali ini.
Manfaat menggunakan Git Forge
Sebelum menggunakan git forge seperti sourcehut, sebaiknya harus mengetahui manfaat umum yang didapatkan ketika menggunakan git forge.
- Memudahkan kolaborasi kode. Jika bekerja dengan tim maka disarankan menggunakan git forge karena banyak fitur yang disediakan.
- Memantau perubahan kode sebelum masuk ke cabang utama (branch main). Memantau hasil kode sangat penting bagi manajer proyek yang mana harus memeriksa kualitas kode.
- Sebagai portofolio bagi Developer. Berbagai proyek yang sudah pernah dikerjakan bisa dijadikan publik portofolio yang dapat dijadikan referensi.
Dengan berbagai macam manfaat disebutkan di atas maka menggunakan instansi git forge maka seorang developer seharusnya memiliki salah satu darinya.
Mengapa SourceHut?
SourceHut merupakan salah satu instansi penyedia hosting repositori git berbasis cloud untuk mengelola dan memanajemen kode proyek. Tentu saja sourcehut juga merupakan perangkat lunak yang terbuka sehingga dapat disesuaikan oleh penggunaya.
Lantas, apa saja benefit yang didapatkan ketika menggunakan sourcehut dari pada menggunakan git force lainnya? beberapa diantaranya ada fakta yang menarik yang penulis temukan.
Perangkat lunak terbuka yang bebas
SourceHut merupakan salah satu perangkat lunak git forge yang terbuka (Free & Open source) dibawah lisensi GNU Affero General Public License (AGPL 3.0). Tidak seperti github atau gitlab, sourcehut 100% open source. Anda dapat melihat, mengakses, memodifikasi kode sumber sourcehut di sr.ht/~sircmpwn/sourcehut. Jika dibandingkan dengan git forge lain seperti github hal ini mustahil diakses karena hanya yang berwenang saja di perusahaan yang tahu kode sumbernya. Bahkan sourcehut dapat dipasang secara mandiri.
Beberapa git forge yang pernah penulis gunakan beserta kode sumbernya.
Git Forge | Kode | Domain |
---|---|---|
SourceHut | Open Source | git.sr.ht/~hervyqa |
GitLab | Open Source1 | gitlab.com/hervyqa |
GitHub | Proprietary | github.com/hervyqa |
BitBucket | Proprietary | bitbucket.org/hervyqa |
Open Source merupakan kode perangkat lunak yang terbuka, sedangkan proprietary merupakan kode program yang tertutup yang tidak dibagikan secara publik. Hanya yang mendapatkan kewenangan saja yang dapat mengaksesnya.
Sourcehut tidak didirikan oleh perusahaan besar. Tetapi didirikan oleh Drew DeVault sebagai CEO dan selaku maintainer proyek wlroot dan sway bersama Simon Ser yang sebagai manager rilis proyek wayland. Selain itu sourcehut bersama engineer hebat Conrad Hoffmann yang berkontribusi di proyek KDE, HAProxy dan Promotheus ecosystem.
Penulis juga pengguna teknologi yang mereka buat seperti KDE, wayland dan sway yang disimpan di repositori swayhome untuk menyimpan berbagai macam dotfiles.
Data kode yang dimiliki sendiri
Tidak ada pihak ketika di sourcehut yang memungkinkan untuk berbagi data, baik data kode maupun data pengguna. Jika dilihat dari jejak pendirinya, mereka telah lama membuat berbagai macam perangkat lunak free software yang memungkinkan untuk sangat berhati-hati tentang privasi pengguna.
Apakah tahu dengan Github Copilot, mungkin ada yang pernah menggunakannya. Kode yang dihasilkan dari AI merupakan kode dibawah lisensi GPL yang dijadikan produk proprietary, tentu ini melanggar kebijakan lisensi itu sendiri. Di sourcehut kode program milik sepenuhnya oleh programmmer atau developer.
Dapat diakses dengan cepat dan ringan
Performa sourcehut lebih cepat dibandingkan dengan git forge lainnya. Seperti ketika membuka teks polosan (plain text), sourcehut seringan itu. Workflow sourcehut sendiri juga menggunakan plain text email untuk mengirim patch, ulasan, membalas pesan atau berkomentar. Tidak ada fitur pull request (PR) didalamnya, tetapi menggunakan email based mirip seperti yang digunakan pengembangan linux kernel yang menggunakan plain text email. Sekedar info, proyek Git sendiri pada dasarnya pengembangannya berbasis email sampai sekarang, bukan berbasis pull request seperti git forge komersil pada saat ini.
Jika tertarik mengapa menggunakan plain text email dari pada menggunakan HTML email, penulis menyarankan untuk mengunjungi useplaintext.email.
Drew DeVault juga merupakan pengembang dari Aerc Mail yang merupakan email client berbasis TUI dan mendukung vim workflow yang memudahkan untuk para pengembang yang keyboard centric.
Bahkan sourcehut mengklaim yang tercepat dari perangkat lunak git forge lainnya seperti pagure, github, gitlab, bitbucket dan codeberg. Selengkapnya bisa merujuk ke tautan forgeperf.org untuk mengetahui perbedaan yang lebih detail.
Independen dan modular
SourceHut dapat dipasang secara mandiri oleh pengguna. Cara pemasangan dapat merujuk ke bagian pemasangan sourcehut di man.sr.ht/installation.md. Layanan sr.ht
membutuhkan sebuah PostgreSQL server, Redis server dan mail server. Dikarenakan kode sumber sourcehut yang terbuka, maka dapat dipasang selama memiliki infrastruktur untuk CI dan CD (Parasrah 2022). Tentu saja tidak ada biaya berlangganan dan biaya lisensi yang dikenakan jika memasang sourcehut secara mandiri. Setiap orang juga dapat berkontribusi ke sourcehut untuk pengembangan layanannya (Struś 2022).
Sourcehut tidak hanya memberikan layanan repositori git saja, tetapi banyak layanan yang sediakan, yaitu antara lain.
Layanan | Deskripsi |
---|---|
builds.sr.ht | Layanan continuous integration. |
git.sr.ht | Layanan repositori git. |
hg.sr.ht | Layanan repositori mercurial. |
hub.sr.ht | Layanan index dan pengorganisir proyek. |
lists.sr.ht | Layanan mailing list. |
man.sr.ht | Layanan wiki proyek. |
meta.sr.ht | Layanan autentifikasi dan layanan akun pengguna. |
pages.sr.ht | Layanan web statis. |
paste.sr.ht | Layanan pasting kode. |
todo.sr.ht | Layanan isu dan bug tracker. |
Memang secara independen lebih membutuhkan banyak effort dari membuat infrastrukturnya, manajemen CI/CD, stabilitas dan kemungkinan adanya penambalan kerentangan sistem. Akan merepotkan jika terjadi demikian. Tetapi sourcehut juga memiliki beberapa parameter yang dapat dipertimbangkan untuk dipasang dan digunakan untuk production.
- Seberapa banyak terikat dengan instansi pihak ketiga?
- Seberapa bagus kualitas kodenya?
- Seberapa banyak bug yang ditemukan?
- Bagaimana bug tersebut diselesaikan?
- Seberapa banyak orang yang terlibat?
- Dan sebagainya.
Dari parameter tersebut sourcehut masih dalam kategori “aman”. Bahkan, salah satu sistem operasi yang berbasis Android yang bernama PostMarketOS juga mempertimbangkan dengan serius untuk menggunakan sourcehut untuk infrastrukturnya yang mandiri (PostMarketOS 2022).
Jika menggunakan sistem operasi berbasis Nix maka mudah sekali memasang sourcehut, sebab sudah ada pilihan untuk mendeklarasikannya yang terintegrasi dengan PostgreSQL dan Redis. Penulis juga tertarik untuk mencobanya dilain waktu.
Biaya yang terjangkau
Saat ini sourcehut memasuki tahap pengembangan alpha yang mana pengguna dapat menggunakan semua fitur yang ada, kecuali sistem build/deploy di build.sr.ht. Untuk menggunakan fitur ini pengguna diharuskan membayar untuk menggunakan layanan sistem build. Jika boleh penulis katakan ini bukan membayar, melainkan membantu atau berdonasi untuk biaya penghidupan. Misalnya untuk biaya listrik, pajak dan akomodasi para developer sourcehut. Uniknya di sourcehut tidak ada jenis kategori pricing plan yang memaksa, maksudnya setiap kategori memiliki fasilitas yang sama meski dengan harga yang berbeda. Selengkapnya ada di sourcehut pricing.
- Amateur Hacker: $2/bulan atau $20/tahun
- Typical Hacker: $5/bulan atau $50/tahun
- Profesional Hacker: $10/bulan atau $100/tahun
Jika dirupiahkan dengan kurs Rp16.000 menjadi:
- Amateur Hacker: Rp320.000/tahun
- Typical Hacker: Rp800.000/tahun
- Profesional Hacker: Rp1.600.000/tahun
Fasilitas dan fitur yang didapatkan sama antara ketiganya. Pengguna bebas untuk memilih kategori yang dikehendaki dan tergantung perencaaan kebutuhan finansial. Pembayarannya juga mudah melalui kartu kredit, stripe atau mata uang kripto.
Bagaimana bisa murah? Baik, coba penulis bandingkan. Misalnya menyewa VPS seharga Rp50.000 perbulan, maka pertahunnya Rp600.000. Lebih murah dari sourcehut seharga Rp320.000 (Amateur Hacker) atau 46.6% lebih murah dari menyewa VPS sendiri.
Mengapa membayar untuk sistem deploy CI/CD padahal git forge lainnya seperti github dan gitlab gratis? Sebenarnya git forge lain tidaklah gratis. Pengguna tidak membayar karena sudah ada yang membayari dibalik itu, seperti banyak pihak venture capital (investor) yang mensponsori perusahaan git forge tersebut. Sedangkan sourcehut, kita tahulah posisinya bagaimana.
Tidak ada pelacakan dan iklan
Sejauh ini semenjak artikel ditulis penulis tidak menemukan iklan di sourcehut. Di halaman utama sourcehut juga menyebutkan tidak ada pelacakan dan iklan yang ditampilkan di sourcehut. Bahkan semua fitur bekerja tanpa Javascript.
SourceHut sederhana dan ringan, jangan salah menilai dari tampilan situs websitenya yang terlihat klasik tanpa ada tampilan yang artistik. Mungkin bisa dikatakan secara tampilan visual (UI) cukup buruk karena tidak ada animasi, motion, pop-up, dan pernak-pernik lain-lain. Tetapi secara pengalaman pengguna (UX) sourcehut benar-benar sangat responsif dan terbaik bagi penulis, meski membutuhkan pembiasaan menggunakan email workflow.
Adanya hut
sebagai perkakas CLI pendukung sourcehut
Hut merupakan aplikasi CLI untuk berinteraksi dengan sr.ht. Berfungsi untuk memantau pekerjaan deploy sistem, melihat tiket, daftar penambalan (patch), repositori git dan lain-lain. Bahkan dapat dispesifikkan berdasarkan nama, pemilik atau url.
Dengan hut
akan memudahkan untuk mengelola repositori sourcehut, sehingga tidak perlu membuka via website untuk mengakses sourcehut. Untuk pengaturan pertama kalinya membutuhkan hut init
untuk inisiasi token yang berguna mengidentifikasi akun pengguna.
Terminal
hut help
hut is a CLI tool for sr.ht
Usage:
hut [command]
Available Commands:
builds Use the builds API
export Exports your account data
git Use the git API
graphql Execute a GraphQL query
help Help about any command
hg Use the hg API
init Initialize hut
lists Use the lists API
meta Use the meta API
pages Use the pages API
paste Use the paste API
todo Use the todo API
Flags:
--config string config file to use
-h, --help help for hut
--instance string sr.ht instance to use
Use "hut [command] --help" for more information about a command.
Di sourcehut penulis, juga dapat melihat bebeberapa repositori dengan hut
.
Terminal
hut git list
website (public)
Learn about data science and statistics in bahasa.
swayhome (public)
Nixos configuration, sway and home-manager.
oldblog (public)
Personal blog of Hervy qurrotul
dotfire (public)
Nixos KDE Plasma configuration for data science.
Mendukung situs web dengan sourcehut pages
Anda dapat membuat halaman situs web secara gratis dengan sourcehut pages dengan menggunakan nama domain username.srht.site
. Situs web hervyqa.dev yang repositorinya di git.sr.ht/~hervyqa/website juga dibangun menggunakan sourcehut pages, tetapi menggunakan kustom domain. Cara membuat sourcehut pages juga sangat sederhana, hanya dengan membuat berkas .build.yml
.
Sebagai contoh mendeploy web statis dengan hugo
. Beberapa contoh lainnya dapat ditemukan di pages sr.ht examples.
.build.yml
image: alpine/latest
packages:
- hugo
oauth: pages.sr.ht/PAGES:RW
environment:
site: namasitus.com
files: site.tar.gz
tasks:
- package: |
cd $site
hugo
tar -C public -cvz . > ../$files
- upload: |
hut pages publish -d $site $files
Sebagai opsional, ganti DNS server di domain management penyedia domain agar bisa mendukung kustom domain di sourcehut.
@ IN A 46.23.81.157
@ IN AAAA 2a03:6000:1813:1337::157
Arsitektur Continuous Integration yang beragam
SourceHut dilengkapi berbagai macam sistem operasi distribusi linux dengan berbagai arsitektur untuk kebutuhan Continuous Integration (CI). Sistem operasi yang didukung yaitu antara lain:
Alpine linux | Arch linux | Debian |
Fedora | FreeBSD | Guix System |
NetBSD | OpenBSD | Rocky linux |
Ubuntu |
Arsitektur yang didukung:
x86_64 |
aarch64 |
arm64 |
armel |
armhf |
ppc64el |
s390x |
i386 |
x86 |
Dan masih banyak arsitektur lainnya. Jika menggunakan arsitektur x86_64
atau amd64
maka arsitektur tersebut menggunakan perangkat keras yang native. Selengkapnya dapat merujuk ke halaman kompatibilitas.
Penutupan
Secara pribadi sourcehut memang layak untuk digunakan bagi developer. Beberapa repo penting pribadi sudah dimigrasikan ke sourcehut termasuk repo website ini. Saat pertama kali menggunakan sourcehut, reponya masih sepi dan tidak terlalu banyak berdasarkan pengamatan penulis pada saat itu. Tetapi setelah meneliti fitur dan bagaimana sourcehut bekerja, penulis mulai tertarik dengan beberapa kelebihan yang tidak ada di git forge lainnya. Pertimbangan awal memilih sourcehut adalah cepat, minim bug, ada aplikasi cli-nya (hut), sistem yang dibangun dengan baik dan tentunya open source.
SourceHut bukan git forge yang viral dan terkenal. Tidak ada fitur menjadi terkenal di sosial media. Misalnya tidak ada pemberian bintang atau jumlah total bintang di repositori, tidak ada lencana khusus, tidak ada banner repositori sehingga gambar thumbnail-nya tampak elegan. Bahkan penggunanya tidak ada fitur mengunggah foto profil. Tetapi dengan kekurangan itu banyak repositori proyek besar ada di sourcehut, fitur tombol terkenal tidak terlalu dibutuhkan. Dengan meninggalkan pernak-pernik tersebut maka sourcehut semakin minimalis dan cepat. Kembali ke konsep less is more.
Membayar di sourcehut untuk fitur deploy masih masuk akal bagi penulis. Pertama, dari sisi harganya yang masih terjangkau. Dan kedua, uangnya tetap tinggal di ranah FOSS (Free Open Source Software), bukan mengalir ke investor. Mungkin ini bisa menjadi pro-kontra, tetapi sampai kapanpun tetap tidak masuk akal untuk diperdepatkan. Logika yang paling sederhana, apakah ada listrik yang gratis? segratis-gratisnya tetap membutuhkan usaha. Sedangkan usaha juga membutuhkan akomodasi dan perbekalan.
Kata “bebas” dalam prinsip free software memiliki cangkupan (scope) khusus yang mana tidak bisa dipukul rata, kasarnya “kalau free ya free semua”, jelas tidak mungkin bisa. Beberapa scope memang gratis, sedangkan scope lain tidaklah gratis dan masing-masing memiliki batasannya sendiri. Penulis berpikir kalau model bisnis yang diterapkan sourcehut ini jelas dan transparansi. Terdapat pelaporan finansial tahunan juga, misalnya tahun 2019, 2021, dan 2022.
Jika terbiasa menggunakan alur kerja email based dan memprioritaskan membutuhkan performa maka sourcehut layak dicoba.
Sekian, jika Anda mempunyai pertanyaan, saran, dan kritikan silahkan kirim ke email, telegram atau instagram. Semoga tulisan ini bermanfaat untuk pembaca semuanya.
References
Footnotes
Kode sumber Gitlab merupakan perangkat lunak terbuka tetapi tidak sepenuhnya terbuka, terdapat beberapa kode proprietary (kode tertutup). Jika menggunakan kode terbuka, pengguna dapat menggunakan gitlab-floss.↩︎
Reuse
Citation
@online{qurrotul_ainur2024,
author = {Qurrotul Ainur, Hervy},
title = {SourceHut, {Git} {Forge} {Open} {Source} {Alternatif}
{GitHub}},
date = {2024-04-02},
url = {https://hervyqa.dev/blog/sourcehut-git-forge-open-source-alternatif-github/},
langid = {en}
}