Tutorial

o.lan — Libre Office di Browser, On-Demand, Tanpa Desktop Environment

o.lan — Libre Office di Browser, On-Demand, Tanpa Desktop Environment

Di artikel sebelumnya aku cerita tentang b.lan — remote desktop buat Chrome yang bisa diakses dari browser. Nah, kali ini masih di ranah yang sama, tapi dengan use case yang berbeda: o.lan, remote desktop khusus buat Libre Office.

Kenapa pisah? Bukannya tinggal install Libre Office di b.lan? Iya sih, bisa. Tapi kalau digabung, sesi browser dan sesi office jadi satu display yang sama. Ribet. Kalau lagi nulis dokumen, tiba-tiba harus ngecek sesuatu di Chrome, tabrakan. Belum lagi masalah resource — Chrome doyan memory, Libre Office juga lumayan. Lebih baik dipisah, masing-masing punya display sendiri, port sendiri, dan bisa di-start/stop independen.

Sama seperti b.lan, o.lan mengusung filosofi on-demand: service mati total saat tidak dipakai, hidup hanya ketika kamu butuh. Nggak ada desktop environment, nggak ada display manager, nggak ada compositor. Cuma Xvfb + x11vnc + websockify + Openbox. Bedanya, Chrome diganti Libre Office.

Halaman awal o.lan

Halaman awal o.lan — session mati, tinggal klik "Mulai Session"

Arsitektur

Secara teknis, arsitektur o.lan hampir identik dengan b.lan:

Browser (client) ↓ HTTPS Nginx (o.lan:443) ↓ noVNC / websockify (:6081) ↓ WebSocket → VNC x11vnc (:5901) ↓ Xvfb (:98, 1920×1080) ↓ openbox + tint2 + Libre Office

Perbedaan utama ada di port dan display:

Komponenb.lano.lan
Display:99:98
VNC port59005901
noVNC port60806081
Aplikasi utamaGoogle ChromeLibre Office
Use caseBrowsing, riset, admin panelMenulis dokumen, spreadsheet, presentasi

Dengan port yang berbeda, kedua session bisa jalan bareng. Mau riset di b.lan sambil nulis laporan di o.lan? Bisa. Masing-masing di tab browser yang berbeda, nggak saling ganggu.

Flow Penggunaan

Pertama, buka https://o.lan di browser. Halaman awal akan menampilkan status offline dengan tombol "Mulai Session":

Loading state o.lan

Saat session sedang dimulai, muncul progress indicator

Setelah diklik, sistem akan menjalankan systemd service office-session.service yang otomatis menyalakan Xvfb, x11vnc, websockify, Openbox, dan Libre Office. Prosesnya memakan waktu sekitar 5-10 detik. Begitu siap, kamu akan melihat Libre Office Start Center langsung di browser:

Libre Office Start Center via noVNC

Libre Office Start Center — pilih Writer, Calc, atau Impress

Dari sini kamu bisa memilih aplikasi yang mau dipakai: Writer buat dokumen teks, Calc buat spreadsheet, atau Impress buat presentasi. Semua berjalan di server, tampilannya dikirim via VNC ke browser kamu.

Libre Office Writer berjalan di o.lan

Libre Office Writer — tampilannya persis seperti desktop native

Bisa juga buka file yang sudah ada di server lewat Thunar (file manager), atau copas teks dari sumber lain. Karena ini sesi penuh, semua shortcut keyboard berfungsi normal. Ada juga shortcut khusus:

  • Ctrl+Alt+W — Buka Writer
  • Ctrl+Alt+C — Buka Calc
  • Ctrl+Alt+I — Buka Impress
  • Ctrl+Alt+T — Buka terminal
  • Ctrl+Alt+F — Buka file manager (Thunar)
Dokumen Writer di o.lan

Mengetik dokumen Writer — responsif, nggak beda sama desktop

Idle Auto-Stop

Ini fitur favoritku. Kalau kamu lupa nutup session, o.lan akan otomatis mati setelah 30 menit tidak ada aktivitas. Timer-nya visible di bagian bawah layar — jadi kamu tahu kapan session bakal distop.

Cara kerjanya ada dua lapis:

  1. System-level: Sebuah systemd timer (jalan tiap 1 menit) ngecek apakah ada koneksi TCP ke port VNC. Kalau nggak ada client yang connect selama 30 menit, service langsung distop.
  2. App-level: JavaScript di halaman web ngirim heartbeat tiap kali kamu klik atau tekan tombol di area VNC. Kalau heartbeat berhenti, timer di UI habis, dan session di-terminate.

Hasilnya: zero resource waste. Pas lagi dipakai, service nyala penuh. Pas ditutup, semua dibersihkan. RAM balik lega.

Installasi

Buat yang penasaran dan punya home server sendiri, installasi gampang banget. Cukup clone repo lalu jalankan script:

git clone https://github.com/adammuizweb/office.git cd office sudo bash install.sh

Atau kalau mau custom domain:

DOMAIN=o.lan sudo bash install.sh

Script ini bakal ngurus semua dependensi: Xvfb, x11vnc, websockify, noVNC, Openbox, tint2, Libre Office, Nginx config, systemd service, dan timer idle. Tinggal jalanin, tunggu beberapa menit, selesai.

Detail teknis dan kode lengkap ada di GitHub: github.com/adammuizweb/office

Kesimpulan

o.lan adalah bukti bahwa kamu nggak perlu desktop environment yang gemuk cuma buat jalanin satu aplikasi. Dengan Xvfb + VNC + Openbox + Libre Office, kamu dapet pengalaman office yang full functional tanpa harus install DE, display manager, atau kompositor. Semua berjalan di server, diakses dari browser perangkat mana pun di jaringan lokal.

Kombinasi b.lan + o.lan di home server jadi remote workstation lengkap: Chrome buat browsing dan admin, Libre Office buat nulis dan ngolah data. Dua-duanya on-demand, saling independen, dan nggak boros resource.

Next? Mungkin sesi buat GIMP atau VS Code. Tapi itu cerita lain.