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 — 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 OfficePerbedaan utama ada di port dan display:
| Komponen | b.lan | o.lan |
|---|---|---|
| Display | :99 | :98 |
| VNC port | 5900 | 5901 |
| noVNC port | 6080 | 6081 |
| Aplikasi utama | Google Chrome | Libre Office |
| Use case | Browsing, riset, admin panel | Menulis 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":
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 — 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 — 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)
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:
- 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.
- 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.shAtau kalau mau custom domain:
DOMAIN=o.lan sudo bash install.shScript 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.