Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Ultimate FreeNAS 11.2 Setup

FreeNAS 11.2

WARNING This page contains incomplete and possibly incorrect info. The page is constantly being edited and worked on. Many of these should work but some may be broken. Use at your own risk.

Credit for IOCAGE setup goes to https://forums.freenas.org/index.php?resources/fn11-1-iocage-jails-plex-tautulli-sonarr-radarr-lidarr-jackett-ombi-transmission-organizr.58/

Setup

myVol > media  -series
               -movies
               -downloads > -radarr
                            -sonarr
                            -complete
                            -incomplete
                            -recycle bin   
                            ```

I have pool named myVol. I created a dataset named "media" owned by the default freenas user media:media. The dataset contains the folders series,movies,downloads. Radarr, Sonarr, Transmission will need to run as the user media:media to have access to them. I also have dataset named "apps"



**Changing the config file location**

This is optional and adds another layer of complexity but keeps the files safe when the jail is deleted

Using Radarr for example: /mnt/myVol/apps/Radarr to /config

In the jail you then link the files ln -s /config/config.xml /usr/local/sonarr/config.xml ln -s /config/nzbdrone.db /usr/localsonarr/nzbdrone.db

You will either need to delete the config files or move them depending on if you already have the files before linking. After you do this your config files will be safe if you delete the jail



**Permissions**

Each time you create a new jail you will have to change the default user to media:media so the jails can work together properly.

Use the name of your plugin instead of PLUGIN

service PLUGIN onestop chown -R media:media /usr/local/PLUGIN (this location might be different for some of the apps) sysrc 'PLUGIN_user=media' sysrc 'PLUGIN_group=media' service PLUGIN start


My current setup (dates show the last successful test):

+ [Sonarr](#sonarr) 10/22/17
+ [Radarr](#radarr) 10/22/17
+ [Jackett](#jackett) 10/22/17
+ [Transmission](#transmission) 10/22/17
+ [Plex](#plex) 10/22/17
+ [Tautulli](#tautulli) 6/21/18
+ [Organizr](#organizr) 10/22/17
+ [Ombi](#ombi) 10/22/17


Configuration:
+ [Backups](#backups) 2/20/17
+ [Updates](#updates)
+ [Common Commands](#commands)
+ [Testing](#testing)
+ [Default Jail Ports/UID/Location](#default)
+ [Config File Locations](#config)


<a name="default"></a>
**Default User Ports/UID/Location**
info not correct
PORT - SERVICE - USER (UID) - DATA-DIRECTORY
sonarr - 8989 - media (816) - /usr/local/share/sonarr
radarr - 7878 - radarr (352) - /usr/local/share/radarr
jackett - 9117 - jackett (818) - /usr/local/share/jackett
Ombi -  - jackett (819) - /usr/local/share/
plexmediaserver 32400 - plex (972) - /usr/local/plexdata
transmission - 9091 -transmission (921) - /usr/local/etc/transmission
unifi  - 8443

Apps

Transmission

echo '{"pkgs":["bash","unzip","unrar","transmission","openvpn","ca_root_nss"]}' > /tmp/pkg.json
iocage create -n "transmission" -p /tmp/pkg.json -r 11.1-RELEASE ip4_addr="vnet0|10.68.69.99/24" defaultrouter="10.68.69.1" vnet="on" allow_raw_sockets="1" boot="on"
rm /tmp/pkg.json

iocage exec transmission pkg install -y transmission
iocage fstab -a transmission /mnt/myVol/apps/transmission /config nullfs rw 0 0
iocage fstab -a transmission /mnt/myVol/media/downloads /mnt/downloads nullfs rw 0 0
iocage exec transmission mkdir -p /config/transmission-home
iocage exec transmission chown -R transmission:transmission /config/transmission-home
iocage exec transmission sysrc "transmission_enable=YES"
iocage exec transmission sysrc "transmission_conf_dir=/config/transmission-home"
iocage exec transmission sysrc "transmission_download_dir=/mnt/downloads/complete"
iocage exec transmission service transmission start


# you may need to change the white list in settings.json to 0.0.0.0

Organizr

echo '{"pkgs":["nginx","php56","php56-curl","php56-hash","php56-json","php56-openssl","php56-pdo","php56-pdo_sqlite","php56-session","php56-simplexml","php56-sqlite3","php56-zip","git","ca_root_nss"]}' > /tmp/pkg.json iocage create -n "organizr" -p /tmp/pkg.json -r 11.1-RELEASE ip4_addr="vnet0|10.68.69.7/24" defaultrouter="10.68.69.1" vnet="on" allow_raw_sockets="1" boot="on" rm /tmp/pkg.json

pkg install -y nginx wget php70 php70-curl php70-pdo php70-sqlite3 php70-simplexml php70-zip php70-openssl curl php70-hash php70-json php70-session php70-pdo_sqlite ca_root_nss

iocage fstab -a organizr /mnt/myVol/apps/organizr /config nullfs rw 0 0

iocage exec organizr sed -i '' -e 's?listen = 127.0.0.1:9000?listen = /var/run/php-fpm.sock?g' /usr/local/etc/php-fpm.conf iocage exec organizr sed -i '' -e 's/;listen.owner = www/listen.owner = www/g' /usr/local/etc/php-fpm.conf iocage exec organizr sed -i '' -e 's/;listen.group = www/listen.group = www/g' /usr/local/etc/php-fpm.conf iocage exec organizr sed -i '' -e 's/;listen.mode = 0660/listen.mode = 0600/g' /usr/local/etc/php-fpm.conf iocage exec organizr cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini iocage exec organizr sed -i '' -e 's?;date.timezone =?date.timezone = "Universal"?g' /usr/local/etc/php.ini iocage exec organizr sed -i '' -e 's?;cgi.fix_pathinfo=1?cgi.fix_pathinfo=0?g' /usr/local/etc/php.ini

iocage exec organizr git clone https://github.com/causefx/Organizr.git /usr/local/www/Organizr iocage exec organizr chown -R www:www /usr/local/www /config iocage exec organizr sysrc nginx_enable=YES iocage exec organizr sysrc php_fpm_enable=YES iocage exec organizr service nginx start iocage exec organizr service php-fpm start

iocage exec organizr cp -a /usr/local/www/Organizr/config/config.php /config/config.php iocage exec organizr rm /usr/local/www/Organizr/config/config.php iocage exec organizr ln -s /config/config.php /usr/local/www/

Jackett

https://github.com/Jackett/Jackett/releases https://forums.freenas.org/index.php?threads/need-help-installing-jackett-on-freenas-in-a-jail.38384/

echo '{"pkgs":["mono","curl","ca_root_nss"]}' > /tmp/pkg.json
iocage create -n "jackett" -p /tmp/pkg.json -r 11.1-RELEASE ip4_addr="vnet0|10.68.69.98/24" defaultrouter="10.68.69.1" vnet="on" allow_raw_sockets="1" boot="on"
rm /tmp/pkg.json
iocage exec jackett pkg install mono curl ca_root_nss
iocage fstab -a jackett /mnt/myVol/apps/jackett /config nullfs rw 0 0
iocage exec jackett ln -s /usr/local/bin/mono /usr/bin/mono
iocage exec jackett "fetch https://github.com/Jackett/Jackett/releases/download/v0.9.23/Jackett.Binaries.Mono.tar.gz -o /usr/local/share"
iocage exec jackett "tar -xzvf /usr/local/share/Jackett.Binaries.Mono.tar.gz -C /usr/local/share"
iocage exec jackett rm /usr/local/share/Jackett.Binaries.Mono.tar.gz
iocage exec jackett "pw user add jackett -c jackett -u 818 -d /nonexistent -s /usr/bin/nologin"
iocage exec jackett chown -R jackett:jackett /usr/local/share/Jackett /config
iocage exec jackett mkdir /usr/local/etc/rc.d

ee /mnt/iocage/jails/jackett/root/usr/local/etc/rc.d/jackett

#!/bin/sh

# $FreeBSD$
#
# PROVIDE: jackett
# REQUIRE: LOGIN
# KEYWORD: shutdown
#
# Add the following lines to /etc/rc.conf.local or /etc/rc.conf
# to enable this service:
#
# jackett_enable:    Set to YES to enable jackett
#            Default: NO
# jackett_user:    The user account used to run the jackett daemon.
#            This is optional, however do not specifically set this to an
#            empty string as this will cause the daemon to run as root.
#            Default: media
# jackett_group:    The group account used to run the jackett daemon.
#            This is optional, however do not specifically set this to an
#            empty string as this will cause the daemon to run with group wheel.
#            Default: media
# jackett_data_dir:    Directory where jackett configuration
#            data is stored.
#            Default: /var/db/jackett

. /etc/rc.subr
name=jackett
rcvar=${name}_enable
load_rc_config $name

: ${jackett_enable:="NO"}
: ${jackett_user:="jackett"}
: ${jackett_group:="jackett"}
: ${jackett_data_dir:="/config"}

command="/usr/sbin/daemon"
procname="/usr/local/bin/mono"
command_args="-p ${jackett_data_dir}/jackett.pid -f ${procname} /usr/local/share/Jackett/JackettConsole.exe -d ${jackett_data_dir}"

start_precmd=jackett_precmd
jackett_precmd() {
    export USER=${jackett_user}
    if [ ! -d ${jackett_data_dir} ]; then
    install -d -o ${jackett_user} -g ${jackett_group} ${jackett_data_dir}
    fi

    export XDG_CONFIG_HOME=${jackett_data_dir}
}

run_rc_command "$1"
iocage exec jackett chmod u+x /usr/local/etc/rc.d/jackett
iocage exec jackett sysrc "jackett_enable=YES"
iocage exec jackett service jackett restart

Sonarr

https://github.com/Sonarr/Sonarr/wiki/Installation-FreeBSD

echo '{"pkgs":["mono","mediainfo","sqlite3","ca_root_nss","curl"]}' > /tmp/pkg.json
iocage create -n "sonarr" -p /tmp/pkg.json -r 11.1-RELEASE ip4_addr="vnet0|10.68.69.99/24" defaultrouter="10.68.69.1" vnet="on" allow_raw_sockets="1" boot="on" 
rm /tmp/pkg.json

iocage exec sonarr pkg install mono mediainfo sqlite3 ca_root_nss curl

iocage fstab -a sonarr /mnt/myVol/apps/sonarr /config nullfs rw 0 0
iocage fstab -a sonarr /mnt/myVol/media/downloads /mnt/downloads nullfs rw 0 0
iocage fstab -a sonarr /mnt/myVol/media/series /mnt/series nullfs rw 0 0
iocage exec sonarr ln -s /usr/local/bin/mono /usr/bin/mono
iocage exec sonarr "fetch http://download.sonarr.tv/v2/master/mono/NzbDrone.master.tar.gz -o /usr/local/share"
iocage exec sonarr "tar -xzvf /usr/local/share/NzbDrone.master.tar.gz -C /usr/local/share"
iocage exec sonarr rm /usr/local/share/NzbDrone.master.tar.gz
iocage exec sonarr "pw user add sonarr -c sonarr -u 351 -d /nonexistent -s /usr/bin/nologin"
iocage exec sonarr chown -R sonarr:sonarr /usr/local/share/NzbDrone /config
iocage exec sonarr mkdir /usr/local/etc/rc.d

iocage exec sonarr "pw user add media -c media -u 8675309 -d /nonexistent -s /usr/bin/nologin"
iocage exec sonarr chown -R media:media /usr/local/share/NzbDrone /config


# not a good option but works for in app updates if you want
chmod 777 /usr/local/share/sonarr

Radarr

https://github.com/Radarr/Radarr/releases https://github.com/Radarr/Radarr

echo '{"pkgs":["mono","mediainfo","sqlite3","ca_root_nss","curl"]}' > /tmp/pkg.json
iocage create -n "radarr" -p /tmp/pkg.json -r 11.1-RELEASE ip4_addr="vnet0|10.68.69.97/24" defaultrouter="10.68.69.1" vnet="on" allow_raw_sockets="1" boot="on"
rm /tmp/pkg.json
iocage exec radarr pkg install mono mediainfo sqlite3 curl ca_root_nss
iocage fstab -a radarr /mnt/myVol/apps/radarr /config nullfs rw 0 0
iocage fstab -a radarr /mnt/myVol/media/downloads /mnt/downloads nullfs rw 0 0
iocage fstab -a radarr /mnt/myVol/media/movies /mnt/movies nullfs rw 0 0
iocage exec radarr ln -s /usr/local/bin/mono /usr/bin/mono
iocage exec radarr "fetch https://github.com/Radarr/Radarr/releases/download/v0.2.0.1120/Radarr.develop.0.2.0.1120.linux.tar.gz -o /usr/local/share"
iocage exec radarr "tar -xzvf /usr/local/share/Radarr.develop.0.2.0.1120.linux.tar.gz -C /usr/local/share"
iocage exec radarr rm /usr/local/share/Radarr.develop.0.2.0.1120.linux.tar.gz
iocage exec radarr "pw user add radarr -c radarr -u 352 -d /nonexistent -s /usr/bin/nologin"
iocage exec radarr chown -R radarr:radarr /usr/local/share/Radarr /config
iocage exec radarr mkdir /usr/local/etc/rc.d

iocage exec radarr service radarr onestop
iocage exec radarr sysrc 'radarr_user=radarr'
iocage exec radarr "pw user add media -c media -u 8675309 -d /nonexistent -s /usr/bin/nologin"
iocage exec radarr chown -R media:media /usr/local/share/Radarr /config
iocage exec radarr service radarr start


iocage exec radarr "pw groupadd -n media -g 8675309"
iocage exec radarr "pw groupmod media -m radarr"

iocage exec radarr "mkdir -p /usr/local/etc/pkg/repos"
iocage exec radarr "ee /usr/local/etc/pkg/repos/FreeBSD.conf"

FreeBSD: { url: "pkg+http://pkg.FreeBSD.org/${ABI}/latest" }


use ee editor or it won't work at leats for me! Create an rc file for radarr using your favorite editor at /mnt/iocage/jails/radarr/root/usr/local/etc/rc.d/radarr

#!/bin/sh

# $FreeBSD$
#
# PROVIDE: radarr
# REQUIRE: LOGIN
# KEYWORD: shutdown
#
# Add the following lines to /etc/rc.conf.local or /etc/rc.conf
# to enable this service:
#
# radarr_enable:    Set to YES to enable radarr
#            Default: NO
# radarr_user:    The user account used to run the radarr daemon.
#            This is optional, however do not specifically set this to an
#            empty string as this will cause the daemon to run as root.
#            Default: media
# radarr_group:    The group account used to run the radarr daemon.
#            This is optional, however do not specifically set this to an
#            empty string as this will cause the daemon to run with group wheel.
#            Default: media
# radarr_data_dir:    Directory where radarr configuration
#            data is stored.
#            Default: /var/db/radarr

. /etc/rc.subr
name=radarr
rcvar=${name}_enable
load_rc_config $name

: ${radarr_enable:="NO"}
: ${radarr_user:="radarr"}
: ${radarr_group:="radarr"}
: ${radarr_data_dir:="/config"}

pidfile="${radarr_data_dir}/nzbdrone.pid"
command="/usr/sbin/daemon"
procname="/usr/local/bin/mono"
command_args="-f ${procname} /usr/local/share/Radarr/Radarr.exe --data=${radarr_data_dir} --nobrowser"

start_precmd=radarr_precmd
radarr_precmd() {
    if [ ! -d ${radarr_data_dir} ]; then
    install -d -o ${radarr_user} -g ${radarr_group} ${radarr_data_dir}
    fi

    export XDG_CONFIG_HOME=${radarr_data_dir}
}

run_rc_command "$1"

iocage exec radarr chmod u+x /usr/local/etc/rc.d/radarr
iocage exec radarr sysrc "radarr_enable=YES"
iocage exec radarr service radarr start

Plex

echo '{"pkgs":["plexmediaserver","ca_root_nss"]}' > /tmp/pkg.json
iocage create -n "plex" -p /tmp/pkg.json -r 11.1-RELEASE ip4_addr="vnet0|10.68.69.3/24" defaultrouter="10.68.69.1" vnet="on" allow_raw_sockets="1" boot="on" 
rm /tmp/pkg.json

iocage exec plex pkg install -y plexmediaserver ca_root_nss
iocage fstab -a plex /mnt/myVol/apps/plex /config nullfs rw 0 0
iocage fstab -a plex /mnt/myVol/media /mnt/media nullfs ro 0 0
iocage exec plex chown -R plex:plex /config
iocage exec plex sysrc "plexmediaserver_enable=YES"
iocage exec plex sysrc plexmediaserver_support_path="/config"
iocage exec plex service plexmediaserver start

iocage fstab -a plex /mnt/myVol/media /media nullfs ro 0 0

mv /mnt/myVol/jails/Plex/usr/local/plexdata/Plex /mnt/myVol/apps/plex/Plex



<a name="ombi"></a>
**Ombi**

echo '{"pkgs":["mono","ca_root_nss","unzip","sqlite3"]}' > /tmp/pkg.json
iocage create -n "ombi" -p /tmp/pkg.json -r 11.1-RELEASE ip4_addr="vnet0|10.68.69.21/24" defaultrouter="10.68.69.1" vnet="on" allow_raw_sockets="1" boot="on"
rm /tmp/pkg.json

iocage exec ombi pkg install -y mono ca_root_nss unzip sqlite3
iocage fstab -a ombi /mnt/myVol/apps/ombi /config nullfs rw 0 0
iocage exec ombi ln -s /usr/local/bin/mono /usr/bin/mono
iocage exec ombi "fetch https://ci.appveyor.com/api/buildjobs/0s9th9l5c0you5c1/artifacts/Ombi.zip -o /usr/local/share"
iocage exec ombi "unzip -d /usr/local/share /usr/local/share/Ombi.zip"
iocage exec ombi mv /usr/local/share/Release /usr/local/share/ombi
iocage exec ombi rm /usr/local/share/Ombi.zip


 iocage exec ombi service ombi onestop
 
You only need to run the next two commands if you are creating the jail for the first time.

iocage exec ombi sqlite3 /config/Ombi.sqlite "create table aTable(field1 int); drop table aTable;"
iocage exec ombi mkdir -p /config/Backups

iocage exec ombi ln -s /config/Ombi.sqlite /usr/local/share/ombi/Ombi.sqlite
iocage exec ombi ln -s /config/Backups /usr/local/share/ombi/Backups
iocage exec ombi "pw user add ombi -c ombi -u 819 -d /nonexistent -s /usr/bin/nologin"
iocage exec ombi chown -R ombi:ombi /usr/local/share/ombi /config
iocage exec ombi mkdir /usr/local/etc/rc.d

ee /mnt/iocage/jails/ombi/root/usr/local/etc/rc.d/ombi

#!/bin/sh

$FreeBSD$

PROVIDE: ombi

REQUIRE: LOGIN

KEYWORD: shutdown

Add the following lines to /etc/rc.conf.local or /etc/rc.conf

to enable this service:

ombi_enable (bool): Set to NO by default.

Set it to YES to enable it.

ombi_user: The user account ombi daemon runs as what

you want it to be. It uses 'ombi' user by

default. Do not sets it as empty or it will run

as root.

ombi_group: The group account ombi daemon runs as what

you want it to be. It uses 'ombi' group by

default. Do not sets it as empty or it will run

as wheel.

ombi_data_dir: Directory where ombi configuration

data is stored.

Default: /usr/local/share/ombi

. /etc/rc.subr

name=ombi rcvar=ombi_enable load_rc_config ${name}

: ${ombi_enable:=NO} : ${ombi_user:=ombi} : ${ombi_group:=ombi} : ${ombi_data_dir:="/config"}

procname="/usr/local/bin/mono" command="/usr/sbin/daemon" command_args="-f ${procname} /usr/local/share/ombi/Ombi.exe"

start_precmd=ombi_precmd ombi_precmd() { if [ ! -d ${ombi_data_dir} ]; then install -d -o ${ombi_user} -g ${ombi_group} ${ombi_data_dir} fi export XDG_CONFIG_HOME=${ombi_data_dir} }

run_rc_command "$1"


iocage exec ombi chmod u+x /usr/local/etc/rc.d/ombi
iocage exec ombi sysrc ombi_enable=YES
iocage exec ombi service ombi start

<a name="unifi"></a>
**Unifi**

https://www.freshports.org/net-mgmt/unifi5/
https://forums.freenas.org/index.php?resources/installing-ubiquiti-unifi-controller-in-a-jail.55/

pkg update && pkg upgrade -y pkg install -y bash llvm40 openjdk8 portsnap fetch extract cd /usr/ports/net-mgmt/unifi5/ && make -DBATCH install clean sysrc unifi_enable=YES service unifi start

You must use the ssl site https://yourip:8443

Updates: portsnap fetch extract cd /usr/ports/net-mgmt/unifi5 service unifi stop make reinstall clean service unifi start


<a name="tautulli"></a>
**Tautulli**

echo '{"pkgs":["python2","py27-sqlite3","py27-openssl","ca_root_nss","git"]}' > /tmp/pkg.json iocage create -n "tautulli" -p /tmp/pkg.json -r 11.1-RELEASE ip4_addr="vnet0|10.68.69.97/24" defaultrouter="10.68.69.1" vnet="on" allow_raw_sockets="1" boot="on" rm /tmp/pkg.json iocage fstab -a tautulli /mnt/myVol/apps/tautulli /config nullfs rw 0 0 iocage exec tautulli git clone https://github.com/Tautulli/Tautulli.git /usr/local/share/Tautulli iocage exec tautulli "pw user add tautulli -c tautulli -u 109 -d /nonexistent -s /usr/bin/nologin" iocage exec tautulli chown -R tautulli:tautulli /usr/local/share/Tautulli /config iocage exec tautulli cp /usr/local/share/Tautulli/init-scripts/init.freenas /usr/local/etc/rc.d/tautulli iocage exec tautulli chmod u+x /usr/local/etc/rc.d/tautulli iocage exec tautulli sysrc "tautulli_enable=YES" iocage exec tautulli sysrc "tautulli_flags=--datadir /config" iocage exec tautulli service tautulli start


<a name="updates"></a>
**Updates**

pkg upgrade "name of package without quotes" pkg upgrade :updates all the packages in the jail


<a name="config"></a>
**Config Locations**

Jackett /usr/local/jackett/ServerConfig.json /usr/local/jackett/indexers

Sonarr /usr/local/sonarr/cofig.xml /usr/local/sonarr/nzbdrone.db

Radarr /usr/local/radarr/cofig.xml /usr/local/radarr/nzbdrone.db

Transmission /usr/local/etc/transmission/home

Plex /usr/local/plexdata/Plex Media Server


<a name="backups"></a>
Backups
-------
**Important files**

Sonarr: download backup through web interface or nzbdrone.db & config.xml Radarr: download backup through web interface or nzbdrone.db & config.xml Unifi: download backup through web interface Ombi: Ombi.sqlite Headphones: headphones.db config.ini PEXPY:/usr/local/plexpy/config.ini /usr/local/plexpy/plexpy.db /usr/local/plexpy/plexpy.log /usr/local/plexpy/backups




<a name="common commands"></a>
**Common Commands**

https://www-uxsup.csx.cam.ac.uk/pub/doc/suse/suse9.0/userguide-9.0/ch24s04.html

cd /directorypath : Change to directory. chmod [options] mode filename : Change a file’s permissions. chown [options] filename : Change who owns a file. cp [options] :source destination : Copy files and directories. ln -s test symlink : Creates a symbolic link named symlink that points to the file test mkdir [options] directory : Create a new directory. mv -i myfile yourfile : Move the file from "myfile" to "yourfile". This effectively changes the name of "myfile" to "yourfile". mv -i /data/myfile : Move the file from "myfile" from the directory "/data" to the current working directory. rm [options] directory : Remove (delete) file(s) and/or directories. tar [options] filename : Store and extract files from a tarfile (.tar) or tarball (.tar.gz or .tgz). touch filename : Create an empty file with the specified name.


<a name="testing"></a>
**Testing**

service [name of service] start service [name of service] stop service [name of service] restart


iocage exec transmission  service transmission onestop
iocage exec transmission "pw user add media -c media -u 8675309 -d /nonexistent -s /usr/bin/nologin"
iocage exec transmission "pw groupadd -n media -g 8675309"
iocage exec transmission "pw groupmod media -m transmission"
iocage exec transmission  chown -R media:media /config/transmission-home
iocage exec transmission  chown -R media:media /mnt/downloads
iocage exec transmission  sysrc 'transmission_user=media'

iocage exec radarr  service radarr onestop
iocage exec radarr "pw user add media -c media -u 8675309 -d /nonexistent -s /usr/bin/nologin"
iocage exec radarr "pw groupadd -n media -g 8675309"
iocage exec radarr "pw groupmod media -m radarr"
iocage exec radarr chown -R media:media /usr/local/share/Radarr /config
iocage exec radarr  sysrc 'radarr_user=media'

iocage exec sonarr  service sonarr onestop
iocage exec sonarr "pw user add media -c media -u 8675309 -d /nonexistent -s /usr/bin/nologin"
iocage exec sonarr "pw groupadd -n media -g 8675309"
iocage exec sonarr "pw groupmod media -m sonarr"
iocage exec sonarr chown -R media:media /usr/local/share/NzbDrone /config
iocage exec sonarr  sysrc 'sonarr_user=media'



Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment