FreeNAS: Install Organizr

FreeNAS Install Organizr
Installing Organizr on your FreeNAS system is a great way to keep track of all the services and different webpages and port you have setup to manage them. Organizer states that it aims to be your one stop shop for your Servers Frontend. Organizr allows you to setup “Tabs” that will be loaded all in one webpage. You can then work on your server with ease from a single point of contact. Many of the services are integreated in the the ‘iframe’ which means it really feels like a seamless one stop locations for managing your server. You can customize and configure all your pages and have them available on a single side tab, or you can setup multiple tabs. One of the best features is that you can set it up to let you know if the service is up or down, it integrates with Sonarr and Radarr and includes a calendar telling you when the next episode airs or a movie releases. It also can show basic information from your Plex server such as recently added and currently playing. It even has support for multiple users with different permission profiles. I haven’t been able to explore all the features yet, but already this software is superior to other front ends such as Heimdall. Organizr is a must install for anybody with a media server setup to make your life so much less complex. This article will walk you through the setup process for Organizr on your FreeNAS server.

UPDATE: I have updated this article for TrueNAS and you can read the TrueNAS: Organizr Install article.

This article is part of my series of FreeNas setup, configuration and install articles.

Create a New Jail for Organizr

Use the FreeNAS WebUI to create a new jail. You can try and use an existing jail if you’d like, but consider weather there are any web servers in that jail which might conflict with the web server we are going to need for Organizr. To create new jail navigate to “Jails -> Add” and then enter the relevant information.

Install the Dependencies and Tools

We will now need to install all the dependencies for running Organizr, including the webserver (nginx), git and all the necessary php tools. To do so, you will need to go to the shell of the jail, either through the WebUI or using SSH, and enter the following command.
pkg install -y nginx git wget nano php72 php72-curl php72-pdo php72-sqlite3 php72-simplexml php72-zip php72-openssl php72-hash php72-json php72-session php72-pdo_sqlite php72-filter

If this is a new jail it will probably ask if you want to install the pkg service (used to install software). Enter yes.

Configure the Web Server and PHP

Configure PHP by running the following seven commands which will add text to the PHP config files:

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

Download Organizr V2

git clone -b v2-develop https://github.com/causefx/Organizr /usr/local/www/Organizr

Set Permissions:
chown -R www:www /usr/local/www

Edit the nginx configuration file:
nano /usr/local/etc/nginx/nginx.conf

I got mine working by having it look like this:

user  www;
worker_processes  1;

# This default error log path is compiled-in to make sure configuration parsing
# errors are logged somewhere, especially during unattended boot when stderr
# isn't normally logged anywhere. This path will be touched on every nginx
# start regardless of error log location configured here. See
# https://trac.nginx.org/nginx/ticket/147 for more info.
#error_log  /var/log/nginx/error.log;

#pid        logs/nginx.pid;

events {
    worker_connections  1024;

http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    gzip  on;

    server {
        listen       80;
        server_name  organizr;
        #charset koi8-r;
        #root /usr/local/www/Organizr;
        #access_log  logs/host.access.log  main;

        location / {
            root /usr/local/www/Organizr;
            index  index.php index.html index.htm;

        #error_page  404              /404.html;
        error_page 500 502 503 504 /50x.html;
        # redirect server error pages to the static page /50x.html
        # error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   /usr/local/www/nginx-dist;
        # proxy the PHP scripts to Apache listening on
        location ~ \.php$ {
        root /usr/local/www/Organizr;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $request_filename;
        include fastcgi_params;

Here’s a list of the changes you need to make to the file:

1) set the user to www at the top of the file;
2) under the server section, location subsection change the root to: /usr/local/www/Organizr;
3) under the server section, location subsection add index.php to the index heading;
4) uncomment the 50x error page lines;
5) uncomment the “location ~ \.php$ {” line and then add the following text after it:

root /usr/local/www/Organizr;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $request_filename;
include fastcgi_params;

Below this section of the file there is alot of extraneos additional information that is for addition webpages etc. You can delete it or just keep it in the file and commented out. At the end, your file should look something like the image below.

Organizr FreeNAS Install
Organizr FreeNAS Install

Start Services and Set them to Start on Boot

Now we are ready to set the services to start on boot by entering the following commands:

sysrc nginx_enable=YES
sysrc php_fpm_enable=YES

You can either reboot the jail now, or have them manually start now with the following commands:
service nginx start
service php-fpm start

That’s it! Organizr is installed and you’re ready to rock! You can now login at to Organizr at http:// [ localIPaddress ] and you will be greeted with the following lovely screen to begin configuring the setup!

Organizr for FreeNAS Configuration Screen
Organizr for FreeNAS Configuration Screen

Configure Organizr

So this article is meant to help you install Organizr not configure it. However one quick tip that I needed, was how to get my Plex token, which this web link will help you do. This webpage also has a few helpful tips for overall config.

Alright folks, you should be up and running, so happy Organizrin’!



Liked it? Take a second to support digiMoot on Patreon!

3 thoughts on “FreeNAS: Install Organizr

  1. Hey,
    thanks for that great tutorial!

    Please add follwing informationen!
    On Organzir 2.1 you have to add following lines to the nginx.conf after Server{

    location /api/v2 {
    try_files $uri /api/v2/index.php$is_args$args;

    Great Job! Have a nice Day

  2. Great walk thru… I’ve had Organizr installed for a while now and somewhere along the way, it’s broken down. I can still use it but I can’t access the Settings page anymore (it’s just a blank page) and on my mobile device, none of the drop downs are visible (I just have to guess where in the list my different links are and do trial and error).
    I was hoping that someone would know how to manually update Organizr from the Freenas Jail so that maybe I could salvage the install without having to completely rebuild…
    Thanks in advance!

Leave a Reply

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