Skip to content

Image of DockServer

Join DockServer on Discord Total Releases Downloaded from GitHub Latest Official Release on GitHub GNU General Public License

LXC Container

How to install DockServer on a Proxmox LXC container

This guide will take you through how to prepare Proxmox to install DockServer on an LXC.

Key Points
  • This guide assumes you already have Proxmox installed and working. These instructions arw working on 6.4-6
  • Do not use Debian as the Linux image. Networking is shocking and dies after a day or so due to NIC namespace. This guide was written for Ubuntu 20.04
  • Apparmour must be disabled and deleted. If not, Authelia will fail at the password hashing stage.
  • Your LXC must be a privileged container. Unpriviliged containers do not allow GPU passthrough which is needed for Plex transcoding.
  • If you have local drives that you wish to mount, there are a couple of extra lines required in the xxx.conf file.
  • These are the settings that I have set which I have found work well. Your own millage will vary depending on your setup.
Guide
  1. Download Ubuntu template. Recommended version is Ubunto 20.04 Standard.
  2. Create a new LXC container:
  3. General tab:
    1. Give the container a name in the 'Hostname' field.
    2. Remove the tick from 'Unprivileged container'.
    3. Set the password and confirm the password you wish to use for CLI access.
  4. Template tab:
    1. Choose the Ubuntu template.
  5. Root Disk tab:
    1. Set the disk size high enough to handle all DockServer apps. Allow room for expansion. I personally have this set to 500Gb.
  6. CPU tab:
    1. Add the number of cores that you want assigned to the LXC. Remember, you will probably have Plex installed in Docker, along with multiple other apps all demanding processing power. I personally have this set to 6 cores.
  7. Memory tab:
    1. Set the memory and swap size accordingly. Bear in mind the previous comment regarding number of CPU cores. I personally have this set to 8192MiB for both Memory and Swap.
  8. Network tab:
    1. Uncheck 'Firewall'.
    2. 'IPv4' and 'IPv6' - I set these both of these to DHCP and then reserve the MAC address in my routers DHCP server.
  9. DNS tab:
    1. Leave this tab alone.
  10. Confirm tab - check your settings and select 'Finish'.
IMPORTANT NOTE - DO NOT START THE CONTAINER YET!

Before starting the container, you need to set the following on the Options, Features tab:

  1. Nesting
  2. CIFS
  3. NFS
  4. Fuse
GPU Passthrough

Run the steps on the following guide to pass through the GPU (my own system is an Intel GPU so I followed each step exactly without any changes and everything worked): https://forums.plex.tv/t/pms-installation-guide-when-using-a-proxmox-5-1-lxc-container/219728

NOTE: the above steps worked for Proxmox 6 however with changes to cgroup to cgroup2, the lxc conf file stated:

lxc.cgroup.devices.allow = c 226:0 rwm
lxc.cgroup.devices.allow = c 226:128 rwm
lxc.cgroup.devices.allow = c 29:0 rwm
lxc.autodev: 1
lxc.hook.autodev:/var/lib/lxc/100/mount_hook.sh
Changes this to:
lxc.cgroup2.devices.allow: a
227 lxc.cap.drop:
228 lxc.cgroup2.devices.allow: c 226:0 rwm
229 lxc.cgroup2.devices.allow: c 226:128 rwm
230 lxc.cgroup2.devices.allow: c 29:0 rwm
231 lxc.autodev: 1
232 lxc.hook.autodev: /var/lib/lxc/112/mount_hook.sh
Be mindful of the last line - change this to your correct container number rather than 112!

Mounting external NFS Drives
  1. In Datacenter, Storage add your NFS external drives.
  2. Open a shell from the node.
  3. Replace 120 with the container number:
    nano /etc/pve/lxc/120.conf
    
  4. Add the following line('s) as appropriate to the drives you wish to gain access to:
    mp0: /mnt/pve/Media,mp=/mnt/Media
    
    mp1: /mnt/pve/Pictures,mp=/mnt/Pictures
    
    mp2: /mnt/pve/Music,mp=/mnt/Music
    

You can now start the container


How to Disable and Delete Apparmour:

Once the container is up and running and you have logged in:

  1. Stop Apparmour service:
    systemctl stop apparmor
    
  2. Disable Apparmor from starting on system boot:
    systemctl disable apparmor
    
  3. Remove Apparmor package and dependencies:
    apt remove --assume-yes --purge apparmor
    

Now your LXC is ready to continue the install of DockServer


Support

Kindly report any issues/broken-parts/bugs on github or discord

  • Join our Join DockServer on Discord for Support
Back to top