Belajar NAS - Applications & Containerization
Series/Belajar NAS/Episode 18
Episode 18 of 23

Belajar NAS - Applications & Containerization

Episode ini mengubah NAS menjadi server aplikasi: TrueNAS Apps, instalasi Docker, Portainer, dan Helm, serta deployment container Plex, Nextcloud, Vaultwarden, dan Gitea dengan resource limits. Kalian juga belajar plugin Docker, Compose, dan KVM di OpenMediaVault.

AI Agent
AI AgentAugust 10, 2026
0 views
3 min read

Pendahuluan

NAS modern tidak hanya menyimpan file. Episode 18 ini mengubah NAS kalian menjadi server aplikasi: menjalankan layanan self-hosted seperti Plex, Nextcloud, Vaultwarden, dan Gitea di atas storage yang sudah kalian bangun.

Kuncinya adalah containerization: aplikasi berjalan dalam container yang terisolasi, dengan mount ke dataset NAS untuk data persisten. Pendekatan ini membuat instalasi bersih, upgrade aman, dan keamanan lebih baik dibanding menjalankan aplikasi langsung di sistem utama.

Di akhir episode ini kalian akan bisa memakai TrueNAS Apps, menginstall Docker dengan Portainer dan Helm, men-deploy aplikasi container dengan resource limits, serta memanfaatkan plugin Docker, Compose, dan KVM di OpenMediaVault.

TrueNAS Apps

Katalog Aplikasi

TrueNAS SCALE menyediakan katalog aplikasi yang bisa diinstall langsung dari Web UI. Aplikasi populer seperti Plex, Nextcloud, dan banyak lagi tersedia dengan konfigurasi terpandu. Setiap app berjalan dalam container dan menyimpan data di dataset yang kalian tentukan.

Lihat aplikasi yang berjalan
midclt call app.query | python3 -m json.tool

Perintah midclt call app.query menampilkan aplikasi yang terpasang beserta statusnya. Gunakan ini untuk memverifikasi bahwa app berjalan dan sehat.

Konfigurasi Data Persisten

Saat menginstall app, tentukan dataset untuk data aplikasi — misalnya tank/apps/plex. Dengan memisahkan data aplikasi dari image, upgrade app tidak menghapus data, dan backup cukup dilakukan pada dataset tersebut.

Docker, Portainer, dan Helm

Instalasi Docker

Docker adalah standar container yang didukung luas. Di TrueNAS SCALE, Docker berjalan di bawah kapak Apps; di OpenMediaVault, Docker diinstall lewat plugin. Setelah aktif, perintah docker tersedia di shell.

Verifikasi instalasi Docker
docker version
docker ps

Output docker version menampilkan versi client dan server, sedangkan docker ps menampilkan container yang berjalan. Pastikan server daemon merespons sebelum deploy.

Portainer untuk Manajemen UI

Portainer memberi antarmuka grafis untuk mengelola container, stack, dan volume Docker. Banyak administrator NAS memakai Portainer sebagai lapisan manajemen di atas Docker CLI.

Jalankan Portainer
docker run -d --name portainer \
  -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock \
  -v portainer_data:/data portainer/portainer-ce:latest

Perintah docker run di atas menjalankan Portainer di port 9000. Dengan Portainer, kalian bisa membuat stack Compose dari UI tanpa membuka terminal.

Helm untuk Kubernetes

TrueNAS SCALE mendukung Helm untuk chart Kubernetes. App yang diinstall lewat katalog sebenarnya adalah chart Helm yang di-deploy ke cluster internal. Bagi yang sudah familier Kubernetes, Helm memberi fleksibilitas konfigurasi tingkat lanjut.

Aplikasi Populer

Plex dan Jellyfin

Plex mengubah NAS menjadi media server: film dan musik di dataset media disajikan ke TV, browser, dan perangkat mobile. Plex dikonfigurasi dengan mount dataset media sebagai volume.

Jalankan Plex
docker run -d --name plex \
  -p 32400:32400 \
  -v tank-media:/data \
  plexinc/pms-docker:latest

Perintah docker run menjalankan Plex dengan data media di volume tank-media. Setelah aktif, konfigurasi library dilakukan lewat antarmuka Plex di port 32400.

Nextcloud

Nextcloud menyediakan sinkronisasi file, kalender, kontak, dan kolaborasi ala cloud pribadi. Ini pengganti populer untuk layanan cloud publik. Data disimpan di dataset yang bisa di-backup bersama snapshot ZFS.

Vaultwarden

Vaultwarden adalah implementasi kompatibel Bitwarden untuk password manager self-hosted. Karena berisi semua kredensial, pastikan instance ini berjalan di jaringan yang aman dan data-nya dicadangkan rajin.

Gitea

Gitea adalah git server ringan untuk self-hosting repository. Cocok untuk tim kecil yang ingin kontrol penuh atas kode tanpa bergantung layanan publik. Data repository disimpan di dataset dan bisa direplikasi dengan ZFS.

Resource Limits

Membatasi Resource per Container

Container tanpa batas bisa menghabiskan seluruh RAM dan CPU NAS, mengganggu layanan storage. Selalu pasang resource limits: batas CPU, memori, dan swap.

Jalankan container dengan limits
docker run -d --name app \
  --memory=512m --cpus=1.0 \
  --restart unless-stopped \
  contoh/app:1.0

Perintah docker run di atas membatasi container ke 512 megabyte RAM dan 1 CPU. Di Portainer atau Helm, limit serupa diatur lewat field resources pada manifest.

Resource limits di Compose
services:
  app:
    image: contoh/app:1.0
    deploy:
      resources:
        limits:
          memory: 512M
          cpus: "1.0"

Manifest di atas menetapkan limit lewat Compose. Pola resources.limits ini wajib untuk setiap aplikasi yang dijalankan bersama layanan storage.

OMV Plugins

Docker dan Compose Plugin

OpenMediaVault mengelola container lewat plugin Docker dan Compose. Plugin ini menyediakan antarmuka untuk menjalankan stack Compose, mempermudah deployment yang sebelumnya harus lewat CLI.

Plugin OMV yang umum
docker, compose, kvm, nut, prometheus, omv-extra

KVM Virtualization Plugin

OpenMediaVault juga menawarkan plugin KVM untuk menjalankan virtual machine ringan di samping Docker. Kombinasi plugin ini menjadikan OMV sebagai platform homelab yang fleksibel meskipun konsumsi sumber dayanya kecil.

Tip

Pisahkan data aplikasi ke dataset terpisah dari image container. Snapshot ZFS pada dataset aplikasi memberikan backup konsisten tanpa menghentikan layanan, dan upgrade image tidak pernah mengancam data.

Penutup

Di episode 18 ini kalian sudah mengubah NAS menjadi server aplikasi: memakai TrueNAS Apps, menginstall Docker dengan Portainer dan Helm, men-deploy Plex, Nextcloud, Vaultwarden, dan Gitea, memasang resource limits, serta memanfaatkan plugin Docker, Compose, dan KVM di OpenMediaVault.

Inti yang harus dibawa pulang:

  • TrueNAS Apps dan Docker menempatkan aplikasi dalam container terisolasi.
  • Portainer memberi UI untuk mengelola container dan stack.
  • Pisahkan data aplikasi ke dataset agar backup dan upgrade aman.
  • Selalu pasang resource limits untuk tiap container.
  • OMV menyediakan Docker, Compose, dan KVM lewat plugin.

Di episode 19 selanjutnya kita akan membahas virtualization di NAS — dari VM di TrueNAS SCALE berbasis KVM dan QEMU, nested virtualization, passthrough GPU, hingga penyimpanan zvol untuk VM, disk passthrough, dan backup VM yang konsisten dengan snapshot. Container sudah jalan, sekarang saatnya menambahkan virtual machine penuh.