In this article, we’ll install Plex Media Server on SmartOS. Plex Media Server is a media server that organizes and makes available audio, video, and more. Smart OS is a “converged container and virtual machine hypervisor” based on illumos, which is a fork of the now-defunct OpenSolaris. SmartOS supports Linux-branded containers (zones), allowing us to install Plex Media Server on SmartOS. These instructions might also work on other illumos distributions with some modifications.

For many years, I ran this on my HPE MicroServer to serve media files. It was solid as a rock. Nowadays, I run Plex Media Server on a cluster of Intel NUCs.

This article assumes you have a working SmartOS host and are logged in as root.

Create a Linux Branded Zone

Find the latest CentOS lx-dataset image, in this case 3dbbdcca-2eab-11e8-b925-23bf77789921:

# imgadm avail | grep centos

Import the CentOS image:

# imgadm import 3dbbdcca-2eab-11e8-b925-23bf77789921

Next, we’ll create the container based on the imported CentOS image. The following command line will create a new CentOS container with 2048 MB RAM, 32 GB disk, and a statically configured NIC (change the NIC settings to match your network setup). It’ll also pass a ZFS dataset from the host system to the container (/tank/media). This is useful to give Plex Media Server access to media files stored on the host.

Create the container:

# vmadm create << EOL
  "alias": "plex-media-server",
  "hostname": "plex",
  "brand": "lx",
  "kernel_version": "3.10.0",
  "image_uuid": "3dbbdcca-2eab-11e8-b925-23bf77789921",
  "max_physical_memory": 2048,
  "max_locked_memory": 2048,
  "max_swap": 2048,
  "quota": 32,
  "filesystems": [
      "type": "lofs",
      "source": "/tank/media",
      "target": "/tank/media"
  "nics": [
      "nic_tag": "admin",
      "ip": "",
      "netmask": "",
      "gateway": ""
  "resolvers": ["", ""]

This will generate a message saying: Successfully created VM <UUID>. Make a note of the container UUID; we’ll need it next.

Install Plex Media Server

Next, we’ll log in to the newly created container (remember the UUID from earlier):

# zlogin <UUID>

Update the package cache and download the latest system packages:

# yum update -y

Download and install the latest version of Plex Media Server (this article uses version, find the latest version at

# cd ~
# wget
# yum install plexmediaserver-

Finally, enable and start the Plex Media Server service:

# systemctl enable plexmediaserver
# systemctl start plexmediaserver

And that is all! Good luck with your SmartOS-based media server.


2023-08-31 Revised language

2019-10-20 Accidentally tried to grep Ubuntu instead of CentOS, thanks to AThreeK.