Saya hanya menjalankan aplikasi (di server) yang sumber kode nya terbuka (berdasarkan definisi OSI), menghargai privasi pengguna, keduanya, atau diantaranya.

Saya selalu menghindari aplikasi yang “phone home” tanpa consent (opt-out) apalagi yang dikategorikan sebagai spyware.

Infrastruktur

Traefik

https://traefik.io (Source Code)

Salah satu reverse proxy favorit saya setelah Caddy, OpenRestyÂŽ dan HAProxy. Reverse proxy bertugas untuk meneruskan permintaan HTTP(s) masuk ke layanan yang dimaksud yang umumnya dikategorikan berdasarkan virtual hosts nya. Dukungan terhadap TLS termination dan penerapan protokol ACME adalah alasan saya mengutamakan Traefik. Juga, karena cara untuk mengkonfigurasi Traefik yang relatif sederhana dan lumayan beragam.

Untuk case yang relatif sederhana (seperti sebagai sidecar proxy), saya akan memilih Caddy. Untuk case yang membutuhkan dynamic routing (seperti untuk handle proxy di multi-tenant SaaS), saya akan memilih OpenResty, jika bukan keduanya, saya akan memilih Traefik. HAProxy? Anggap hanya ketika ada permintaan khusus.

No love for Nginx? Anggap ini tidak terjadi, dan, hey, saya sudah menyebutkan OpenResty®, ‘kan?

PostgreSQL

https://www.postgresql.org (Source Code)

PostgreSQL: The World’s Most Advanced Open Source Relational Database, begitulah tagline dari database ini. Postgres dapat diandalkan, menawarkan fitur yang kokoh dan memiliki performa yang dapat diadu. PostgreSQL menjadi database utama saya dan menjadi penentu bila database yang satu ini tidak didukung pada suatu aplikasi yang ingin saya pakai.

Tidak memiliki alasan lain untuk tidak menggunakan PostgreSQL, dan harus memiliki alasan yang sangat kuat jika harus menggunakan alternatif seperti MySQL/MariaDB dalam memilih RDBMS. Dan jika memang memiliki alasan yang sangat kuat, alternatif itu sudah pasti SQLite.

MinIO

https://min.io (Source Code)

Aturan sudah dibuat: belum cloud-native jika masih bergantung dengan Block Storage sebagai penyimpanan. Object storage menjadi komponen vital untuk mereka yang mengadopsi cloud-native. Berbeda dengan block storage yang menyimpan “data” sebagai… block, object storage menggunakan object ID sebagai metadata nya, yang memungkinkan penyimpanan tidak terbatas karena “besaran block” sudah bukan lagi pengukur.

Amazon S3 yang ingin menjadi malloc nya internet menjadi standar dan pelopor untuk API di Simple Storage Service. Keberadaan tools yang netral sangat dibutuhkan dan yang sudah ada—OpenStack Object Storage (Swift)—tidak kompatibel dengan API yang dimiliki oleh Amazon S3.

Lalu disini MinIO berperan: sebuah object storage yang berdiri sendiri, open source, dan kompatibel dengan API S3 nya AWS. Selain model deployment nya yang relatif sederhana, MinIO menawarkan performa yang tinggi dengan footprint yang relatif rendah.

MinIO digunakan dimanapun yang mendukung penyimpanan berbasis object.

Gitea

https://about.gitea.com (Source Code)

Tidak hanya sebagai git server repository, Gitea menawarkan fitur untuk code review; package/container registry dan CI/CD sebagaimana “platform DevOps” pada umumnya. Berbeda dengan alternatif lain seperti GitLab yang relatif kompleks dalam operasionalnya, Gitea ditulis menggunakan Go dan hanya membutuhkan 1 file binary untuk menjalankannya.

Selain itu, Gitea relatif cepat dan memiliki footprint yang relatif rendah. Mendukung database populer untuk penyimpanan metadata, begitupula dukungan terhadap object storage.

Umami

https://umami.is (Source Code)

Hanya sebuah web analytics yang menghargai privasi pengguna. Tidak ada data pribadi—yang mengarah ke “seseorang” di dunia fisik—yang disimpan seperti alamat IP dan geolokasi apalagi sebuah “berkas kecil” bernama cookies yang disimpan di perangkat pengguna.

Aplikasi umami yang saya jalankan umumnya menghargai pengaturan Do-Not-Track (DNT) di request header dan dipanggil melalui sebuah script bernama umami.js yang kemungkinan besar akan diblokir jika menggunakan “ad blocker” populer seperti uBlock Origin seperti yang saya lakukan juga.

Web analytics hanyalah pelengkap untuk ego saya dalam mengumpulkan “insight” terhadap situs yang saya kelola dan murni dianggap sebatas vanity metrics.

Home Theater PCs (HTPCs)

https://www.navidrome.org (Source Code)

Sebuah music server dan streamer modern, mendukung audio transcoding (on the fly) dan kompatibel dengan Subsonic API. Memiliki footprint yang relatif rendah dan berjalan hampir di setiap platform.

Tidak ada alasan untuk tidak menjalankan Navidrome khususnya jika mengoleksi musik dalam bentuk digital. Mendukung integrasi eksternal dengan Last.fm/ListenBrainz untuk scrobbling dan/atau mengambil metadata khususnya terkait cover art ataupun artis yang dimaksud.

Jellyfin

https://jellyfin.org (Source Code)

Penting untuk dicatat bila Jellyfin adalah “fork” dari Emby (3.5.2) yang ditulis menggunakan C#. Ada sedikit perbedaan khususnya di sisi performa/footprint dan ukuran aplikasi jika dibandingkan dengan alternatif nya seperti Plex yang ditulis menggunakan C++ (jika merujuk ke sejarah Plex ← XBMC/Kodi) yang relatif lebih ringan dan memiliki ukuran yang lebih kecil.

Saya hanya menggunakan Jellyfin untuk kepentingan video, jika ada alternatif lain (selain Kodi), please let me know very soon!

Pribadi

Vaultwarden

https://github.com/dani-garcia/vaultwarden/wiki (Source Code)

Sebuah password manager yang kompatibel dengan API nya Bitwarden, yang mana sebuah password manager juga. Ditulis menggunakan bahasa pemrograman Rust yang menjanjikan memory safety dan footprint yang relatif rendah jika dibandingkan dengan versi resminya yang ditulis menggunakan C#.

Bitwarden berjalan di hampir semua platform: Windows, GNU/Linux, Mac OS, Android, iOS, Google Chrome, Mozilla Firefox, Safari, x86_64, aarch64, dimanapun. Mungkin berjalan di varian *BSD juga.

Password adalah informasi yang sangat sensitif sehingga pengetahuan untuk “mengaturnya” dengan aman dan benar sangat diperlukan. Bitwarden menawarkan “managed services” untuk mereka yang kurang familiar ataupun tidak memiliki cukup waktu dengan teknologi tersebut, sehingga tidak perlu menjalankan aplikasi server nya Bitwarden dengan tangan sendiri untuk memulai menggunakan.

Synology Photos

https://www.synology.com/en-global/dsm/feature/photos (Proprietary)

Menggunakan ini hanya karena memiliki perangkat keras nya, dan sayangnya sangat sesuai dengan kebutuhan saya. Saya hanya membutuhkan: aplikasi yang menampilkan foto/video yang dikategorikan berdasarkan waktu; tempat, album (cukup standar), informasi terkait metadata, dan mendukung HEIV & HEVC (tipikal pengguna Apple).

Synology Photos mendukung backup juga sehingga dapat mengganti peran aplikasi Photos di perangkat Apple saya.

Synology MailPlus

https://www.synology.com/en-global/dsm/feature/mailplus (Proprietary)

Sudah lama saya ingin mengarsipkan semual email saya dan mengkategorikannya berdasarkan “mailbox” seperti “IMBOX”, “Paper Trail”, dan “The Feed”, yang mana konsep yang saya ambil dari layanan Hey nya 37signals. Di “platform” email modern, ini dapat dicapai menggunakan protokol IMAP, namun “membersihkan” email yang disimpan di komputer pihak ketiga bukanlah pekerjaan yang sederhana.

Saya menggunakan Migadu dan beruntungnya Migadu mendukung protokol POP. Alurnya sederhana: setiap 1 menit, server saya akan mengambil data email terbaru dari remote server dan menghapusnya setelah terambil. Untuk email keluar? Melalui protokol SMTP, cukup standar! Saya belum menemukan aplikasi serupa yang sesuai dengan kebutuhan saya tersebut selain Synology MailPlus, meskipun aplikasi tersebut cukup overkill untuk kebutuhan saya.

ArchiveBox

https://archivebox.io (Source Code)

Saya ingin mengarsipkan segala hal yang saya minati di internet. Paper, halaman web, apapun yang diakses melalui protokol HTTP(s). Ini nantinya menjadi seperti perpustakaan pribadi digital saya untuk apapun yang ada di internet.

Seiring berjalannya waktu, “perpustakaan digital” saya tersebut akan menjadi salah satu sumber dari mesin pencari yang akan saya gunakan (SearXNG) setelah DuckDuckGo (Bing).

Komunitas

Forem

https://www.forem.com (Source Code)

Platform untuk berbagi tulisan, ditulis menggunakan Ruby diatas kerangka kerja Ruby On Rails. Aplikasi ini mentenagai evilfactorylabs.org sejak Juli 2021 kemarin. Aplikasi ini relatif kompleks, setidaknya ada 4 layanan utama yang harus berjalan: Web server, worker (sidekiq), imgproxy, dan OpenRestyÂŽ. Tentu saja PostgreSQL dan Redis juga.

Saya tidak terlalu merekomendasikan aplikasi ini untuk kepentingan berkomunitas, namun belum menemukan alternatif serupa yang cukup “bisa diadu” selain Discourse, Apache Answer, dan Flarum.

PeerTube

https://joinpeertube.org (Source Code)

Platform untuk berbagi video, ditulis menggunakan JavaScript. Mendukung protokol ActivityPub sehingga dapat “berfederasi” dengan “instance” dan pengguna lain. Menggunakan teknologi peer-to-peer (P2P) di beberapa fitur nya, sehingga dapat mengurangi beban kerja server dengan semangat gotong royong antar penonton.

Saya masih meng-eksplorasi teknologi ini (khususnya di platform berbagi video) dan akan terus menyelamnya lebih dalam lagi.

Aplikasi ini mentenagai evilfactorylabs.social sejak Desember 2023 kemarin.

Mastodon

https://joinmastodon.org (Source Code)

Platform untuk berbagi status singkat alias microblogging, ditulis menggunakan Ruby diatas kerangka kerja Ruby On Rails (come on, what else?) dan menggunakan protokol ActivityPub untuk fitur sosial nya. Ini adalah salah satu aplikasi terlama yang pernah saya jalankan (Oktober 2021) setelah Forem.

Kepikiran untuk menjalankan Bluesky karena konsep dan arsitekturnya (dan ActivityPub sudah ada PeerTube anyway) but let’s see.

Aplikasi ini mentenagai edgy.social sejak Oktober 2021 kemarin.