95 Installation
Louis Laureys edited this page 2020-12-29 21:32:37 +01:00

Installation Instructions

Note: After installing the system, be sure to configure your own systems to handle the requests after approval.
Any requests made without an endpoint to receive it will not be able to be re-processed at this point.
Whatever combination of the supported systems you use is up to you - Sonarr, Radarr, Couchpotato, Lidarr... Whatever.

For a guide on updating, see Update Settings
For notes to consider when migrating an existing install rather than starting fresh, see Migrating Systems


Prerequisites

Default port is 5000

  1. Install Ombi for your preferred OS using the steps provided below.
    If you are migrating systems, rather than starting fresh, stop here and look at Migrating Systems.
  2. Configure your install-specific settings like the application url you'll be using externally.
  3. Configure external access to Ombi. We recommend using SSL and a reverse proxy.
  4. Configure notification methods and system connections (Sonarr, Radarr, etc).
    Ensure you have systems to handle approved requests before you give users access to the system.
  5. Import users and assign permissions.

Migrating Systems

If you're migrating Ombi from an existing install to a new install, the install process itself is exactly the same as below - with one exception, regardless of what you're migrating from or to.
From your original Ombi installation you will need:

  • Ombi.db
  • OmbiExternal.db
  • OmbiSettings.db

When it comes time to actually launch Ombi on your fresh installation, place the above files into the new Ombi directory (wherever you may have put it), and then launch Ombi. This way Ombi will load with all of your prior settings, customisations, users, and synced data (so it doesn't require a full re-sync with Plex).
If you are running docker, place these files into the folder you've passed into the container as "/config" for the installation to find them.


Windows

  1. Download the latest win10-xxx.zip (x64 or x86 depends on your system) from https://github.com/tidusjar/ombi.releases/releases
  2. Right click > Properties > Unblock
  3. Extract the zip to your preferred directory. DO NOT place in the "Program Files" or "ProgramData" folders as the Ombi database will be locked.
  4. Run Ombi.exe

Install as a Service with NSSM

(This is the preferred method on Windows)

  1. Download the latest win10-xxx.zip (x64 or x86 depends on your system) from https://github.com/tidusjar/ombi.releases/releases
  2. Right click > Properties > Unblock
  3. Extract the zip to your preferred directory. DO NOT place in the "Program Files" or "ProgramData" folders as the Ombi database will be locked.
  4. Use NSSM to manage Ombi. Extract either the 32-/64-bit version to C:\Windows\system32. Open command prompt as an Administrator and type nssm install Ombi. Use one of the following settings depending on whether you want to keep or change the default port.

Standard Setup

Be sure to adjust directories to your Ombi install location

Path: C:\Tools\Ombi\Ombi.exe
Start directory: C:\Tools\Ombi

Ombi NSSM with Port

Standard Setup with different port number

Be sure to adjust directories to your Ombi install location

Path: C:\Tools\Ombi\Ombi.exe
Start directory: C:\Tools\Ombi
Arguments: --host "http://*:PORTNUMBER"

Ombi NSSM with Port

Install as a Service with Windows Task Scheduler

Allows automatic updating on windows: updater currently broken.

As an alternative to NSSM, you can use Task Scheduler to run Ombi.exe as if you were double clicking it and running it like a regular executable, except it's hidden from the task bar and can only be closed by the Task Manager or the Task Scheduler.

  1. Open 'Task Scheduler' either search for it in start. Or simply Run... WIN+R %windir%\system32\taskschd.msc
  2. Click Create task... on the right hand side.
  3. Give the task a name. Example: Ombi And a description if you want. (Not necessary)
  4. Check Run with highest privileges
  5. Click Run whether user is logged on or not to ensure Ombi runs even when you are logged out!
  6. Check Hidden
  7. Configure for: Choose your Windows version.
  8. Click the Triggers Tab and click New...
  9. Begin the task: 'At system startup. Click OK`
  10. Click the Actions Tab and Click New...
  11. Click Browse... and navigate to your Ombi.exe Click Open
  12. Fill Start in (optional): with Ombi.exe's working directory. IE: C:\Ombi\ or C:\SERVERS\Ombi\ basically, wherever you extracted your 'Ombi' folder to and where it lives. Click OK
  13. Settings Tab Untick Stop the task if it runs longer than: Click OK
  14. You will be prompted for your windows user name and password. Please enter your credentials and click OK
  15. Click Task Scheduler Library right click on your new task and hit run. give it a good 20-30 seconds to start. Ombi should now be reachable at http://localhost:5000 !

Note: The next time you restart your PC, Task Scheduler will run ombi for you.

How to WITH PICTURES!

Windows Firewall

To add a port forward in Windows Firewall, you have a few options.
Note that this is not the preferred method of access, and a Reverse Proxy is recommended instead.
Replace the port in the below commands with your own port if you're running a different port than the default.

Command Prompt
netsh advfirewall firewall add rule name="Ombi" dir=in action=allow protocol=TCP localport=5000

Powershell
New-NetFirewallRule -DisplayName 'Ombi' -Direction Inbound -Action Allow -Protocol TCP -LocalPort @('5000')


Linux systems

APT repo (The easy way, only Debian-based distros)

  • This repo is maintained by @louis-lau. Go bug him on discord if you have problems specifically with the repo. Don't open an issue here.
  • Note that as of now only systemd is supported, not upstart. That means Debian jessie and up, and Ubuntu 15.04 and up.
  • Builds should be in the repo within 15 minutes after releasing on GitHub (stable) or AppVeyor (develop).
  • Yes, I used a funny domain.
  1. Add the apt repository to the apt sources list:

    • If you would like stable releases, execute:
    echo "deb [arch=amd64,armhf,arm64] http://repo.ombi.turd.me/stable/ jessie main" | sudo tee "/etc/apt/sources.list.d/ombi.list"
    
    • If you would like development releases, execute this instead:
    echo "deb [arch=amd64,armhf,arm64] http://repo.ombi.turd.me/develop/ jessie main" | sudo tee "/etc/apt/sources.list.d/ombi.list"
    
  2. This repo is signed. This means packages get validated before installation. So, to safely download and install Ombi packages, the Ombi key needs to be installed:

    wget -qO - https://repo.ombi.turd.me/pubkey.txt | sudo apt-key add -
    
  3. Update the package list and install Ombi:

    sudo apt update && sudo apt install ombi
    
  • If no errors are shown, Ombi has been installed successfully and will automatically start during boot.

    Ombi should now be reachable on http://your-ip-address:5000

  • Packages in this repo use systemd, you can use the systemctl or the service command to start, stop, or restart Ombi.

  • If an update is available for Ombi:

    • It will get installed along with all other updates if you:
    sudo apt update && sudo apt upgrade
    
    • Or if you only want to update Ombi:
    sudo apt update && sudo apt install ombi
    
  • If you want to switch branches, you can edit /etc/apt/sources.list.d/ombi.list. Replace stable with develop, or the other way around.

Fedora 29

Deps: compat-openssl10 libcurl-devel libunwind-devel openssl-devel

Ubuntu

  1. mkdir /opt/Ombi
  2. cd into that directory cd /opt/Ombi
  3. Download the latest linux.tar.gz @ https://github.com/tidusjar/Ombi/releases/latest for stable and use https://ci.appveyor.com/project/tidusjar/requestplex/branch/develop/artifacts for develop.
  4. With the newly downloaded linux.tar.gz file in /opt/Ombi run tar xzf linux.tar.gz
  5. In the /opt/Ombi directory make the Ombi file an executable: chmod +x Ombi
  6. Install libicu-dev if it isn't already installed: sudo apt install libicu-dev
  7. Install libunwind8 if it isn't already installed: sudo apt install libunwind8
  8. Install libcurl4-openssl-dev if it isn't already installed: sudo apt install libcurl4-openssl-dev
  9. In the /opt/Ombi directory run Ombi ./Ombi
  10. Verify correct Locale settings as this can prevent Ombi from talking to Plex in some LXC container installs: env | grep LANG should return LANG=en_US.UTF-8. env | grep LC_ALL should return LC_ALL=en_US.UTF-8.

You can also try the locale command. In some systems, setting LC_ALL is all that is necessary. If you need to update your locale, you can do so as follows:

$ sudo locale-gen "en_US.UTF-8"
Generating locales...
  en_US.UTF-8... done
Generation complete.

$ sudo dpkg-reconfigure locales
Generating locales...
  en_US.UTF-8... up-to-date
Generation complete.

If you decide to run Ombi as a different user, other than root, in accordance with the below warning; you need to chown the Ombi folder to the user you change the systemd service to. sudo chown -R ombi:nogroup /opt/Ombi

Run as systemd service (Ubuntu 15.04+)

Warning: you should create your own user to run Ombi. Using root is not ideal. Recommended settings are:

  • User: ombi
  • Group: nogroup (built-in non-privileged group)
  1. sudo nano /etc/systemd/system/ombi.service
  2. Paste the following:
    [Unit]
    Description=Ombi - PMS Requests System
    After=network-online.target
    
    [Service]
    User=root
    Group=root
    WorkingDirectory=/opt/Ombi/
    ExecStart=/opt/Ombi/Ombi
    Type=simple
    TimeoutStopSec=30
    Restart=on-failure
    RestartSec=5
    
    [Install]
    WantedBy=multi-user.target
    
  3. Press Ctrl+x then y to save (assuming you're using nano).
  4. sudo systemctl daemon-reload
  5. sudo systemctl start ombi
  6. To enable Ombi to run on startup: sudo systemctl enable ombi.service
  7. To ensure the service is running: systemctl status ombi

Run as upstart service (Ubuntu Pre-15.04)

Warning: you should create your own user to run Ombi. Using root is not ideal. Recommended settings are:

  • User: ombi
  1. sudo nano /etc/init.d/ombi
  2. Paste the following:
    #!/bin/sh
    ### BEGIN INIT INFO
    # Provides:          ombi
    # Required-Start:    $local_fs $remote_fs $network
    # Required-Stop:     $local_fs $remote_fs $network
    # Default-Start:     2 3 4 5
    # Default-Stop:      0 1 6
    # Short-Description: Ombi
    # Description:       A personal media assitant. A simple way for shared media users to request and download content
    ### END INIT INFO
    
    . /lib/lsb/init-functions
    ################################################################################
    # Update these variables to reflect your system
    ################################################################################
    DAEMON_PWD="/opt/Ombi"
    DAEMON_USER="root"
    DAEMON_NAME="ombi"
    DAEMON_LOG="/var/log/${DAEMON_NAME}.log"
    DAEMON_PATH="${DAEMON_PWD}/Ombi"
    DAEMON_OPTS="--host http://*:5000 --storage ${DAEMON_PWD}"
    DAEMON_DESC=$(get_lsb_header_val $0 "Short-Description")
    DAEMON_PID="/var/run/${DAEMON_NAME}.pid"
    DAEMON_NICE=0
    
    [ -r "/etc/default/${DAEMON_NAME}" ] && . "/etc/default/${DAEMON_NAME}"
    
    do_start() {
      local result
    
      pidofproc -p "${DAEMON_PID}" "${DAEMON_PATH}" > /dev/null
      if [ $? -eq 0 ]; then
        log_warning_msg "${DAEMON_NAME} is already started"
        result=0
      else
        log_daemon_msg "Starting ${DAEMON_NAME}"
        touch "${DAEMON_LOG}"
        chown $DAEMON_USER "${DAEMON_LOG}"
        chmod u+rw "${DAEMON_LOG}"
        if [ -z "${DAEMON_USER}" ]; then
          start-stop-daemon --start --quiet --oknodo --background \
            --nicelevel $DAEMON_NICE \
            --chdir "${DAEMON_PWD}" \
            --pidfile "${DAEMON_PID}" --make-pidfile \
            --startas /bin/bash -- -c "exec ${DAEMON_PATH} ${DAEMON_OPTS} >> ${DAEMON_LOG} 2>&1"
          result=$?
        else
          start-stop-daemon --start --quiet --oknodo --background \
            --nicelevel $DAEMON_NICE \
            --chdir "${DAEMON_PWD}" \
            --pidfile "${DAEMON_PID}" --make-pidfile \
            --chuid "${DAEMON_USER}" \
            --startas /bin/bash -- -c "exec ${DAEMON_PATH} ${DAEMON_OPTS} >> ${DAEMON_LOG} 2>&1"
          result=$?
        fi
        log_end_msg $result
      fi
      return $result
    }
    
    do_stop() {
      local result
    
      pidofproc -p "${DAEMON_PID}" "${DAEMON_PATH}" > /dev/null
      if [ $? -ne 0 ]; then
        log_warning_msg "${DAEMON_NAME} is not started"
        result=0
      else
        log_daemon_msg "Stopping ${DAEMON_NAME}"
        killproc -p "${DAEMON_PID}" "${DAEMON_PATH}"
        result=$?
        log_end_msg $result
        rm "${DAEMON_PID}"
      fi
      return $result
    }
    
    do_restart() {
      local result
      do_stop
      result=$?
      if [ $result = 0 ]; then
        do_start
        result=$?
      fi
      return $result
    }
    
    do_status() {
      local result
      status_of_proc -p "${DAEMON_PID}" "${DAEMON_PATH}" "${DAEMON_NAME}"
      result=$?
      return $result
    }
    
    do_usage() {
      echo $"Usage: $0 {start | stop | restart | status}"
      exit 1
    }
    
    case "$1" in
    start)   do_start;   exit $? ;;
    stop)    do_stop;    exit $? ;;
    restart) do_restart; exit $? ;;
    status)  do_status;  exit $? ;;
    *)       do_usage;   exit  1 ;;
    esac
    
  3. Press Ctrl+X then y to save (assuming you're using nano).
  4. sudo chmod +x /etc/init.d/ombi (this makes the above script executable)
  5. sudo update-rc.d ombi defaults (this tells the system when to start the service based on run-level)
  6. sudo service ombi start (this starts the service)
  7. to ensure service is running: sudo service ombi status

macOS

  1. Download the latest osx release osx-x64.tar.gz
  2. Extract the contents to the desired location (we suggest something like /opt/Ombi/)
  3. Launch Terminal
  4. cd to the path of the folder (e.g. cd /opt/Ombi)
  5. Execute ./Ombi. Process should load.
  6. Ombi should now be reachable at localhost:5000

Startup
To have Ombi run at startup, add RunAtLoad WorkingDirectory /opt/Ombi to the command.
i.e. /opt/Ombi/Ombi RunAtLoad WorkingDirectory /opt/Ombi

Note: macOS Catalina has strengthened Gatekeeper.
As a result, allowing apps from 'unverified' sources is now a hidden option.
It requires executing sudo spctl --master-disable in Terminal to allow apps from unverified sources before Ombi can be launched reliably.
Our preferred deployment method for macOS now, as a result, has to be as a Docker container (simply to avoid this as a problem until a more secure and stable solution is discovered).


Docker

The Ombi team do not currently maintain any Docker containers directly.

However, there are a number of them available, maintained by various members of the community.
linuxserver.io update their image the most up-to-date, and they have pretty comprehensive instructions for installation. See the page for their image here.
We currently recommended using the tag v4-preview until they shift v4 to the latest tag.

If you are considering running Ombi in a container, and are unfamiliar with how Docker works, please see Things to consider with Docker to (hopefully) help clear up some things with how networking and access works with a Docker system.


Helm

The Ombi team does not currently maintain a helm chart directly.

A popular helm chart is maintained by the guys over at k8s@home.
Installation, upgrade, and removal docs are all on the artifacthub.io page