Turnkey di Proxmox: 100+ Appliance Siap Pakai

Hari ini saya baca-baca artikel di Virtualization Howto, salah satu blog yang cukup sering saya buka kalau cari tahu update terbaru tentang proxmox maupu virtualisasi. Ada satu tulisan yang baru yaitu tentang pembahasan soal fitur Proxmox yang menyediakan lebih dari 100 TurnKey Linux appliance.

Yang bikin saya penasaran istilah turnkey di lxc proxmox. Jadi tulisan adalah untuk memahami lebih lanjut turnkey yang ada di proxmox, plus bagian kapan kalian sebaiknya pakai appliance turnkey dan kapan lebih baik pakai Docker saja.

Turnkey itu istilah, bukan nama produk

Ini yang sempat bikin saya bingung di awal. Turnkey adalah istilah umum, bukan merek. Asalnya dari frasa turn the key, seperti mobil yang tinggal putar kunci lalu jalan. Kalian tidak perlu merakit mesinnya dulu.

Di dunia IT, turnkey solution berarti sistem yang sudah dirakit, dikonfigurasi, dan diuji oleh pihak lain, lalu diserahkan ke kalian dalam kondisi siap dipakai. Lawan katanya adalah build it yourself, di mana kalian install OS kosong, pasang web server, database, aplikasi, dan sambungkan semuanya sendiri.

Di konteks virtualisasi, wujud turnkey biasanya adalah virtual appliance: satu image VM atau container yang di dalamnya sudah berisi OS plus aplikasi yang sudah dikonfigurasi. Kalian tinggal import, nyalakan, isi password, selesai.

Nah, kebetulan ada proyek yang namanya persis seperti istilahnya, yaitu TurnKey Linux. Di sinilah kebingungan saya berasal.

TurnKey Linux, proyeknya

TurnKey Linux adalah proyek yang membuat kumpulan appliance siap pakai berbasis Debian. Satu appliance berisi satu aplikasi lengkap dengan semua dependensinya yang sudah dikonfigurasi.

Beberapa hal yang perlu kalian tahu soal proyek ini:

  • Basisnya Debian standar, bukan distro eksotis. Jadi apt, systemd, dan struktur direktorinya tetap seperti Debian yang kalian kenal.
  • Tersedia dalam banyak format: ISO, image VM, dan yang paling relevan buat kita, template LXC yang langsung didukung Proxmox.
  • Ada wizard inisialisasi yang jalan saat pertama kali login, meminta root password, password admin aplikasi, dan alamat email untuk notifikasi.
  • Tiap appliance biasanya membawa confconsole (menu konfigurasi berbasis teks, termasuk untuk request sertifikat Let’s Encrypt) dan panel web administrasi. Port panelnya berbeda-beda tergantung appliance, jadi cek langsung di layar setelah boot.

Di Proxmox, ini bukan fitur baru

Poin yang diangkat artikel tadi memang tepat: template TurnKey ini bukan fitur baru, hanya jarang dilirik. Kebanyakan orang buka menu CT Templates, lihat debian-12-standard, ambil itu, lalu tutup jendelanya. Padahal di bawahnya ada ratusan baris lagi.

Kalian bisa cek sendiri dari shell node Proxmox:

pveam update
pveam available | grep turnkey

Atau kalau mau lebih rapi, filter langsung per section:

pveam available --section turnkeylinux

Daftarnya panjang sekali. Untuk gambaran, ini sebagian kategori yang tersedia:

KategoriContoh appliance
DatabasePostgreSQL, MySQL, MongoDB, Redis, CouchDB
File dan syncFile Server (Samba), Nextcloud, Syncthing
Jaringan dan VPNWireGuard, OpenVPN, OpenLDAP
DevOpsGitea, GitLab, Jenkins, Ansible
Framework aplikasiDjango, Laravel, Rails, Node.js, ASP.NET Core, Symfony, Tomcat
BisnisOdoo, SuiteCRM, EspoCRM, Mattermost, Snipe-IT, Invoice Ninja, Leantime

Yang menarik dari artikel sumbernya, penulisnya menyoroti appliance File Server. Begitu container dinyalakan, kalian langsung disambut setup Samba, bukan disuruh install dan konfigurasi smb.conf dari nol.

Cara memakainya

Lewat GUI, jalurnya seperti ini:

  1. Pilih node, lalu masuk ke storage local.
  2. Buka tab CT Templates, klik Templates.
  3. Ketik turnkey di kolom pencarian, pilih appliance yang kalian mau, klik Download.
  4. Klik Create CT, dan di tab Template pilih file yang barusan diunduh.

Lewat CLI, unduhnya begini. Salin nama template persis dari output pveam available, karena nomor versinya berubah seiring rilis:

pveam download local debian-12-turnkey-gitea_18.1-1_amd64.tar.gz

Setelah container jalan, login ke konsolnya. Wizard inisialisasi akan meminta password dan beberapa isian dasar, lalu aplikasinya sudah siap diakses.

Kelebihan appliance turnkey

Saya lihat nilainya ada di beberapa hal berikut:

  • Cepat sekali. Dari nol sampai aplikasi jalan bisa di bawah lima menit, dibanding satu jam kalau kalian rakit sendiri.
  • Konfigurasinya sudah masuk akal. Web server, database, dan koneksi antar keduanya sudah disiapkan orang yang paham aplikasinya.
  • Basis Debian yang familiar. Kalau ada yang perlu diubah, kalian masuk saja dan edit seperti biasa. Tidak ada abstraksi aneh yang harus dipelajari dulu.
  • Ringan karena LXC. Bukan full VM, jadi overhead-nya kecil dan cocok buat homelab dengan RAM terbatas.
  • Bagus untuk belajar. Ini yang sering diremehkan. Kalian bisa masuk ke appliance yang sudah jadi dan lihat bagaimana orang lain menyusun konfigurasinya. Itu bahan belajar yang bagus.
  • Backup dan snapshot Proxmox tetap berlaku. Karena ini container biasa, vzdump dan snapshot jalan normal.

Kekurangan yang perlu kalian sadari

Artikel sumbernya tidak banyak membahas sisi ini, jadi bagian berikut lebih ke pertimbangan saya sendiri.

  • Kalian mewarisi keputusan orang lain. Konfigurasinya sudah jadi, tapi kalian tidak otomatis tahu apa saja yang diubah dari default. Untuk lab tidak masalah. Untuk produksi, kalian tetap harus audit isinya.
  • Versi aplikasi menempel ke rilis appliance. Update aplikasi tidak selalu mengikuti rilis upstream secepat yang kalian mau, karena tergantung maintainer appliance-nya.
  • Upgrade major itu merepotkan. Umumnya polanya bukan upgrade di tempat, melainkan bikin container baru lalu migrasi data. Ini beban yang perlu diperhitungkan sejak awal.
  • Satu appliance satu aplikasi. Sepuluh aplikasi berarti sepuluh container dengan sepuluh OS yang harus kalian patch dan pantau masing-masing.
  • Tidak declarative. Tidak ada file yang bisa kalian commit ke git. Kalau container ini hilang, kalian mengulang wizard dan konfigurasi manual lagi, tanpa jejak yang bisa direproduksi.
  • Kalau ujungnya kalian kustomisasi berat, keuntungannya habis. Begitu kalian ganti banyak hal di dalamnya, kalian sebenarnya sudah kembali ke mode rakit sendiri, tapi dengan titik awal yang tidak kalian dokumentasikan.

Turnkey atau Docker?

Sebelum masuk tabel, ada satu hal yang perlu diluruskan. Keduanya sebenarnya menjawab masalah di lapisan yang berbeda.

Appliance turnkey menjawab “tolong siapkan mesin lengkap untuk saya”. Hasilnya satu sistem operasi utuh dengan systemd, cron, dan banyak service di dalamnya. Docker menjawab “tolong jalankan proses ini dengan dependensi yang tetap”. Hasilnya unit yang lebih kecil, sekali pakai, dan definisinya tertulis dalam file.

Jadi pertanyaannya bukan mana yang lebih bagus, tapi kebutuhan kalian sedang di lapisan yang mana.

Perbandingan karakteristik

AspekTurnKey (LXC appliance)Docker
Waktu setup awalSangat cepat, wizard interaktifCepat kalau compose file sudah ada
Bentuk konfigurasiManual di dalam containerTertulis di docker-compose.yml
ReproducibilityRendah, sulit diulang persisTinggi, tinggal jalankan ulang file yang sama
Update aplikasiIkut rilis applianceGanti tag image, biasanya lebih dekat ke upstream
Beban perawatanSatu OS penuh per aplikasiSatu host OS untuk banyak aplikasi
Cocok untuk CI/CDLemahKuat, memang dirancang untuk itu
Aplikasi multi-service legacyNyaman, karena ada systemdSering perlu akal-akalan

Tabel pemilihan

Ini bagian yang paling praktis. Cari baris yang paling mirip situasi kalian.

Situasi kalianPilihAlasan
Mau coba software baru, belum tahu bakal dipakai atau tidakTurnKeyLima menit siap, kalau tidak cocok tinggal hapus container
Layanan produksi jangka panjangDockerUpdate dan rollback lebih terkendali
Konfigurasi harus tercatat di git (IaC atau GitOps)DockerCompose file bisa di-commit, appliance tidak
Demo ke klien atau bahan training, harus cepat siapTurnKeyTampil jadi tanpa waktu persiapan panjang
Butuh stack lengkap tapi malas meracik sendiriTurnKeyWeb server dan database sudah disambungkan
Ada pipeline CI/CD yang rebuild otomatisDockerAppliance tidak punya jalur otomatisasi ke arah ini
Banyak aplikasi menumpuk di satu hostDockerTidak perlu merawat OS terpisah untuk tiap aplikasi
Aplikasi legacy yang butuh systemd dan banyak serviceTurnKeyLXC memang perilakunya seperti VM kecil
Lab sementara yang minggu depan dihapusTurnKeyUmurnya pendek, tidak perlu investasi konfigurasi
Orang lain harus bisa reproduce environment kalianDockerCukup kirim satu file, hasilnya sama
Mau update aplikasi mengikuti upstream secepatnyaDockerTidak menunggu rilis appliance
Kalian sedang belajar dan ingin lihat konfigurasi yang benarTurnKeyBisa dibongkar isinya sebagai bahan belajar

Pola yang muncul kira-kira begini. Kalau umur layanannya pendek dan yang kalian butuhkan adalah kecepatan, pilih TurnKey. Kalau umurnya panjang dan yang kalian butuhkan adalah kontrol serta pengulangan, pilih Docker.

Penulis artikel sumbernya sampai di kesimpulan yang sama. Untuk layanan jangka panjang, Docker tetap menang di tempatnya karena jauh lebih enak diotomatisasi. TurnKey dia pakai untuk evaluasi software, belajar platform baru, proof of concept, dan environment sementara.

Kesimpulan

Saya senang akhirnya duduk dan memastikan arti istilah turnkey, karena ternyata konsepnya sederhana: sistem yang sudah dirakitkan orang lain sampai tinggal pakai. Dan template TurnKey Linux di Proxmox memang layak dilirik, terutama karena sudah ada di depan mata tanpa perlu install apa-apa lagi.

Buat saya posisinya jelas. TurnKey itu alat untuk mempercepat fase mencoba, bukan pengganti Docker untuk layanan yang kalian rawat bertahun-tahun. Lain kali kalau kalian penasaran dengan software baru dan malas menyiapkan lab-nya, coba dulu pveam available | grep turnkey sebelum buka dokumentasi instalasi manual. Lumayan menghemat sore.

Referensi

Comments

2 responses to “Turnkey di Proxmox: 100+ Appliance Siap Pakai”

  1. zaidan Avatar

    turnkey menarik bang, tapi produk dari israel

    1. Rafi Harlianto Avatar

      hmmm gajadi dicoba deh

Leave a Reply

Your email address will not be published. Required fields are marked *