Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Organizr allows custom changes to certain things in the core framework
Loading...
Loading...
Frequently Asked Questions
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Before installing Organizr you need to have a couple of pieces of software installed.
Are you running Docker Containers?
If you are running Docker Containers, you can skip to Installing Organizr via Docker.
Do you have a Web Server installed?
If you do not please proceed to the following page:
Do you have PHP installed?
If you do not please proceed to the following page:
If you have both a Web Server and PHP installed, head over to this page:
Allow me to re-introduce myself My name is...
Currently x64 bit OS only.
Latest version of PowerShell, if you're on Windows 7/Win Server 2008 download
Windows 10 recommended but it should work on Windows 7 if you have the latest version of PowerShell
The user account running the installer should have admin privileges and a password set.
Windows 10 Pro (Fall creators update)
Windows Server 2012 R2
Downloads Nginx, PHP, NSSM and Visual C++ Redistributable
Creates services for Nginx and PHP
Downloads Organizr
Configures PHP as per Org requirements
Adds in a working Nginx conf file with PHP block enabled
Clone\Download the OWI folder from: https://github.com/elmerfdz/OrganizrInstaller
Extract the zip file to your desktop
Navigate to \OrganizrInstaller\windows\owi
Right-click on owi_installer.bat
and click on Run as administrator
Installer will ask you for the nginx install location, type in the full path as per the e.g. c:\nginx
The installer will ask you to provide the password of the current user during installation, the nginx service requires that you run it under a user account instead of the 'Local System' account, if you don't then you won't be able to save and reload your nginx config
Git (sudo apt-get install git
)
Ubuntu 16.04
Debian 9.5+
Installs Unzip, NGINX, and PHP
Installs the required PHP modules
Adds in a working NGINX conf with PHP block and sample app configs
Clone/Download the OUI folder from https://github.com/elmerfdz/OrganizrInstaller - git clone https://github.com/elmerfdz/OrganizrInstaller /opt/OrganizrInstaller
Navigate to the OUI folder - cd /opt/OrganizrInstaller/ubuntu/oui
Run the installer script - sudo bash ou_installer.sh
If you want to set it up without SSL, use the Let's Encrypt/Standard option
Important note for beginners
Organizr is a php based web front-end to help organize your services. Organizr itself is not a service, so do not think of this as another usenet application. It's a collection of files that live on your webserver to serve up existing content/services in a streamlined, organized way.
You are installing Organizr on the same host machine as your webserver
You are using a debian or ubuntu based linux distro for an OS, and nginx as a webserver
You are installing as the root user, or a user with `sudo` privelages (use `sudo` where appropriate if you're not root)
If you don't already have nginx installed as a webserver, run apt-get install nginx
or consult this guide for detailed setup.
There are a few packages that Organizr depends on to function. Some of them may already be installed with your OS, some may be missing, or some may require an upgraded version. This guide shows you how to use and install php7.1 and its packages, but Organizr also lets you use php7.0 or php7.2, if you prefer.
If you plan on using LDAP for authenticating into Organizr, php7.1 or later is required
If you do not have php
already installed on your system, you'll need to add the repository and install the package
Then, to be sure all of the Organizr's prerequisites are installed, run the following command with your package manager. Some of these may also require other dependencies, so select "Yes" to install those as well.
You now have the necessary prerequisites to install and use Organizr. Next you need to decide where you're going to install Organizr within your web directory. Most default nginx installations give you a path at /var/www/html
to insert your website files. You can install Organizr there, but to keep things organized (in the event that you want more than one website), we recommend /var/www/websites/website_name.com/
. You can also install Organizr as a subdirectory, if you do not want Orgniazr being the default root of your domain. In that case, you would install it to /var/www/websites/website_name.com/organizr
. For this guide, we'll assume your domain is named roxinsocks.com
and that Organizr is running at the root level of the site.
Navigate to your website path with cd /var/www/websites/roxinsocks.com
Using one of these two methods, grab the most recent Organizr build from github:
git clone https://github.com/causefx/Organizr /var/www/websites/roxinsocks.com
You may need to install git
if you don't have it installed: apt-get install git
wget
https://github.com/causefx/Organizr/archive/v2-master.zip
You may need to install wget
if you don't have it installed: apt-get install wget
Unzip the file with unzip v2-master.zip -d /var/www/websites/roxinsocks.com
All your Organizr files are now installed at /var/www/websites/roxinsocks.com/
Set the permission to your path, so that Organizr can write to it by running chown -R www-data:www-data /var/www/websites/roxinsocks.com/
For external access and functionality, edit your nginx sites-enabled config file for your domain (nano /etc/nginx/sites-enabled/roxinsocks.com
), and be sure the root
is set correctly in the server block. This will tell nginx where to look for organizr, when you navigate to your domain:
You may need to change the path to the socket depending on what version of PHP you installed
3. Navigate to that path locally using your web browser and the host's local ip address. http://localhost
or http://192.168.1.###
You should be able to login and establish your admin account.
An example Caddy V2 Caddyfile with reverse proxy
Would you like to help contribute to Organizr?
We are always looking for someone who would like to join us and help. No matter how small or big... We will take all the help we can get.
Join us and help contribute to Organizr's Documentation. The link to join is here:
Once you have joined, hop onto our Discord server and let us know which username you signed up with on Gitbook and we can apply the correct permissions for you or add your name to this list after you use the invite link:
Join us and help other members out that configuring and tinkering with Organizr over in our Discord server. Join the server here:
Coming soon...
The first component needed for Organizr to run is a webserver.
Download Nginx from: http://nginx.org/en/download.html
Install Nginx to your preferred location
Copy the Nginx folder to your preferred location e.g. c:\
If you want to run Nginx as a service then skip to Running Nginx as a service
section, if not continue.
Go to the location you copied the Nginx folder e.g. c:\nginx
Double click on nginx.exe
in c:\nginx
, nginx should now be running on your system
To verify, open a browser and type localhost and press enter. If you get "Welcome to nginx!” message then Nginx has been installed successfully
Note: you would need to open 'nginx.exe' every time you reboot your system, to avoid this, install Nginx as a service.
Download NSSM from: https://nssm.cc/download
Copy the nssm.exe from the win32 or win64 folder depending on your system to C:\Windows\System32
Open cmd
as admin, navigate to C:\Windows\System32
Type in this command nssm install nginx
Path = C:\nginx\nginx.exe
Startup directory = C:\nginx
See image below for Example
Install service
Make sure you run the service as the admin account
Open run and type in services.msc
Search for the nginx service we just installed
Double-click and go to the Log On tab
Select ‘This account:’ and fill in your account details and then press ok.
Right click on the nginx service and restart
Making your Nginx install PHP ready, uncomment the following code from your nginx.conf file c:\nginx\conf\nginx.conf
To verify, open a browser and type localhost and press enter. If you get "Welcome to nginx!” message then Nginx has been installed successfully
You can copy the following if you wish and replace the content in your nginx.conf
file
Run apt-get install nginx
or consult this guide for detailed setup.
Here are the many ways you can install Organizr.
Organizr has an Auto Installer that works on Windows and some flavors of Linux.
Head over to https://github.com/Organizr/docker-organizr to see more information.
Make sure you have setup Nginx and PHP
Make sure you have enabled php_pdo_sqlite.dll & php_openssl.dll PHP extensions.
Download the latest release of Organizr.
Open the downloaded organizr zip file and copy all files and paste them in the web root folder c:\nginx\html\
OR If you prefer you can create sub-directory called organizr under c:\nginx\html
and paste the copied organizr files in that folder.
Go to http(s)://localhost/index.php
You may use this Nginx config file if you would like
Navigate to your website path with cd /var/www/websites/roxinsocks.com
Replace the domain path in the webserver path with the correct path
Using one of the following two methods, grab the most recent Organizr build from github:
Copy this command and paste into your terminal
You may need to install git
if you don't have it installed: apt-get install git
Copy this command and paste into your terminal
You may need to install wget
if you don't have it installed: apt-get install wget
Unzip the file with the following command while replacing the file path with the location to your servers domain files
All your Organizr files are now installed at /var/www/websites/roxinsocks.com/
Set the permission to your path, so that Organizr can write to it by running chown -R www-data:www-data /var/www/websites/roxinsocks.com/
For external access and functionality, edit your nginx sites-enabled config file for your domain (nano /etc/nginx/sites-enabled/roxinsocks.com
), and be sure the root
is set correctly in the server block. This will tell nginx where to look for organizr, when you navigate to your domain:
You may need to change the path to the socket depending on what version of PHP you installed
3. Navigate to that path locally using your web browser and the host's local ip address. http://localhost
or http://192.168.1.###
You should be able to login and establish your admin account.
Our helm chart is maintained by the guys over at k8s@home. This uses the official docker container.
Repo
Link
Chart Github Repository
Chart Helm Repository
Artifacthub
Add the helm repository for k8s-at-home
Read through the values.yaml file either in the github repository or via helm commands
Deploy a named release with your override values.yaml file
The second component needed for Organizr to run is PHP.
Download PHP for Windows from here: http://windows.php.net/download (Non Thread Safe version used in this guide)
Create a folder called PHP under your Nginx directory e.g. C:\nginx\php
and copy the downloaded files to this folder
Install NSSM - Skip to Step 2 if already installed
Download NSSM from: https://nssm.cc/download
Copy the nssm.exe from the win32 or win64 folder depending on your system to C:\Windows\System32
If you’ve got nssm
already setup, open command prompt as admin.
Type in the following cmd nssm install php
Path = C:\nginx\php\php-cgi.exe
Startup directory = C:\nginx\php
Arguments = -b 127.0.0.1:9000
See image below for Example
Install Service
On the opened cmd prompt type in nssm start php
to start the PHP service.
If the installed PHP service doesn’t start, then try manually running the php-cgi.exe
file in C:\nginx\php\
If you get a missing ‘VCRUNTIME’ related error then follow the solution on this link: http://stackoverflow.com/questions/30811668/php-7-missing-vcruntime140-dll
Make a copy of one of the php.ini-development
or php.ini-production
files and rename it to php.ini
Open the php.ini file and search for the following and uncomment each:
extension_dir = "ext"
extension=php_openssl.dll
extension=php_pdo_sqlite.dll
extension=php_curl.dll
extension=php_sqlite3.dll
Please note that if you are running PHP 7.2 or higher, look for the below lines and uncomment them instead:
extension_dir = "ext"
extension=openssl
extension=pdo_sqlite
extension=curl
extension=sqlite3
Also, uncomment the following line and add ext
to the end of it:
sqlite3.extension_dir =
So that is becomes: sqlite3.extension_dir = ext
On the opened cmd
prompt type in nssm restart php
to restart the PHP service to apply the changes in php.ini
.
Then, to be sure all of the PHP packages are installed, run the following command with your package manager. Some of these may also require other dependencies, so select "Yes" to install those as well.
Once you have installed Organizr, the first page that you are presented with is the Wizard page. Here you will enter which License type you want to use along with creating the Admin's credentials.
This is where you would choose if this is for Personal Use of Business use,
License Type
Information
Personal
Everything is unlocked - nothing is hidden
Business
All Media related items are hidden
Here you will need to fill out the Admin's info. If you choose the personal License and you are using Plex or Emby as a backend you should fill out the username/email/password all the same as that admin's information so you can use SSO.
This is where locking down the system comes into play. There are 3 fields that are needed, 1 of them is auto-generated, which is the API field.
Field
Information
Hash Key
This is the salt used to hash all passwords that will be in the config file
Registration Password
This is the field that is needed for anyone to sign up for you Organizr
API Key
This is auto-generated. Used to access Organizr's data
Organizr uses SQLITE for its Database. All that is needed is what you want to name the Database - for security reasons... and The location of where to store it - also for security reasons. Once you have filled out the information, it's best to click the Test/Create Path button to see if everything is good to go.
Path
Information
Suggested Directory
This is a new directory named db
inside the parent directory of where Organizr located
Current Directory
This where Organizr is located
Parent Directory
This is the parent directory of where Organizr located
Once you have completed all the steps, you will be taken to an overview page so you may see everything that was entered. You may hover over the items that are sensitive so you may see that information. Once you have verified all information, you may click Finish. This will create the Database and import you as the Admin user. Once completed it will refresh to the login screen.
Now that the Database is created, you will now be automatically logged in. If that doesn't happen, login with the credentials that you just finished creating.
Organizr Tabs is the main focus of Organizr. You can have as many tabs as you like and even put them into Categories. Each tab can be configured to be opened in an iframe or in a new window. In your Settings in Tab Editor, it will list all your current tabs. From this screen you can add, delete, disable, etc
Organizr does not do any type of proxying. The URL you are putting in the Tab URL must be accessible from your browser. This means if you want external access to the items you are putting in Organizr, they too must be externally accessible via a reverse proxy (recommended) or opened port.
Rearranging Tabs: Hover over the three dots on the left side of the tabs, click and drag to where you want it.
Home Symbol (See image below): This will take you to the Homepage setting based on a best guess of your tab name.
Homepage Items and Tabs are two separate things and one does not configure the other
Category: Group tabs together so you can collapse them (set up your categories in the Categories tab below Tab Editor)
Group: Minimum Group that the tab should be shown to. Usually should match ServerAuth if you are using it.
Type:
Internal - only for Organizr things (Homepage and Settings)
iFrame - your standard tab
New Window - Opens a new window/tab
Default: Choose which tab loads when you first login.
If you set the default tab to something that a user doesn't have access to, it will load the first in the list that they do.
Active: Enable or Disable the tab
Splash: Adds a link to the splash screen that shows when you log in/time out.
Ping: Enables the ping functionality (must have Ping URL filled in)
Preload: Loads the tab when you first load/login to Organizr
Tab Name: What you want the tab to show
Tab URL: URL you want to load. Examples: /appname
, https://app.domain.com
Note: must have scheme if you are using a full URL.
Tab Local URL: URL you want to load when you are local to Organizr (RFC1918 space by default: 192.168.x.x, 10.x.x.x, or 172.16-31.x.x, You can add more address space in System Settings -> Main -> Login) This is optional and can be left blank.
If you are using HTTPS and have this filled in, you will a Mixed Content Error when you are local unless you are also switching to an HTTP page for Organizr when local
Ping URL: URL and port to check if a service is up. Examples: 192.168.1.4:8181
, tautulli:8181
These should not have scheme. This is optional and can be left blank.
Tab Auto Action: Auto Close/Reload after a specified amount of minutes. Note: this is timed of when the tab is opened, not when last interacted with.
Tab Image: Will fill in if you choose from the Image/Icon drop downs
Test Tab: Will test to see if the tab can be loaded in an iFrame or not.
Tab URL: api/v2/page/homepage
Original Icon: fontawesome::home
Type (after saving): Organizr
Plex Authentication Backend
Using Plex as your Organizr backend allows you to authenticate using both your Local Plex Server as well as the servers at Plex.tv
Change the Authentication type to Organizr DB + Backend
. Choose Plex
as the Authentication Backend. Use the Retrieve button to fill in the Plex Token and Plex Machine.
Type
Purpose
Plex Token
Token to authenticate with Plex Servers
Plex Machine
Plex Machine ID for your specific server
Admin Username
Username or Email for Organizr and Plex Admin account
Enable Plex oAuth
This will bring up a Plex login screen that will flow credentials through plex.tv
Strict Plex Friends
Enabling this option will only allow people from your friends list that have access to the server that you selected for Plex Machine
Utilizing Nginx's server_auth
After reading about how Server Authentication works, next we will need to set up the rewriting directive.
You will need to modify your location block. Associated with your site. In Linux, this is typically located at /etc/nginx/sites-available/domain.com.conf
The Native Nginx rewrite block has been reported as not working for all setups. Use the Native Nginx Proxy Pass method if it fails.
There is already a preconfigured file for this. Find the organizr-auth.subfolder.conf.sample
and edit it the same way you did for your main Organizr file and remove the .sample.
For subfolders, just add one of the auth_request
lines into the subfolder config with the groups as explained above.
For subdomains, add the auth_request
same as you would for a subfolder and add an include for the file such as:
Note: If you are using a reverse proxy, this should be added on the reverse proxy layer
A subdomain allows you to have a custom application name for each app on your domain. For example, https://sonarr.domain.com for Sonarr and https://radarr.domain.com for Radar. For subdomains, you need to call back to the domain organizr is on, this can be done differently depending on your installation method.
Native, with local DNS setup (This can also apply for containers): http://app.domain.com/api/v2/auth/$1
Docker, using ip and port (This is assuming the container is running in bridge): http://[docker/hostIP]:[port]/api/v2/auth/$1
All you need to do is include one line per reverse proxy block as the very first line:
auth_request /organizr-auth/0;
If you are using something other than the default 0, change it out here. Other options are located on the Server Authentication page.
Here is a sample of a reverse proxy with admin access:
Most of our examples already has this, but here is an explanation, using one of our examples(with headers removed)
Nginx Proxy Manager is a web application that helps you manage your Nginx configuration.
Please read the red bubbles in the screenshots carefully. Modify your Organizr proxy host configuration to include a custom location. Example where ip-address
is local IP and 8000
is the port where Organizr is hosted:
Modify the proxy host configuration for the service you want ServerAuth for. Modifications are needed in the Advanced section AND the Custom locations section. Example is a ServerAuth setup for Sonarr (as a subdomain):
Advanced Custom Nginx Configuration section:
organizr-auth
can be any string you like - Just make sure to make it match the Custom Location location
field on the next step.
Custom Locations Section:
organizr-auth
can be any string you like - Just make sure to make it match the Advanced Tab
Only change the IP Address in this URL & Don't forget to change the PORT to match yours
Using Caddy and the reauth plugin you can accomplish the same using the following block:
Here is a sample Caddy directive using caddy-jwt to protect a path using the Organizr token:
The secret to use to validate the token needs to be passed to Caddy either as an environment variable named JWT_SECRET
or in a file, specified with the secret
configuration option.
Note that the http.jwt plugin is not installed in default Caddy builds.
You should not protect the /
Organizr root path. Organizr handles it on its ow
Plex Single Sign On
If you are using Plex as the main driving factor for your Organizr instance, you will want to enable Plex as backend choice to login via Plex credentials.
Settings / System Settings / Main / Authentication
Change the Authentication type to Organizr DB + Backend
. Choose Plex
as the Authentication Backend. Use the Retrieve button to fill in the Plex Token and Plex Machine.
The other two toggles are optional:
Now that Plex is setup to be the backend for Organizr, you can head over to the SSO section for Plex
Settings / System Settings / Single Sign-On / Plex
If Plex account was made using Facebook/Google - YOU HAVE TO USE OAUTH to sign in
Plex SSO will only work with Plex reverse proxied as a subdirectory and not as a subdomain. Fill out the Plex Token
and Plex Machine
(They should already be filled in if you did the above step). You can use the retrieve buttons to fill these out. Toggle the enabled switch to turn it on.
If not using Plex OAuth - For Admin Account - Make sure passwords match in Organizr and Plex
Plex SSO doesn't work if Plex Reverse Proxy is a subdomain - It must be on the same domain as Organizr
Proxy Authentication via Server Auth
Server Authentication will allow you to secure any/all location blocks at your web server/proxy level, only allowing authenticated Organizr users or administrators access. The result of enabling this feature will disallow users from going to https://domain.com/sonarr directly without authenticating with Organizr first.
Note that this method will only provide an Authorization layer but will not actually pass any Authentication information / credentials to the underlying back-end services, since this would require some cooperation from these services to understand it. So these services will still be accessed as a guest / unauthenticated user, but this is often good enough for many services.
Certain providers block wildcard cookies from being set which prevents this from working with subdomains. The most common of these is DuckDNS. For a full list see the bottom of this page.
There are two methods you may use to enable authorization, via the Organizr authorization API or using OAuth / JWT tokens.
The Organizr authorization API method has the drawback of making calls to Organizr's authorization API for each and every HTTP request made against your protected location blocks, therefore impacting performance.
The Oauth / JWT Token method allows you to securely trust the Organizr authentication simply based on the JWT token passed in your authenticated requests cookies. It does not require any extra roundtrip to the Organizr API, nor the rewrite directives.
To utilize the block add auth_request /organizr-auth/$;
See table below:
The first method has the drawback of making calls to Organizr's authorization API for each and every HTTP request made against your protected location blocks, therefore impacting performance.
This method allows you to securely trust the Organizr authentication simply based on the JWT token passed in your authenticated requests cookies. It does not require any extra roundtrip to the Organizr API, nor the rewrite directives.
The flow is as follows:
An unauthenticated user accesses Organizr UI and logs in, using any of the supported login methods.
This cookie is then passed to any subsequent visit to your Organizr domain and subdomains.
Capable web servers can easily read the JWT token from this cookie and validate it to trust the user's identity and make an allow/deny decision based on the claims mentioned in the token.
Once decoded, an Organizr token includes a JWT payload similar to this:
It includes various claims such as your user name, group name, user id, group id, which can all be used by your JWT-aware web server to make an authorization decision.
Of course, your web server should not blindly trust the content of the JWT token since it cold have been forged. In order to trust the token content, your web server will need to validate its signature. This requires the server to know a secret specific to your Organizr instance.
Since Organizr uses HS256 signature algorithm, which is a symmetric algorithm, the same secret is used to both by Organizr to sign the token, and by your web server to validate it. It is therefore important that you keep this secret safe, otherwise it may be used to forge tokens and authenticate to your server!
This requires the following 2 pieces of information:
The name of the cookie to use to extract the token from. This value is dynamic, of the form organizr_token_<uuid>
where <uuid>
is your Organizr instance's $this->config['uuid']
value.
The secret to use to validate the token signature, which is your Organizr instance's $this->config['organizrHash']
value.
Both these values can be taken from your Organizr server's www/Dashboard/api/config/config.php
after initial setup.
On Linux, you may use the following commands to parse them:
Utilizing Traefik's auth-forward
You can use Traefik's auth-forward feature to do the same.
Example docker-compose.yml block for Organizr:
Example service that depends on user being authenticated to Organizr:
Træfik changed how the tags work in v2.
Example docker-compose.yml block for Organizr:
Example service that depends on user being authenticated to Organizr:
Ombi Single Sign On
Using SSO with Ombi allows you to access the Ombi UI using only one sign in.
Settings / System Settings / Single Sign-On / Ombi
Fill out the URL for your Ombi install (it can be the local IP or local DNS and port) and copy your API key from Ombi's settings to the Token box. Toggle the enabled switch to turn it on.
If you are doing a subdomain for Ombi, go to your tabs and set the Tab URL to:
Please make sure that you have the following options enabled in Ombi.
By enabling those options, your users under User Management should have the User Type
as Plex User
now.
For more information regarding the differences between Authorization vs Authentication, check out this website:
For this to work, a URL rewrite directive needs to be added so that the static /organizr-auth/$
locations can be understood by Organizr's authentication API, i.e. use the /api/v2/auth/$1
format. You may find instructions and examples for , , and on subpages in this documentation.
After successful login, the browser will keep an authentication cookie generated by Organizr using the standard JSON Web Token (JWT) format. This signed token includes a number of claims (such as user id, group memberships etc) that the user has. For more info on this standard, visit
You can easily check the contents of Organizr-generated JWT tokens by inspecting your browser cookies and pasting the contents of the cookie named organizr_token_<uuid>
to a JWT inspector such as
Type
Purpose
Enable Plex oAuth
This will bring up a Plex login screen that will flow credentials through plex.tv
Strict Plex Friends
Enabling this option will only allow people from your friends list that have access to the server that you selected for Plex Machine
Type
Purpose
Plex Token
Token to authenticate with Plex Servers
Plex Machine
Plex Machine ID for your specific server
Admin Username
Username or Email for Organizr and Plex Admin account
Enable
Enable Plex SSO
Type
Purpose
Petio URL
URL for your Server's Petio Instance
Token
API Key for Petio
Petio Fallback User
If your user doesn't have an Petio account, Organizr will use this account
Petio Password
Password for the above account
Enable
Enable Petio SSO
$
Organizr group_id
0
Admin
1
Co-Admin
2
Super User
3
Power User
4
User
5-997
Custom Groups
998
Any logged in user
999
Guest
Type
Purpose
Overseerr URL
URL for your Server's Overseerr Instance
Token
API Key for Overseerr
Overseerr Fallback User
If your user doesn't have an Overseerr account, Organizr will use this account
Overseerr Password
Password for the above account
Enable
Enable Overseerr SSO
Type
Purpose
Ombi URL
URL for your Server's Ombi Instance
Token
API Key for Ombi
Ombi Fallback User
If your user doesn't have an Ombi account, Organizr will use this account
Ombi Fallback Password
Password for the above account
Enable
Enable Ombi SSO
Proxy Type
URL
Subdomain (ombi.domain.com)
Directory (domain.com/ombi)
https://domain.com/ombi
Grafana Single Sign On with Proxy Auth
SSO with Grafana is a combination of reverse proxy configuration and some settings in grafana.ini or with environment variables.
You need to flip the enabled to true (it's disabled by default) and you should set the whitelist to the IP of your Organizr install so the header can only come from it. To read more about this, see Grafana's docs.
Jellyfin Single Sign On
Using SSO with Jellyfin allows you to access the Jellyfin UI using only one sign in.
Settings / System Settings / Single Sign-On / Jellyfin
Type
Purpose
Jellyfin API URL
URL for your Server's Jellyfin API Instance
Jellyfin SSO URL
URL for to pass to Jellyfin for SSO
Enable
Enable Jellyfin SSO
SSO doesn't work if Reverse Proxy is a subdomain - It must be on the same domain as Organizr
LDAP Authentication Backend
Using LDAP as your backend allows you to authenticate using your own LDAP server. With that being said there are currently some limitation in Organizr. These will be covered at the bottom of this page.
Currently there are some limitations to using LDAP
Type
Purpose
Host Address
URL for the LDAP Server
Host Base DN
Hose base distinguished name
Account Prefix
The prefix for the account to build the distinguished name for the login
Account Suffix
The suffix for the account to build the distinguished name for the login
Bind Username
Username to bind the authentication to LDAP Server
Bind Password
Password to bind the authentication to LDAP Server
LDAP Backend Type
Type of LDAP Server
Account DN
Preview of the distinguished name for the login
Enable LDAP SSL
Option to enable the use of SSL for LDAP connections
Enable LDAP TLS
Option to enable the use of TLS for LDAP connections
Coming soon...
NZBHydra2 Single Sign On with Proxy Auth
NZBHydra has as of version 2.13.13 the ability to authorize using a similar method as Grafana.
In NZBHydra's settings we need to set a few values. The Auth header
has to have the same as the one in the NGINX reverse proxy (example to follow), while the Secure ip ranges
should be set to the nginx ip.
The homepage houses all of your media items formatted in a very nice UI for you and your users.
Settings / Tab Editor / Tabs
The URL will never change as that points to the Organizr API. You may change the Tab Name
and Tab Image
to anything you like. As for the other options, those are covered in Adding a New Tab
Settings / Tab Editor / Homepage Items
To setup a Homepage item, all you need to do is click on any of the homepage items to edit those settings. You may head to each Homepage item information page next.
Tautulli Single Sign On
The Tautulli SSO module works best if you are using Plex as your Organizr Backend.
Settings / System Settings / Single Sign-On / Tautullli
You first need to make sure that Allow Plex Admin
& Allow Guest Access
to Tautulli are enabled in the Web Interface
portion of the Settings
page.
To enable Tautulli SSO for your users, head to Tautulli Users
page and click Edit mode
and click the Lock Icon
for each user you want to enable SSO for.
By default, Organizr automatically sets up the Tab for the homepage but it will not be active. To activate it just toggle the Active
switch. Once it is active, you can now configure Category
and Group
which you can get to by clicking the button.
Type
Purpose
Multiple URL's
Tautulli URL's for multiple instances
Enable
Enable Tautulli SSO
Calibre Single Sign On with Auth Proxy
Calibre added support to Auth via header in v0.6.5. You need to set the Calibre settings in the Admin Configuration.
The Reverse Proxy Header Name
should be the header you set in your reverse proxy config.
You will need to update your calibre.conf
file as documented on the Proxy Auth SSO page.
Here is an example calibre.conf
file for a subdomain of https://domain.com/calibre
Troubleshooting Single Sign On
In the event that something isn't working as expected, here we will short where to start looking to troubleshoot.
In the drop down under your username in the top right there is an option for the Debug Area. From here use the drop down at the top and choose the SSO option you are trying to troubleshoot.
API Connections without needing to Reverse Proxy Services
Do you need access to a services API through WAN but don't want to reverse proxy it? Organizr can help with that... All you need to do is, enable that option under that Services homepage item. After that, you are off to the races.
GET
https://demo.organizr.app/api/v2/socks/sonarr/api/system/status?apikey=sonarrAPIkey
Calls Sonarr's API
Homepage Item Information
This homepage item allows you to have the following items displayed on the homepage:
Calendar (Upcoming and Past TV Shows)
Queue (Current Downloading Items)
API Socks (Access to API without needing to Reverse Proxy Sonarr)
When setting up the homepage item, the first option is to enable it, do that by toggling the Enable
Switch. After that you need to set the Minimum Authentication
group that will be able to use this item.
Please make sure not to set the Minimum Authentication
to at least the same or lower than the homepage's Tab Group
Enter the connection details of your Sonarr server. This homepage item allows multiple Sonarr server connections.
Organizr's API Socks allows you to access Sonarr's API without needing to Reverse Proxy it.
Depending on if you entered either one Sonarr Connection or multiple will determine which URL you will use.
URL for Socks Connection:
Replace docker:8000
with the address to your actual Organizr Server
I.E.
Depending on how many connections you setup, replace {#} with which server you are connecting to.
URL for Socks Connection:
Replace docker:8000
with the address to your actual Organizr Server and {#}
with the number of the connection
I.E.
Enabling this module will output Sonarr's Download Queue on the homepage.
Better preview coming soon...
This module adds past and future TV Shows on the homepage Calendar
Make sure to save before hitting the Test Connection
button
Make sure to replace the corresponding fields
I.E.
Make sure to replace the corresponding fields
I.E.
Sonarr is a PVR for Usenet and BitTorrent users. It can monitor multiple RSS feeds for new episodes of your favorite shows and will grab, sort and rename them. It can also be configured to automatically upgrade the quality of files already downloaded when a better quality format becomes available.
SSO Values
misc.oAuthLogin = Current Login used oAuth
misc.rememberMe = Remember me button was toggle on login
misc.rememberMeDays = Cookie Length in days
%SSO_TYPE%.enabled: false = SSO module enable status
%SSO_TYPE%.cookie: false = Cookie status
%SSO_TYPE%.url: false = URL of SSO module
%SSO_TYPE%.api: false = The API key status if set
%SSO_TYPE%.backend: false = Plex Backend is not enabled
%SSO_TYPE%.machineID = Used for Plex - machineID status
%SSO_TYPE%.token = The API key status if set
%SSO_TYPE%.plexAdmin = Either username or email
%SSO_TYPE%.strict = Status of Plex Friends status
%SSO_TYPE%.oAuthEnabled = oAuth enable status
Application
Supports Multiple Servers
Sonarr
Yes
Radarr
Yes
Lidarr
Yes
Tautulli
Yes
SabNZBd
No
NZBGet
No
qBittorrent
No
Field
Value
{ORGANIZR_DOMAIN}
Domain of your Organizr instance
{SERVICE}
Supported Application
Field
Value
{ORGANIZR_DOMAIN}
Domain of your Organizr instance
{SERVICE}
Supported Application
{#}
Id of Supported Application (Order in Organizr)
apikey
string
Sonarr's API Key
Token
string
Organizr's API Key
Field
Value
Enable
Enable the Module
Main Module Minimum Authentication
Minimum Group needed to see Entire Module
Field
Value
Multiple URL's
URL to your Sonarr Servers - LAN preferred
Multiple API Key/Token's
API Keys to your Sonarr Servers
Disable Certificate Check
Disables the Certificate of the URL provided if https
Use Custom Certificate
Uses a Custom Certificate for the verification of the URL provided if https
Field
Value
Enable
Enable the Module
Module Minimum Authentication
Minimum Group needed to use Module
Disable Certificate Check
Disables the Certificate of the URL provided if https
Field
Value
Enable
Enable the Module
Module Minimum Authentication
Minimum Group needed to use Module
Add to Combined Downloader
Adds this downloader to a combined downloader module
Refresh Seconds
Sets the time in between data being refreshed
Field
Value
Days Before
Amount of days to grab before todays date
Days After
Amount of days to grab after todays date
Start Day
First Day of Calendar for Week View
Default View
Which view to display on page load
Time Format
Format for the time of TV Showing
Locale
Region format for date
Items Per Day
Amount of items to show pre day before cut-off
Refresh Seconds
Sets the time in between data being refreshed
Show Unmonitored
Display shows that are unmonitored
The HealthChecks Homepage item allows you to see all your health checks on your page at a quick glance.
When setting up the homepage item, the first option is to enable it, do that by toggling the Enable
Switch. After that you need to set the Minimum Authentication
group that will be able to use this item.
Please make sure not to set the Minimum Authentication
to at least the same or lower than the homepage's Tab Group
Field
Value
Enable
Enable the Plex Module
Main Module Minimum Authentication
Minimum Group needed to see Entire Module
If you already went through the Plex SSO or Plex Authentication setup you will have these next fields already saved, if not, you can hit set those values using the provided buttons.
Field
Value
URL
URL to the HealthCheck API (Local or Main API Site)
Disable Certificate Check
Disables the Certificate of the URL provided if https
Use Custom Certificate
Uses a Custom Certificate for the verification of the URL provided if https
Field
Value
Tags
Pull only checks with this tag
Refresh Seconds
How many seconds to update the healthchecks on the homepage
Show Description
Show description on the healthchecks item
Show Tags
Show tags on the healthchecks item
Head over to https://healthchecks.io and create an account. Once created head over to User Menu and select Project Settings to copy your API Key.
Enable the API and once enabled click on Show API Keys
Copy the API key (Top one) and paste into Organizr
You can setup logo/images for the checks if you add an images URL to the tags section for that check
Komga Single Sign On
Using SSO with Komga allows you to access the Komga UI using only one sign in.
Settings / System Settings / Single Sign-On / Komga
Type
Purpose
URL
URL for your Server's Komga Instance
Minimum Authentication
Group Needed to use SSO
Enable
Enable Komga SSO
Komga needs a specific Tab URL in order to function
Tab URL
http://komga-domain/?xAuthToken={komga}
Replace komga-domain with the actual domain of your Komga instance.
Organizr comes with integrated error pages, they have to be configured in the webserver.
It accepts most error codes, and can do a redirect when the user has acknowledged the error.
The full Syntax for the error page is:
Type
Breakdown
$scheme://$server_name
This will translate to the URL to the domain that the servers gets the request from. i.e.
https://organizr.app
/api/v2/organizr/error/
Path to the error page
$status
This will set the correct Status code for the error page
?return=$request_uri
OPTIONAL: This will let Organizr know to redirect the user once they have logged in
You may set custom ones with predefined URLs
To get error pages to work with a reverse proxies, you may need to tell the webserver to intercept the errors from the service.
In NGINX the way to do this is with proxy_intercept_errors on;
This can break some services (like plex), add proxy_intercept_errors off;
to the location if that is the case.
For Subdomain's, we replaced $server_name
with the domain organizr is on.
If you have Organizr Reversed Proxied, which we are sure you do. You need to add an additional block for the API so it doesn't overwrite the errors for it.
Sometime you need to backup and/or restore your instance of Organizr.
Head on over to the Backup module of Organizr
Settings / System Settings / Backup
All that you need to do is click the Create Backup Button
Once the backup process completes, the new back up will be listed at the bottom of the back up listing. There are 2 buttons that are accessible for each backup.
The left button is the download button which will download the zip file that includes all the backed up files. The right button will delete that specific backup zip file.
As of Version 2.1.500
the restore process has not been written for Organizr.
Install Organizr as you would normally
Unzip the backup zip file somewhere
Inside the zip file you will find the folder structure of where the files need to be placed.
If you placed the database-folder elsewhere, you need to update the 'dbLocation' => 'dbPath'
value in config.php
Restart the docker (or process if not in docker) and refresh the web page for Organizr
Fail2ban scans log files (e.g. /var/log/nginx/error.log) and bans IPs that show malicious signs -- too many password failures, seeking for exploits, etc. Generally Fail2Ban is then used to update firewall rules to reject the IP addresses for a specified amount of time, although any arbitrary other action (e.g. sending an email/notification) could also be configured.
Fail2ban installed and configured
Go to your filter.d
folder in your Fail2Ban install location /etc/fail2ban/filter.d
and create a file called organizr-auth.conf
and add the following:
Edit the jail.local
file in the Fail2Ban directory and add the following:
Restart Fail2Ban with sudo service fail2ban restart
Normal Install
Docker Install
Because the Organizr container only logs the docker IP addresses e.g 172.17.0.2
you need to add this in the Organizr default nginx site file. Go to \organizr\nginx\site-confs\default
and add the following inside the server block:
If you're using organizr/organizr
it's already added and you only need to uncomment the set_real_ip_from
line.
Then restart the container: docker restart organizr
The Fail2ban filter folder is in /<appdatafolder>/swag/fail2ban/filter.d
For this to work you need the SWAG container to be able to read the organizr-<date>.log
file in the Organizr container.
Mount the Organizr log like this:
And set the log path in the Fail2Ban jail.local
file to /organizrlog/organizr*.log
The fail2ban.log
file should output something like this:
If you managed to ban yourself or a friend banned themself you can run one of these commands:
Thanks to rix1337 for the fail2ban config:
Homepage Item Information
The Plex homepage item allows you to have the following Plex items displayed on the homepage:
Current playing streams (Active Streams)
Recently Added items
Media search functionality
Playlists
When setting up the Plex homepage item, the first option is to enable it, do that by toggling the Enable
Switch. After that you need to set the Minimum Authentication
group that will be able to use this item.
Please make sure not to set the Minimum Authentication
to at least the same or lower than the homepage's Tab Group
With this module, you will be able to show the current streams that are active on your Plex server live.
With this module, you will be able to display all recent items that were added to your Plex server.
With this module, you will be able to show a search button on your Organizr so users may search your library.
With this module, you will be able to show your curated playlists from your Plex server.
The Plex Tab Name
and Plex Tab WAN URL
are used to configure the homepage items to open up inside the Plex Tab you have setup.
To enableUse Tautulli custom names for users
You must setup the Tautulli Homepage item.
Make sure to save before hitting the Test Connection
button
The ignore IP is so that fail2ban won’t ban your local IP. Check out if you are wondering what your is. Most often it will be /24 (netmask 255.255.255.0)
To find your netmask run ipconfig /all
on windows or ifconfig | grep netmask
on linux.
Next you will Click which Custom HTML segment you want to use and Enable
it then change the Minimum Authentication
to the group you want to allow to see it. Next you will copy the code from above and paste it into the box at the bottom. Finally hit the button.
If you already went through the or setup you will have these next fields already saved, if not, you can hit set those values using the provided buttons.
Field
Value
Enable
Enable the Plex Module
Main Module Minimum Authentication
Minimum Group needed to see Entire Module
Field
Value
URL
URL to your Plex Server - LAN preferred
Disable Certificate Check
Disables the Certificate of the URL provided if https
Use Custom Certificate
Uses a Custom Certificate for the verification of the URL provided if https
Token
Plex Token (Use button to retrieve)
Plex Machine
Plex Machine ID (Use button to retrieve)
Field
Value
Enable
Enable the Plex Active Stream Module
Module Minimum Authentication
Minimum Group needed to see Module
User Information
Show Plex User name
User Information Minimum Authentication
Minimum Group needed to see Plex User name
Refresh Seconds
How many seconds to refresh the Module
Libraries to Exclude
Drop down of libraries to exclude from this Module
Field
Value
Enable
Enable the Plex Recent Items Module
Module Minimum Authentication
Minimum Group needed to see Module
Libraries to Exclude
Drop down of libraries to exclude from this Module
Item Limit
Limit the total # of items to display
Refresh Seconds
How many seconds to refresh the Module
Field
Value
Enable
Enable the Plex Media Search Module
Module Minimum Authentication
Minimum Group needed to see Module
Libraries to Exclude
Drop down of libraries to exclude from this Module
Media Server
Choose Plex
Field
Value
Enable
Enable the Plex Playlist Module
Module Minimum Authentication
Minimum Group needed to see Module
Field
Value
Plex Tab Name
The Plex Tab name if you have one configured
Plex Tab WAN URL
The WAN facing URL i.e. https://domains.com/plex
Image Cache Size
Cache Image quality
Use Tautulli custom names for users
Grab custom names from Tautulli
Get faster load times of tabs in Organizr.
Open Command Prompt as an Administrator
Type the following command set php
and you should see 2 variables
PHP_FCGI_CHILDREN=3
PHP_FCGI_MAX_REQUESTS=128
Run the following command to increase the value of PHP_FCGI_CHILDREN
SETX /m PHP_FCGI_CHILDREN 1000
Close Command Prompt.
Open Command Prompt as Administrator and run set php
and check that PHP_FCGI_CHILDREN
value changed from 3
to 1000
.
Adapted from: https://technicalramblings.com/blog/optimizing-php-fpm-to-get-faster-load-times-of-tabs-in-organizr/
What are Organizr's basic Requirements
A reverse proxy is a server that sits in front of web servers and forwards client (e.g. web browser) requests to those web servers. Reverse proxies are typically implemented to help increase security, performance, and reliability.
The NGINX configs that come with the automated Organizr installer for Windows are set up with a couple files to make settings up your reverse proxies easier. This guide assumes you used the default C:\nginx
, If you are not using the default path, adjust what this says to the path you used. Inside that folder, in the conf
folder, there are two files: rp-subfolder.conf
and rp-subdomain.conf
. These are the files we are going to be working with. We're also going to use the example configs that can be found here (this link is also found in those files)
For configs that are just a location block, you are going to put them inside the rp-subfolder.conf
file. We're going to use Sonarr as an example. Using these will create a reverse proxy that looks like http://domain.com/app
Things that may need changed in this:
If your Sonarr isn't running on the same machine, you will need to change out the 127.0.0.1 to the IP of the machine where it is running. If you are running it on a non-standard port this is also where to change it. Make sure to change it in both places.
If you are changing the location to something else, make sure it too is changed in both places.
For configs that are a server block, you are going to put them inside the rp-subdomain.conf
file. We're going to use Sonarr as an example as well. Using these will create a reverse proxy that looks like http://app.domain.com
Things that may need changed in this:
Same as the subfolder, proxy_pass
http://127.0.0.1:8989;
will need to be if your Sonarr isn't running on the same machine, you will need to change out the 127.0.0.1 to the IP of the machine where it is running. If you are running it on a non-standard port this is also where to change it.
This example is an SSL server block, if you are just running on HTTP, the listen 443 ssl;
will need to be changed and the lines that begin with ssl will need to be removed.
The ssl_certificate
and ssl_certificate_key
need to be changed to where your certs are. I recommend copying them out of the nginx.conf
file.
If you get:[emerg] 17144#3272: the size 10485760 of shared memory zone "SSL" conflicts with already declared size 52428800
remove or comment out the ssl_session_cache builtin:1000 shared:SSL:10m;
line
If you are adding a new subdomain and are using SSL certificates, and didn't already plan ahead when running the installer or use a wildcard certificate, you will need to update the certificate to have the new subdomains. To make this easier, in C:\nginx\winacme
there is a batch script called owi_sslupdater.bat
, like the installer, that just does the certificates and won't make you reinstall the whole thing. Run through the prompts to update your certificates. You shouldn't need to do the next step if you're doing this because it already reloads NGINX.
Once you've made all your changes, you need to tell NGINX to reload the config. You can also test the config before reloading it. Open up a command prompt window as admin and do the following:
The first command after changing into the nginx directory tests the config. This should come back with syntax is ok
. If it doesn't, don't run the next command. After running those commands, the reverse proxies should be accessible.
If you do run into an error when testing the config, it will usually tell you the line on which the syntax error is. If it is related to a curly brace, that line is not always accurate because it is giving the line where it found something it shouldn't and not necessarily where your mistake actually was if you missed a closing curly brace.
The other most common error that we see is nginx: [emerg] could not build server_names_hash, you should increase server_names_hash_bucket_size: 32
If you see this error, add server_names_hash_bucket_size 64;
to the top of your rp-subdomain.conf
file. Depending on how long your domain/subdomains are, the 64 may need to be increased.
You are able to create your own PHP and/or HTML/JS Pages to be loaded in the tab's module.
To achieve this, you need to create a page file named anything you want inside the pages
folder in the data
folder. The data
folder is located in the root folder of Organizr.
Once you have created a blank page, you may paste this skeleton code to get you started:
You need to change the first instance of name_here
on the GLOBALS
variable.
Also make the change on the function name.
They need to be the exact same words.
If you need DB Access, keep the if statement that has the hasDB
method.
If you need to check access by group, leave or change the first parameter in the qualifyRequest
method to the cooresponding group ID
Make the changes to the return with your code.
Once you have the code setup, you may access it via API or via Tab Editor.
GET
https://organizr-url/api/v2/page
GET
https://organizr-url/api/v2/page/name_here
Create a new tab just like this
The Tab URL will be as follows: api/v2/page/name_here
where name_here
is the name of your new custom page.
After you have saved the tab, change the Tab Type to Organizr
and enable the tab.
That's it! Enjoy your new Custom Tab...
If you find yourself in the situation where you've forgotten the password to your Organizr account (ONLY if you have auth set to Org Database ONLY and NOT using Plex or Emby backend), and did not yet setup the PHPMailer Plugin to be able to reset your password, you can use the following instructions to configure the PHPMailer Plugin and regain the ability to reset your forgotten password.
Starting with Organizr Version 2.1.165 you can now use the API to enable PHP Mailer with Organizr's SMTP account
With Organizr Version 2.1.165 and newer, there was a new API Endpoint added. With this endpoint, you may now use Organizr's SMTP servers to reset your password if you have not setup PHPMailer yet.
In order to enable PHP Mailer you will need to know your Organizr API Key. This is inside your /data/config/config.php
file under the variable:
Once you have the API Key you can navigate to this Organizr API Endpoint:
GET
http://organizr-instance/api/v2/help/smtp?apikey=12345678901234567890
Sets the smtp server account and credentials to Organizr's own smtp server account
apikey
string
Organizr's API Key
Now you can go to Organizr and use the Forgot Password link.... That is it!
For versions below 2.1.165, If you do not have your own mail server to use, You can use Organizr's server... Click Me!
Open up the Organizr config file, /config/www/Dashboard/api/config/config.php
, in a text editor and setup the PHPMailer settings like so, with your own SMTP Server information:
You will need to check with your e-mail provider for all of the correct settings for this to work with your e-mail account.
Make sure that, if the last line of the above code is the last line in the file, that there is NO comma at the end and that the new code is inside the PHP block, before the ending );
.
For example, if you're appending the code to the end of your config file, it would end up looking like this:
You will need the hashed value of the password, so, to get hashed value for PHPMAILER-smtpHostPassword
Before you do that, you will need your Organizr hash key. This is inside your /data/config/config.php
file under the variable:
Once you have the organizrHash
you can head over to: Organizr's password hashing tool here
Put the hashed password into the config.php
file and then you SHOULD be able to recover/reset your Organizr account password.
Login Error - API Connection Failed
This seems to be coming up more frequently lately. The Organizr logs will look like there was a successful login. If you are reverse proxying Organizr, you may see the following error in your NGINX logs:
With a reverse proxy, this seems to be a two step process to fix. If you're not using a reverse proxy skip to the next one. First adding (or increasing the limits if you have this set already, check your proxy.conf
) like the following:
The second part and the part if you're not reverse proxying and just running it native, you may see this in the logs:
And this needs to go in the NGINX config where your Organizr is in the PHP block (if you are on the new organizr/organizr
container, we have added this now):
See more:
Are you getting stuck in a redirect loop? Are you seeing some console errors in your browser about SameSite Cookies?
Browsers are starting to enforce strict rules on Cookies set by web apps. The issue here is when an application is not hosted on the same host as Organizr. You have three options...
We will use windows as an example.
The Hosts file in Windows is located at the following location:
Here you will see the Hosts file. Right-click on it and select Notepad. Make the changes and Save.
But sometimes, even when you are logged on with administrative credentials, you may receive one of the following error message:
Access to C:\Windows\System32\drivers\etc\ hosts was denied
Cannot create the C:\Windows\System32\drivers\etc\hosts file. Make sure that the path and file name are correct.
In this case, type Notepad in Start search and right-click on the Notepad result. Select Run as administrator. Open the Hosts file, make the necessary changes, and then click Save.
The changes you need to make are like below:
The left value is the IP address and the right value is the hostname or text you want to tie to that IP address. For this fix everything needs to be on the same domain (basically like how subdomains work when reverse proxying).
Note: They must be on the same subdomain for this to work. You can't just do:
<service>.tld
, they have to be <service>.something.tld
Router/DNS
Depending on your Router you will need to lookup how to achieve this. Routers usually utilize using Dnsmasq.
Use specific webserver to achieve this. Tutorials soon!
This only works if the cookie is not being set with the SameSite property
Access this page from your browser chrome://flags
Search for SameSite and disable it.
Note: This was only supposed to be a temporary setting and it seems like Chrome is starting to ignore what this is set to so you'll have to use one of the other options if you try and it doesn't work.
Access this page from your browser edge://flags/
Search for SameSite and disable it.
Access this page from your browser about:config
Search for SameSite and disable it.
Jackett and Tautulli seem to hardcode the SameSite cookie as Lax
Sonarr/Radarr/Lidarr are starting to hardcode the SameSite cookie as Strict
The only way to bypass that is to use Option #1 or Option #2
This page will go through how to create a Plugin for Organizr
This only pertains to Organizr instances on version 2.1.1140 or higher
Each plugin consists of the following files:
plugin.php
The file is the PHP Class file that will have all your plugins functions and everything
api.php
This file will contain all the API routes for your plugin
config.php
This file will contain all of your plugins default config values
page.php [OPTIONAL]
This file can hold some html that Organizr can display if you set a Tab in Organizr as Organizr type
main.js
This Javascript file will be included when Organizr loads if your plugin is enabled
settings.js [OPTIONAL]
This Javascript file will be included when Organizr loads the settings page if your plugin is enabled
logo.png
The logo file for your plugin
The first thing you will notice is that there is a Global variable set with a plugins
array. For this example, our Plugin name is Test
.
Also notice on the array we again specify the name of the plugin. Here is a breakdown of the rest of the array keys:
author
String
Your name or pseudonym
category
String
Overall type of Plugin
link
String
Link to additional info for plugin, can be blank
license
String
Can be either personal or business. Can also be both just use csv.
I.E. personal,business
idPrefix
String
This is used for HTML elements, please use all Uppercase and one word only
configPrefix
String
This is used for config items so they don't clash with other items. Please use all Uppercase and no spaces
version
String
SemVer of your plugin
image
String
Path to your logo
settings
Boolean
Does your plugin need a settings modal
bind
Boolean
Use the default bind to make settings modal
api
String
API Route to settings values
homepage
Boolean
NOT IN USE YET
Now that we have finished setting up your Plugin's Global variable array, we can now continue to creating your Plugin's PHP Class.
If you plan on using some of Organizr built in functions and User information, you will need to extend the Organizr Class. Otherwise, you can just create a new class and that is it.
If you want a settings modal, you will need to create a function to supply which config items you will want to set up for your settings modal. Let's start with creating a function to pass an array with our config items.
First, you need to name your function something, let's call this one _pluginGetSettings
, we can also set this function as public if you choose to share those variables with other classes etc...
Next, we will return an array with our Setting's groups. In this example our first Group is called Sample Settings
. Inside this Settings group, we will have 3 config items that we want to setup. Each item is setup via the settingsOption
function. This function takes 3 parameters.
public function OptionsFunction::settingsOption($type, $name = null, $extras = null) array|string[]
The first option is the type of config item that we are setting up. The second, is the name of the config item. Lastly, we can provide the sometimes-optional extra options needed to set the item up.
Let's take a look at each one.
TEST-pass-alt
password-alt
label
TEST-password
password
label
TEST-text
text
label
N/A
html
html
You can find out all the type of config item options under the options-functions.php
file located under Organizr Location/api/functions/
folder.
Migrating from certain versions requires changes on your part
Sometimes Organizr needs to be updated on the backend which causes user interaction that needs to be completed prior to the upgrade.
First of all, if you are using an Organizr docker container, please make sure you are using the new Organizr Image:
If you are using or you have now switched over to this container, you will not need to add the new api location block as that has been added for you in the container image. If you are using Nginx's Auth_Request module, you will need to update that address by following these instructions: HERE
Note: the branch variable will take short hand such as master
instead of v2-master
and dev
or develop
instead of v2-develop
as may be seen in the tag migration examples.
We will need to update your webserver to include the new API location block.
This is only needed on the actual webserver that is running Organizr - This also assumes Organizr is proxied to root directory - You will need to add directory to example if it is not running at root directory.
If you reverse proxy Organizr to another Webserver - do not add to that server. Only add to the webserver that hosts Organizr.
Please include this location block within the server block that houses Organizr.
If you are using Nginx's Auth_Request module, you will need to update that address by following these instructions:
Head to IIS webpage Settings
Import Rules
Paste code below and Apply
Also make sure you allow the following HTTP Methods:
Put
Delete
Options
You will need to update your url for the auth_request module.
Notice the position of the ? and & signs
The complete config block will look like this:
Do not just copy/paste this. This is just an example of how it should look. organizr-upstream
is probably not the same as your setup.
The complete config block will look like this:
We have separated Jellyfin from Emby. Please head to the homepage item section and fix accordingly. If you are using Jellyfin for authentication, please edit the Authentication settings and input your URL and Token respectively.
If your Organizr is totally blank or you see 404's in the Browser Console (F12) then more than likely you did not perform the API location block addition at all or correctly. Please refer to the changes above for the appropriate webserver.
If you cannot access the settings/homepage page in Organizr - more than likely the tab url updater didn't run successfully.
Head over to your browser and type in the following:
GET
http://organizr-location/api/v2/update/migrate/2.1.0
Migrates some settings from 2.0 to 2.1
Now you can go back to Organizr and reload if you haven't and check the settings/homepage page.
There was a type on the there config item keys. There are a total of 4 of them. Go to the file /api/config/config.php
and change these four keys from the left side of the image to the right side of the image. All that was missing was the letter e
Supported backends that work with Organizr
Organizr ships with a few options to use as the user management backend. Backends allow Organizr to authenticate user logins to gain access to Organizr.
The default backend is Organizr's built in user management. It allows all user functions such as:
Add Users
Delete Users
Edit Users
While using the default backend from Organizr, you may also add a secondary backend server to utilize as another option to authenticate. Using this option still allows you the same user functions from Organizr's backend listed above.
Settings / System Settings / Main
To get to the other backends head to the above path and change the Authentication Type
option to Organizr DB + Backend
and change the Authentication Backend
option.