Linux, Desktop, dan VNC
Jalanin Linux dengan Docker/Podman tapi diakses lewat browser? Sangat bisa, karena ada VNC.
Secara rincinya, ada banyak cara:
✅ Xvfb + x11vnc + noVNC
✅ TigerVNC + noVNC
✅ KasmVNC
✅ wayvnc + noVNC
Yang terakhir itu beraliran Wayland. Sementara itu KasmVNC agak ribet. Ada pula xpra, xrdp, dsb.
Tapi kali ini kita akan bahas Xvfb + x11vnc dan TigerVNC. Simak dulu!
Bila mau coba dulu hasilnya, boleh langsung melongok repo yang ini: github.com/ariya/linux-desktop-live. Tinggal ikut instruksinya, pakai Docker (lebih bagus lagi, Podman) untuk membuat container dari image yang sudah ada.
podman run -p 3001:3001 ghcr.io/ariya/linux-desktop-liveTerus tinggal pakai browser untuk ke localhost:3001. Maka, si desktop berbasis XFCE (biar enteng dikit) bisa dinikmati. Ada Firefox juga, cocok untuk berselancar dengan riang gembira!
Apa yang terjadi di sini? Port 3001 disajikan oleh sebuah server mungil yang juga membungkus VNC client, murni dengan JavaScript. Makanya cukup browser, tanpa perlu instalasi apa pun. Ini adalah bagian dari proyek bernama noVNC. Lengkapnya bisa dilihat di novnc.com.
Perhatikan bahwa setupnya bisa diperhatikan di Dockerfile. Selain itu, peluncurannya ada di dalam entrypoint.sh. Dua file ini relatif mungil, sejatinya cocok dipahami sambil ngopi atau ngemil.
Walaupun ada proxy untuk Websocket, guna mengkonversi protokol VNC (yang jalan di port 5900), ujung-ujungnya noVNC ini ngobrol dengan server VNC.
Ada dua solusi yang lazim dipakai: x11vnc dan TigerVNC. Dalam repo, saya mencontohkan TigerVNC dari tigervnc.org.
Kalau pakai x11vnc, harus ada dulu Xvfb (X virtual framebuffer) yang membuat display server di memori, karena dalam kasus ini tidak ada monitor yang tersambung.
Sementara itu, TigerVNC sudah membungkus X11 server.
Apa manfaat gabungan teknik ini?
Yang jelas, bisa digunakan untuk mencoba-coba distro Linux baru, atau menjajal segala macam desktop dan aplikasi lain yang lagi nge-tren, tapi harus mengganggu sistem yang ada. Karena ada isolasi kontainer, hasil coba-coba ini relatif aman. Kalau secara kinerja (performance), harusnya nggak ada penurunan drastis.
Tapi kelemahan utamanya: makan tempat.
Di sini lain, ketika ingin melakukan eksperimen otomatisasi, apalagi dari jagad AI dengan Agent, rakitan model seperti ini menyediakan sandbox yang punya dua faedah:
1️⃣ bisa dipantau secara visual
2️⃣ jalan di kerangkeng
Jauh lebih aman dibandingkan “melepas” si Agent berkeliaran di dunia nyata!
Kira-kira mau makai Linux + container + VNC buat apa nih? Bagi dong gagasannya.
Terima kasih sudah membaca tulisan ini! Sebelumnya, celotehan ini hadir sebagai sebuah utas di lapak Threads saya. Bila dirasakan berfaedah, bagikan juga bahasan ini dengan teman-teman yang lain.
Supaya tidak ketinggalan, ikuti saya di Substack and sekalian berlangganan juga (dijamin 100% gratis). Dukungan ini akan sangat berarti buat saya. Jabat erat!



Wih pas banget nih bahasannya, kebetulan lagi ngulik novnc hehe, kalau saya mau pakai buat sandbox web development sama nyoba2 web automation. makasih banyak ilmunya mas