SourceHut, Git Forge Open Source Alternatif GitHub

Mengenal SourceHut sebagai git forge yang Open Source dan ringan untuk manajemen repositori pengembangan perangkat lunak.
development
literacy
productivity
Author
Published

April 2, 2024

Modified

April 2, 2024

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.

SourceHut Website
Figure 1: SourceHut website.

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.

Table 1: Daftar git forge yang pernah digunakan oleh penulis.
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 & Proprietary

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.

Plain Text Email

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.

Forgeperf Website
Figure 2: Forgeperf website.

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 Sources
Figure 3: SourceHut source website.

Sourcehut tidak hanya memberikan layanan repositori git saja, tetapi banyak layanan yang sediakan, yaitu antara lain.

Table 2: Macam-macam layanan di sourcehut.
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.

SourceHut Pricing
Figure 4: SourceHut pricing website.
  • 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:

Table 3: Daftar sistem operasi distribusi linux di CI sourcehut..
Alpine linux Arch linux Debian
Fedora FreeBSD Guix System
NetBSD OpenBSD Rocky linux
Ubuntu

Arsitektur yang didukung:

Table 4: Daftar arsitektur yang didukung sourcehut.
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.

Hervyqa's SourceHut
Figure 5: Tampilan profil sr.ht/~hervyqa di sourcehut.

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

Parasrah. 2022. “Why Use SourceHut.” February 5, 2022. https://blog.parasrah.com/posts/why-use-sourcehut.
PostMarketOS. 2022. “Considering SourceHut.” July 22, 2022. https://postmarketos.org/blog/2022/07/25/considering-sourcehut.
Struś, Marcin. 2022. “Going SourceHut.” April 25, 2022. https://blog.strus.guru/2022/04/going-sourcehut/.

Footnotes

  1. 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

BibTeX citation:
@online{qurrotul2024,
  author = {Qurrotul, 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}
}
For attribution, please cite this work as:
Qurrotul, Hervy. 2024. “SourceHut, Git Forge Open Source Alternatif GitHub.” April 2, 2024. https://hervyqa.dev/blog/sourcehut-git-forge-open-source-alternatif-github.