- OS server Linux yang dirancang khusus untuk kontainer Docker; cukup boot ISO dan langsung masuk ke lingkungan Docker Engine
- Sistem inti dibuat dengan arsitektur immutable dan stateless, sementara hanya
/etc, /var, /home, dan data Docker yang dipisahkan ke area tulis terpisah, sehingga sangat mengurangi beban instalasi dan konfigurasi awal
- Filesystem data bawaan adalah penyimpanan volatil berbasis tmpfs; saat persistensi diaktifkan, perangkat penyimpanan terpisah akan dideteksi otomatis, dipartisi, diformat, dan di-mount, serta bila perlu dapat dikonfigurasi sebagai Btrfs RAID1
- Menggunakan root read-only berbasis
squashfs dan komponen minimum untuk mengurangi permukaan paparan terhadap malware atau perubahan tak disengaja, sekaligus menurunkan penggunaan sumber daya dan konsumsi daya
- Khusus x86-64 dan berjalan di bare metal maupun mesin virtual, sehingga Anda bisa langsung fokus pada menjalankan kontainer dan mengoperasikan self-hosting alih-alih mengelola server itu sendiri
Ikhtisar
- OS server Linux yang dirancang khusus untuk kontainer Docker, dan saat live boot dari ISO akan langsung masuk ke lingkungan Docker Engine
- Untuk mengurangi beban instalasi dan konfigurasi awal, sistem inti dibuat immutable, sementara data dan kustomisasi pengguna dipisahkan ke area penyimpanan tersendiri
- Menargetkan homelab, bare metal, lingkungan virtualisasi, edge node, hingga klaster, tetapi arsitektur yang didukung terbatas pada x86-64
- Mengutamakan komposisi minimum dan kemudahan penggunaan, sehingga fokus berpindah dari administrasi server ke menjalankan dan mengoperasikan kontainer itu sendiri
Fitur utama
- Dengan model plug and play, cukup unduh ISO dan boot, maka Docker Engine beserta alat yang dibutuhkan langsung siap digunakan
- Meminimalkan komponen untuk menurunkan beban belajar dan memudahkan memahami cara kerja sistem dengan cepat
- Menggunakan inti yang immutable dan stateless untuk mengurangi permukaan paparan terhadap malware dan perubahan tak disengaja, serta selalu boot dalam keadaan yang sama
- Menyediakan persistensi opsional; filesystem data bawaan adalah
tmpfs volatil di RAM, dan saat persistensi diaktifkan sistem otomatis mendeteksi perangkat penyimpanan terpisah, mempartisi, memformat, dan me-mount-nya
- Mengurangi proses yang tidak perlu untuk menekan penggunaan sumber daya dan konsumsi daya, serta memperpanjang masa pakai perangkat lama atau berspesifikasi rendah
- Mempermudah menjalankan self-hosting agar pengguna bisa mengurangi ketergantungan pada Big Tech dan mengelola data serta privasi mereka sendiri
Cara memulai
- Unduh image dari ISO terbaru atau bagian unduhan, tulis ke USB, lalu boot
- Pada beberapa sistem, mungkin perlu menonaktifkan safe boot di BIOS sebelum boot
- Login bawaan adalah nama pengguna
op dan kata sandi opsecret; sebelum mengekspos sistem ke internet, setidaknya ganti kata sandi terlebih dahulu
- Wi-Fi dapat dikonfigurasi secara opsional dengan
setup-wifi
- Menjalankan kontainer sama seperti penggunaan Docker biasa; contoh yang digunakan adalah
docker run -it --rm busybox ps
- Saat mengaktifkan persistensi, magic header harus ditulis ke block device, bukan partisi, dan proses ini akan menghapus data yang ada
Struktur boot dan runtime
- ISO dapat di-boot di bare metal maupun mesin virtual, serta mendukung UEFI dan BIOS tradisional
- Proses startup menggunakan sistem init mirip sysv untuk menjaga alur boot tetap sederhana dan transparan
- Bootloader memuat kernel Linux dan root filesystem ke memori, lalu kernel menginisialisasi perangkat keras dan menyerahkan kontrol ke
/init
init membaca /etc/inittab, me-mount tmpfs untuk /tmp dan /run, lalu menjalankan skrip di /etc/init.d
- Pada tahap awal, data filesystem di-mount untuk menyediakan data Docker dan lapisan atas overlay bagi
/etc, /var, dan /home
- Setelah seluruh filesystem dan overlay siap, layanan lain dijalankan, dan sejak saat itu sistem dapat melayani kontainer
Desain immutable
- Root filesystem disediakan sebagai image statis
squashfs terkompresi, dengan struktur yang tidak dapat dimodifikasi secara langsung
- Berkat struktur ini, perangkat lunak dan konfigurasi penting sudah disertakan sebelumnya, sehingga menjadi image mandiri yang dapat di-boot tanpa proses instalasi
- Ini menghindari package manager, manajemen dependensi, dan perlombaan pembaruan pada sistem yang sudah ada, serta mengganti pekerjaan menginstal ulang sesuatu yang sudah berjalan dengan satu kali reboot
- File dalam root filesystem tidak bisa terhapus karena kesalahan atau dimodifikasi oleh virus, dan tidak seperti sistem tradisional, kernel serta biner dasar tidak dibiarkan terekspos dalam keadaan dapat diubah sepenuhnya
- Karena root bersifat read-only, sistem juga mencegah penumpukan sampah berupa file sisa jangka panjang yang merusak backup, performa, dan kerapian sistem
- Anda bebas bereksperimen di VM lokal atau komputer lain, lalu mengembalikan perubahan hanya dengan reboot
- Media boot tidak menyimpan informasi penting, dan karena sifat immutable itu tetap terjaga, perangkat yang rusak atau hilang bisa dipulihkan dengan salinan baru
Struktur persistensi
- Untuk memasang dan menjalankan kontainer, mengubah konfigurasi, dan menulis data, diperlukan filesystem yang dapat ditulis; agar tetap bertahan setelah reboot, persistensi dibutuhkan
- Pada tahap awal boot, subsistem bawahan yang berjalan otomatis me-mount data filesystem ke
/mnt/lightwhale-data
- Data yang ditulis Lightwhale dikumpulkan di bawah
/mnt/lightwhale-data/lightwhale-state, dan direktori ini menjadi lapisan atas yang dapat ditulis untuk overlayfs
- Nilai bawaan adalah
tmpfs volatil, dan saat persistensi diaktifkan lokasi data filesystem berpindah ke perangkat penyimpanan terpisah
- Alih-alih menimpa seluruh root, hanya
/etc, /var, dan /home yang dioverlay secara selektif agar tujuan immutable tetap terjaga
/etc digunakan untuk kustomisasi pengaturan sistem seperti jaringan, kata sandi, dan sshd
/var digunakan untuk log dan data aplikasi lainnya
/home digunakan untuk kustomisasi pengguna seperti SSH authorized keys, clone repositori Git, dan pengelolaan stack Docker/Swarm
- Data root Docker berada langsung di
/mnt/lightwhale-data/lightwhale-state/docker dan menyimpan image, kontainer, volume, serta status jaringan
Aktivasi persistensi dan tahapan pemrosesan otomatis
- Persistensi harus diaktifkan secara eksplisit dengan menulis magic header ke perangkat penyimpanan, misalnya
echo "lightwhale-please-format-me" | sudo dd conv=notrunc of=/dev/sdx
- Magic header dapat ditulis ke beberapa perangkat penyimpanan, dan dalam kasus itu semuanya akan digabungkan sebagai volume Btrfs RAID1
- Pada boot berikutnya, sistem akan mendeteksi magic disk, memformatnya, lalu menggunakannya sebagai data filesystem
- persistence subsystem dimulai dari
/etc/init.d/S11persistence
-
Deteksi data filesystem
- Semua disk dipindai untuk mencari partisi dengan label filesystem
lightwhale-data
- Jika ditemukan, partisi itu digunakan sebagai data filesystem dan tahap mount berikutnya dilewati
-
Deteksi magic disk dan pembuatan partisi
- Magic disk diidentifikasi dengan mencari urutan byte
lightwhale-please-format-me pada posisi awal disk
- Pada setiap magic disk akan dibuat partisi swap berlabel
lightwhale-swap dan partisi Linux berlabel lightwhale-data yang memakai seluruh sisa ruang
-
Pembuatan filesystem
- Partisi magic swap diformat lalu diberi label
lightwhale-swap
- Jika hanya ada satu partisi magic data, partisi itu diformat dengan
btrfs --data single --metadata dup
- Jika ada beberapa, semuanya digabung dalam RAID1 dan diformat dengan
btrfs --data raid1 --metadata raid1cn
- Subvolume
@lightwhale-data, @lightwhale-state, dan @lightwhale-state-snapshots dibuat
-
Konfigurasi mount dan overlay
- Jika data filesystem tersedia,
@lightwhale-data di-mount ke /mnt/lightwhale-data; jika tidak, tmpfs di-mount sebagai pengganti
- Lapisan bawah immutable melakukan bind mount
/etc ke /run/lightwhale/overlay/lower/etc dan menyiapkan mirror pohon direktori root filesystem
- Lapisan atas yang dapat ditulis disiapkan di jalur seperti
/mnt/lightwhale-data/lightwhale-state/overlay/upper/etc
- Setelah itu, kedua lapisan digabung dengan
overlayfs dan di-mount ke /etc, lalu cara yang sama diulangi untuk /var dan /home
Batasan dan poin penting FAQ
- Perangkat keras yang didukung khusus x86-64 dan mendukung BIOS maupun EFI
- Raspberry Pi saat ini belum didukung dan sudah masuk backlog
- Apple M-series tidak didukung di bare metal, tetapi dapat dijalankan secara virtual
- Bisa berjalan di lingkungan virtual seperti VMWare/ESX/Proxmox/cloud, serta menyertakan guest agent untuk QEMU/KVM dan VMware ESXi
- Perangkat lunak yang dapat dipasang hanya kontainer Docker; instalasi langsung ke root filesystem tidak dimungkinkan
- Sistem inti memang immutable, tetapi konfigurasi, kustomisasi, dan data kontainer pada dasarnya ditulis ke memori dan hanya bertahan setelah reboot jika persistensi diaktifkan
- Hostname default menyertakan machine ID untuk mencegah konflik jaringan, dan jika diubah dengan
setup-hostname, perubahan langsung berlaku kecuali pada shell saat ini
- Tidak ada jaminan, dan tanggung jawab atas hasil penggunaan berada pada pengguna
- Menambahkan alat favorit seperti
wget atau nano ke root filesystem bukan arah yang dituju; batasan sebagai OS server minimal yang sangat spesifik tujuan tetap dipertahankan
- Ringkasan kebijakan privasinya: tidak mengumpulkan data pribadi, dan hanya jika Anda menyetujui telemetri maka data anonim akan dikumpulkan, yang isinya juga dapat ditinjau
- Kepatuhan terhadap regulasi terkait usia bukan tanggung jawab OS itu sendiri, melainkan layanan pengguna yang dijalankan di atasnya
Tautan terkait
1 komentar
Opini Hacker News
Patut diapresiasi karena benar-benar merilis sesuatu, tetapi masih belum terlihat jelas kenapa orang harus memakai ini
Sudah ada alternatif dengan tujuan serupa seperti Flatcar Container Linux, Fedora CoreOS, Talos Linux, dan IncusOS, dan komunitas maupun dukungan komersialnya juga tampak lebih kuat
Rasanya perlu penjelasan yang lebih jelas soal apa yang membedakannya agar lebih meyakinkan
Saya pindah dari Proxmox dan sekarang mengelola semua VM di sana, sambil aktif memakai coding assistant untuk mengotomatisasi konfigurasi CLI IncusOS, mengonversi image Docker-Compose ke Incus, dan menulis skrip bash untuk menjalankan container baru tanpa khawatir meski memakai
--dangerously-skip-permissionsBagian terbaiknya adalah semuanya bisa dikelola dengan file deklaratif, jadi konfigurasi jaringan maupun pengaturan resource selalu mudah dipantau
Kalau kebutuhannya mirip, IncusOS layak dilirik
Selama masih ada software, maintenance tidak bisa dihindari
Tidak ada yang bebas bug, dan kalau bilang tidak perlu upgrade, patch, atau pengelolaan sama sekali, itu mudah menjadi jalan pintas menuju sistem yang sudah dikompromikan
Lebih tepatnya, ia mengurangi cukup banyak maintenance yang biasanya perlu diperhatikan pada base system tradisional, karena 1) hampir tidak ada yang terpasang dan 2) upgrade base system mudah, jadi tinggal reboot lalu jalankan kembali container
Tentu saja software yang berjalan di atasnya tetap perlu di-upgrade, tetapi kalau berbasis Docker, layer itu biasanya dikelola di tempat lain, jadi cukup ambil container baru lalu restart, sementara OS lebih berperan memastikan data terpasang di lokasi yang sama
Jika menjalankan semua software lewat Docker bukan masalah, ini terlihat seperti pilihan selangkah lebih maju dibanding Debian atau Redhat, dan juga lebih sedikit kompleksitas prosedural dibanding CoreOS
Seberapa mudah dipakai dalam praktiknya masih agak dipertanyakan, terutama di sisi manajemen storage, tetapi setidaknya sangat jelas apa yang ingin dijual
Self-hosting memang memungkinkan, tetapi pada dasarnya itu membuat kita menanggung SLA bahkan di luar jam kerja
Karena itu, semua yang jumlah penggunanya lebih dari 1 sudah lama saya singkirkan
Namun, ada alasan kenapa proyek seperti Talos itu ada
Tanpa terminal, tanpa SSH, tanpa package manager, dengan filesystem read-only, tanpa systemd, dan dengan jumlah executable seminimal mungkin, attack surface jelas berkurang
Ini bukan komentar soal proyek yang dibahas di sini secara khusus, tetapi sistem yang lebih aman sekaligus butuh lebih sedikit maintenance memang benar-benar ada
Karena tidak mungkin 100% aman, bukan berarti pendekatan yang benar adalah YOLO menerima package npm yang diubah 3 menit lalu
Menarik, tetapi saya penasaran bagaimana patch, upgrade, dan build ISO sendiri dilakukan
Melihat source repository-nya, bagian itu hampir tidak terlihat
Commit terakhir 2 tahun lalu, dan sepertinya source untuk versi 3.0 tidak ada
Bukankah ini bukan OS, melainkan distro Linux?
Saya merasa masih hampir pemula di bidang ini, tetapi sudah lebih dari 10 tahun melakukan self-hosting, dan sejak sekitar 2019 pindah ke Unraid
Karena berpusat pada portal web, sistemnya mudah ditangani dan maintenance-nya juga nyaman
Saya penasaran bagaimana cara berinteraksi dengan OS home server ini
Karena tidak ada gambar di situsnya, saya jadi bertanya-tanya apakah semuanya harus ditangani sepenuhnya berbasis terminal
Saya baru saja memasang Docker di Ubuntu Server dengan satu baris perintah dan langsung mulai memakainya, jadi saya kurang paham apa tepatnya yang berbeda di sini dan apa value proposition-nya
Saya juga penasaran apa yang dimaksud dengan maintenance di sini secara konkret, dan apakah ini server yang dibuat lebih ramping untuk berjalan di hardware yang lebih lemah
Saya baru mulai menyiapkan home server, jadi benar-benar ingin tahu apa keuntungannya
Katanya kelebihan pendekatan immutable ada di update: kalau pindah ke versi image baru lalu ada masalah, kita bisa rollback dengan cukup boot ke versi sebelumnya
Namun secara fungsional, saya juga merasa Ubuntu Server sudah cukup
Beberapa kali setahun saya hanya menjalankan
apt updatedan upgrade, lalu aksesnya hanya lokal dan lewat TailscaleOS immutable seperti ini terasa lebih menarik untuk laptop atau desktop daripada home server
Karena hanya home directory yang bisa ditulis, ada harapan OS jadi lebih stabil dan tidak mudah rusak
Saya penasaran metode backup berkala seperti apa yang direkomendasikan untuk data container yang berjalan di Lightwhale
Saya kurang paham
Kalau hanya akan menjalankan Docker, saya tidak mengerti kenapa perlu immutable, dan kenapa perlu varian Debian khusus alih-alih Debian atau Ubuntu yang bisa menjalankan Docker dalam beberapa menit
Soal maintenance juga bukankah pada dasarnya tinggal mengelola repository distro atau repository Docker resmi lewat package manager
Saya harap tren immutable seperti ini mulai menghilang, dan menurut saya flatpak maupun snap juga sama
Linux sejak awal sebenarnya sudah melakukan hal-hal yang konon ingin diselesaikan oleh solusi seperti ini
Pengguna tidak bisa menyentuh base system tanpa root, dan aplikasi cukup memasang dependensi ke
/usr/libKemudahan mendapatkan bantuan saat mentok juga merupakan jaminan besar
Memang bisa dibuat lebih kecil, tetapi karena ini sudah berjalan baik bahkan di hardware aneh seperti BananaPi spesifikasi rendah atau RISC-V murah, jadi sulit melihat alasan untuk menginginkan yang lain
Hal seperti ini tampaknya cukup cocok untuk cluster mode Swarm
Saya tidak tahu apakah fokusnya hanya pada home server, tetapi saya akan terus mengikutinya
Proyeknya juga terlihat sangat bagus
Namun Lightwhale sudah berjalan di production, dan juga sangat cocok untuk penggunaan cluster Swarm
Terlihat sangat rapi
Dari sudut pandang pemula, pendekatan seperti ini terasa pas karena membantu mencegah konfigurasi rusak, jadi saya pasti ingin mencobanya