Unofficial Application Installers

Contains guides for using scripts that install applications that are not yet supported officially.

Auto Remove Torrents

This unofficial app installation script is provided for your convenience. The script is provided as-is and may not be updated or maintained by Ultra.cc. Customers are welcome to use and customize unofficial app installers for their unique needs and requirements. Unofficial support may be offered via Discord only and at the sole discretion of Ultra.cc staff. Use at your own risk and only proceed if you are comfortable managing the application on your own.

Autoremove Torrents is an open-source Python project that allows the automatic removal of torrents from various torrent clients based on configurable criteria. It can help manage disk space by deleting torrents when they are finished seeding. Here's the GitHub page of the project.

Features

Supported Clients

Autoremove Torrents works with the following torrent clients:

Installation

From PyPI

This will install the latest stable release:

pip install autoremove-torrents

From Source

This allows installing the development version:

git clone https://github.com/jerrymakesjelly/autoremove-torrents.git
cd autoremove-torrents
python setup.py install --user

Configuration

Autoremove Torrents uses a YAML configuration file to define the torrent clients and removal rules. By default, Autoremove Torrents will look for a configuration file in the shell's current working directory. But, you can store the configuration file somewhere else and point to it while using Autoremove Torrents. See the below usage instructions for more information.

Client Configuration

First, you need to specify connection details for each torrent client:

qbittorrent:
  client: qbittorrent
  host: https://username.hostname.usbx.me/qbittorrent
  username: <your-username>
  password: <your-password>

deluge:
  client: deluge
  host: IP:Daemon port
  username: <your-username>
  password: <your-password>

Removal Strategies

Next, define removal strategies under each client. For example:

strategies:

  delete_seeds:
    remove: ratio > 2

  clear_space:
    free_space:  
      min: 10
      path: /downloads
      action: remove-big-seeds

Usage

autoremove-torrents --conf=/path/to/config.yml
autoremove-torrents --conf=/path/to/config.yml --task transmission
autoremove-torrents --view --conf=/path/to/config.yml --task transmission

Dry run allows you to see what would be deleted without actually removing anything.

Automation

# Run at 2AM every day
0 2 * * * /path/to/autoremove-torrents --conf=/path/to/config.yml

Uninstallation

pip uninstall autoremove-torrents
rm -rf ~/.config/autoremove-torrents && rm -rf ~/.apps/autoremove-torrents

Autoscan

This unofficial app installation script is provided for your convenience. The script is provided as-is and may not be updated or maintained by Ultra.cc. Customers are welcome to use and customize unofficial app installers for their unique needs and requirements. Unofficial support may be offered via Discord only and at the sole discretion of Ultra.cc staff. Use at your own risk and only proceed if you are comfortable managing the application on your own.

Autoscan replaces the default method of updating your Plex, Jellyfin, or Emby libraries by the use of webhooks sent from the Connect feature within Sonarr and Radarr. More information can be found here: github.com/Cloudbox/autoscan

Notable benefits of Autoscan over Radarr/Sonarr Connect:

This installer, and guide, assumes that your Radarr/Sonarr and media server applications such as Plex, Jellyfin, or Emby, are all on the same service

Prerequisites

Autoscan will use a token to gain access to your media server application to perform its update functions.

Plex Token

Jellyfin API Token

jellyfin-menu.png

jellyfin-dashboard.png

jellyfin-api-keys.png

jellyfin-api-keys-add.png

jellyfin-api-key-name-save.png

jellyfin-api-keys-copy.png

Emby API Token

emby-admin-menu.png

emby-api-keys.png

emby-new-api-key.png

emby-new-api-key-name-save.png

emby-new-api-key-copy.png

Disable Media Server's Internal Scans

Autoscan is meant to handle your media center's scanning entirely, so it is recommended to disable your Plex, Jellyfin, or Emby's internal scanning settings to avoid any conflicts.

Disable Plex's Internal Scanning

Scan my library automatically: DISABLED
Run a partial scan when changes are detected: DISABLED
Scan my library periodically: DISABLED

Disable Jellyfin's Internal Scanning

Jellyfin Scan Schedule

jellyfin-library-scan-schedule.png

jellyfin-library-scan-schedule-delete.png

Jellyfin Individual Library Settings

Disable Emby's Internal Scanning

Emby Scan Schedule

emby-library-scan-schedule.png

emby-library-scan-schedule-delete.png

Emby Individual Library Settings

Installation

bash <(wget -qO- https://scripts.usbx.me/main/autoscan/autoscan-install.sh)

Adding Webhooks to Sonarr and Radarr

After successfully installing autoscan via the script you will see the two Webhook URLs shown that are needed to add to your Sonarr and Radarr instances

Sonarr Webhook

Radarr Webhook

Optional Setup Settings

Anchors for Mounts

Autoscan has the ability check first for anchor files to prevent library updates in the case of a mount being offline. This can allow the use of the Plex library setting Empty trash automatically after every scan safely to avoid the loss of library metadata in the case of a mount going offline. Use at your own risk

The following assumes you've used our rclone mount guides for your mount locations. If you have custom mount paths and/or multiple mounts, then you will need to modify your anchor file locations accordingly

touch ~/Stuff/Mount/.anchor
anchors:
  - /home/{USERNAME}/MergerFS/.anchor

In .yml and .yaml configurations files, improper use of indentation will prevent the configuration file from working correctly. Its important that no blank space be in front of the anchors: line and 2 blank spaces be in front of the - /home/{USERNAME}/MergerFS/.anchor line.

systemctl --user restart autoscan

Use With Multiple Media Servers

The unofficial autoscan installer is only written for installation with a single media server in mind, however autoscan supports all three Plex, Jellyfin, and Emby media servers.

systemctl --user restart autoscan

FileBot

This unofficial app installation script is provided for your convenience. The script is provided as-is and may not be updated or maintained by Ultra.cc. Customers are welcome to use and customize unofficial app installers for their unique needs and requirements. Unofficial support may be offered via Discord only and at the sole discretion of Ultra.cc staff. Use at your own risk and only proceed if you are comfortable managing the application on your own.

To use FileBot you will be required to purchase a FileBot license.
FileBot is a custom application with only a basic custom AMC provided. We can not provide support for FileBot beyond installation.

FileBot has a tendency to try and use resources outside of process limits which can cause problems. We would highly recommend an Indexer such as Sonarr/Radarr to organize your media.

Prerequisites

For the FileBot installation script to work, you may have to do the following:

Installation

bash <(wget -qO- https://scripts.usbx.me/util/FileBot/installer.sh)

Importing Your License

In order for your FileBot to work correctly now, it is now required you acquire a license. This license file can be uploaded via FTP or you can create a new file with nano and paste the license key.

bash <(wget -qO- https://scripts.usbx.me/util/FileBot/installer.sh)

Activating your license can also be done manually by running the command below.

Installation of AMC script

Installation of AMC script for Rtorrent, Deluge or Transmission.

bash <(wget -qO- https://scripts.usbx.me/util/FileBot/installer.sh)

AMC scripts automatically organizes your latest media to your library. Once new media is detected, by default, the scripts do the following:

You can also edit the scripts to your liking to automate more of your setup. For more information on AMC options, you can visit this link.

Uninstallation

bash <(wget -qO- https://scripts.usbx.me/util/FileBot/installer.sh)

Issues/Bugs

For any issues/bugs pertaining to FileBot, you may do so to the following channels:

Troubleshooting FAQ for FileBot

Why doesn’t FileBot work? It used to!

Unfortunately, this is because of the TVDB API update around six months ago. The endpoints were updated in the latest versions of FileBot. We provide the last FOSS version. To keep using FileBot, you will need to purchase your license, import and update your FileBot on your slot. You may also find other alternatives.

Why does FileBot keep crashing?

Filebot is designed to compliment torrent clients on our infrastructure. Java, which is one of the dependencies of filebot, has a 1GB proclimit and is not recommended for running filebot in a cron or manage a whole folder at once. This type of action could quickly saturate an entire server’s cores.

Generic Software Installation

This guide is provided for your convenience. The guide is provided as-is and may not be updated or maintained by Ultra.cc. Unofficial support may be offered via Discord only and at the sole discretion of Ultra.cc staff. Use at your own risk and only proceed if you are comfortable troubleshooting.

This guide covers some generic ways to install custom third-party applications on your Ultra.cc service. It is important to remember that these installation procedures are generic and additional steps may be needed for a successful installation. As these procedures are made for custom applications not supported by Ultra.cc, we cannot provide any assistance regarding the installation or issues that may arise once an application has been installed.

If you want us to add an application to the User Control Panel and officially support it, you can submit a request on our Feedback site, and we will consider it. Please ensure that you do not add duplicate requests and instead add your vote if the application has already been requested.

Installation

Many applications can be installed with a click of a button on the UCP. However, if you want to install an application not included on the UCP, you can do so. As long as you adhere to the Terms of Service and do not break the Fair Usage Policy, you are free to install pretty much any software on your Ultra.cc service.

While selecting a port for your custom application, select one within the port range assigned to your service; do NOT use the default port the application suggests. It is strictly prohibited to use ports outside of your range. More info can be found here.

Important information regarding the installation of custom third-party applications:

Before proceeding with any of the below installation procedures, you need to connect to your Ultra.cc service via SSH.

Compile from Source

Below you will find generic instructions for how to compile from source. Some applications have specific instructions or required dependencies, so always check the documentation or website of the application you are installing.

wget https://example-url.com/appname-1.23.tar.gz
tar xvzf appname-1.23.tar.gz
cd appname-1.23
./configure --prefix="$HOME/bin && make"
make install
echo "PATH=$HOME/.local/bin:$HOME/bin:$PATH" >> ~/.profile && source ~/.profile

Pre-built Binaries

Some software is available as pre-compiled binaries and do not have to be built within your Ultra.cc service.

wget https://example-url.com/appname-1.23.tar.gz
tar xvzf appname-1.23.tar.gz
mv appname ~/bin/

Once the binary has been moved to a directory within your shell environment PATH, you can run the application by executing the filename of the binary. With the name example we are using in this guide, it would look like this: appname

Cloning a Repo

Application software can also be installed by cloning a repository. The most popular repository library is GitHub, but there are also others like GitLab for example.

cd 
git clone https://github.com/AUTHOR/EXAMPLE-REPO
cd EXAMPLE-REPO

Inside the cloned repo directory, you will find all the files of the repository, and you are free to execute any scripts or binaries that are included (subject to our Terms of Service).

Python Applications

In this section, we will show you how to install Python and how to install Python packages with pip. This is useful as cloned repos occasionally require you to install a Python package. However, before taking further action, ensure you have Python installed on your Ultra.cc service.

Install Python Package

Once you have followed the above guide and successfully installed Python on your Ultra.cc service, you are ready to install Python packages. A complete list of all available Python packages can be found on the Python Package Index (PyPI).

pip install <package-name>
pip install -r requirements.txt

Systemd Service

While binaries and scripts can be manually executed or setup as a cron job, you can also set up a systemd service and run your application as a background process. This allows you to have more control and easier management of your custom applications.

touch ~/.config/systemd/user/SERVICE-NAME.service
nano ~/.config/systemd/user/SERVICE-NAME.service
[Unit]
Description=A description of my custom application
After=network-online.target

[Service]
Type=exec
Restart=on-failure
ExecStart=%h/bin/MY-CUSTOM-APPLICATION
ExecStop=/bin/kill -s QUIT $MAINPID
StandardOutput=file:%h/path/to/logs/my-custom-application.log

[Install]
WantedBy=default.target

Notice the --user option. It is always required when interacting with systemctl on an Ultra.cc service, as leaving it out requires sudo/root privileges.

systemctl --user daemon-reload
systemctl --user enable --now SERVICE-NAME.service
systemctl --user is-enabled SERVICE-NAME.service
systemctl --user status SERVICE-NAME.service
ultradocs@spica:~$ systemctl --user status service-name.service
● service-name.service - A description of my custom application
   Loaded: loaded (/home/ultradocs/.config/systemd/user/service-name.service; enabled; vendor preset: enabled)
   Active: active (running) since Sun 2024-01-08 10:07:17 CEST; 2 days ago
 Main PID: 71643 (service)
   CGroup: /user.slice/user-1104.slice/user@1104.service/service-name.service
           ├─71643 service: master process /home/ultradocs/bin/service -c
           └─71647 service: worker process

Enabling HTTPS Encryption

If you have installed a custom application on your Ultra.cc service, and assigned one of your unused ports (see this guide), your application will be accessible via the HTTP protocol. This means that all traffic will be unencrypted. To secure the traffic of your application, you can enable HTTPS encryption via Nginx.

touch ~/.apps/nginx/proxy.d/APP-NAME.conf
nano ~/.apps/nginx/proxy.d/APP-NAME.conf
location /baseurl/ {
    proxy_pass              http://127.0.0.1:PORT;
    proxy_http_version      1.1;
    proxy_set_header        X-Forwarded-Host        $http_host;
}

Notifiarr

This unofficial app installation script is provided for your convenience. The script is provided as-is and may not be updated or maintained by Ultra.cc. Customers are welcome to use and customize unofficial app installers for their unique needs and requirements. Unofficial support may be offered via Discord only and at the sole discretion of Ultra.cc staff. Use at your own risk and only proceed if you are comfortable managing the application on your own.

Notifiarr is a notification handler for Discord. It can manage media requests and allows for custom integrations with a wide variety of applications.

Prerequisites

Installation

bash <(wget -qO- https://scripts.usbx.me/util/Notifiarr/main.sh)

Uninstallation

bash <(wget -qO- https://scripts.usbx.me/util/Notifiarr/main.sh)

Organizr

This unofficial app installation script is provided for your convenience. The script is provided as-is and may not be updated or maintained by Ultra.cc. Customers are welcome to use and customize unofficial app installers for their unique needs and requirements. Unofficial support may be offered via Discord only and at the sole discretion of Ultra.cc staff. Use at your own risk and only proceed if you are comfortable managing the application on your own.

Installation

Before proceeding with the installation, make sure to set an HTTP password under the Connect tab on the UCP.

bash <(wget -qO- https://scripts.usbx.me/util/Organizr/main.sh)

Uninstallation

bash <(wget -qO- https://scripts.usbx.me/util/Organizr/main.sh)

Plex Auto Languages

This unofficial app installation script is provided for your convenience. The script is provided as-is and may not be updated or maintained by Ultra.cc. Customers are welcome to use and customize unofficial app installers for their unique needs and requirements. Unofficial support may be offered via Discord only and at the sole discretion of Ultra.cc staff. Use at your own risk and only proceed if you are comfortable managing the application on your own.

Plex Auto Languages will automatically update the language of your Plex TV Show episodes based on the current language you are using without messing with your existing language preferences. Make sure to configure it properly to avoid breaking our Fair Usage Policy. For detailed instructions on how to configure the application, follow this link.

Prerequisites

Installation

bash <(wget -qO- https://scripts.usbx.me/util/Plex-Auto-Language/main.sh)

Uninstallation

bash <(wget -qO- https://scripts.usbx.me/util/Plex-Auto-Language/main.sh)

Stopping and Starting The Service

systemctl --user stop  plexautolanguage.service
systemctl --user restart  plexautolanguage.service

Kometa

This unofficial app installation script is provided for your convenience. The script is provided as-is and may not be updated or maintained by Ultra.cc. Customers are welcome to use and customize unofficial app installers for their unique needs and requirements. Unofficial support may be offered via Discord only and at the sole discretion of Ultra.cc staff. Use at your own risk and only proceed if you are comfortable managing the application on your own.

Kometa (previously known as Plex Meta Manager) is an open source Python 3 project that has been designed to ease the creation and maintenance of metadata, collections, and playlists within a Plex Media Server. The script is able to update information based on sources outside your Plex environment.

Make sure to configure the application properly to avoid breaking our Fair Usage Policy. For detailed instructions on how to configure the application, follow this link.

Prerequisites

Installation

bash <(wget -qO- https://scripts.usbx.me/util/Kometa/main.sh)

Usage

Configuration

As Kometa is not a GUI application, all configuration must be done by editing the config file. Luckily, Kometa offers great documentation on their wiki. By default, the unofficial installer script will configure the config file with the bare necessities needed for Kometa to work. This includes your Plex server URL, token and TMDb API key. The latter is manually entered by the user during installation.

Log file

Stopping and Starting The Service

systemctl --user stop kometa.service
systemctl --user restart kometa.service

Uninstallation

bash <(wget -qO- https://scripts.usbx.me/util/Kometa/main.sh)

qBit Manage

This unofficial app installation guide is provided for your convenience. The guide is provided as-is and may not be updated or maintained by Ultra.cc. Unofficial support may be offered via Discord only and at the sole discretion of Ultra.cc staff. Use at your own risk and only proceed if you are comfortable managing the application on your own.

qBit Manage is a tool to manage your qBittorrent instance from the CLI. Included features are change tag, categories, remove unregistered torrents, and a lot more.

Prerequisites

Installation

Do note, qBit Manage is only compatible with qBittorrent versions up to 4.6.2. It is currently not working with the latest qBittorrent version 4.6.3

git clone https://github.com/StuffAnThings/qbit_manage ~/.apps/qbit_manage
cd ~/.apps/qbit_manage
pip install -r requirements.txt
cp ~/.apps/qbit_manage/config/config.yml.sample ~/.apps/qbit_manage/config/config.yml
nano ~/.apps/qbit_manage/config/config.yml
python ~/.apps/qbit_manage/qbit_manage.py -h

Uninstallation

rm -rf ~/.apps/qbit_manage

qbittools

This unofficial app installation guide is provided for your convenience. The guide is provided as-is and may not be updated or maintained by Ultra.cc. Unofficial support may be offered via Discord only and at the sole discretion of Ultra.cc staff. Use at your own risk and only proceed if you are comfortable managing the application on your own.

qbittools is a feature rich CLI for the management of torrents in qBittorrent. It provides features such as; Add torrents, export, reannounce and more.

Installation

curl -Ls https://gitlab.com/AlexKM/qbittools/-/raw/master/install.sh | bash -s -- -o ~/bin/qbittools
qbittools

Usage

qbittools is great for automating certain tasks. For example, you can tag all torrents and group them by tracker domains, not working trackers, unregistered torrents and duplicates. See the below command:

qbittools tagging -P <your-qbittorrent-password> --duplicates --unregistered --not-working --added-on --trackers

Uninstallation

rm -v ~/bin/qbittools

qbittorrent-cli

This unofficial app installation guide is provided for your convenience. The guide is provided as-is and may not be updated or maintained by Ultra.cc. Unofficial support may be offered via Discord only and at the sole discretion of Ultra.cc staff. Use at your own risk and only proceed if you are comfortable managing the application on your own.

qbittorrent-cli is a feature rich CLI to manage qBittorrent. It provides features such as; Add torrents, categories, tags, reannounce and import torrent sessions from other clients.

Installation

curl -LO https://github.com/ludviglundgren/qbittorrent-cli/releases/download/v2.0.0/qbittorrent-cli_2.0.0_linux_amd64.tar.gz
tar -xzvf qbittorrent-cli_2.0.0_linux_amd64.tar.gz
mv qbt ~/bin/ && rm -v qbittorrent-cli_2.0.0_linux_amd64.tar.gz LICENSE README.md
qbt
mkdir -p ~/.config/qbt && touch ~/.config/qbt/.qbt.toml
nano ~/.config/qbt/.qbt.toml
[qbittorrent]
addr       = "http://127.0.0.1:<WEBUI-PORT>" # qbittorrent webui-api hostname/ip
login      = "username"                      # qbittorrent webui-api user
password   = "XXXXXXXXXXXXXXX"               # qbittorrent webui-api password

[rules]
enabled              = true   # enable or disable rules
max_active_downloads = 2      # set max active downloads

Usage

qbittorrent-cli can do a lot of things. For example, to import your Deluge torrent session into qBittorrent, see the below command. You can do a test run of the command by appending --dry-run to the command.

Before you start migrating your torrent session. Make sure you have set the same default save path for your destination torrent client, as you have set for your source torrent client. Failing to do so would result in your new torrent client re-downloading all of your torrents again.

qbt torrent import deluge --source-dir ~/.config/deluge/state/ --qbit-dir ~/.local/share/qBittorrent/BT_backup/
qbt torrent export --source ~/.local/share/qBittorrent/BT_backup/ --export-dir ~/watch/deluge

For more information about torrent session migration, see this guide.

Uninstallation

rm -v ~/bin/qbt

Recyclarr

This unofficial app installation script is provided for your convenience. The script is provided as-is and may not be updated or maintained by Ultra.cc. Customers are welcome to use and customize unofficial app installers for their unique needs and requirements. Unofficial support may be offered via Discord only and at the sole discretion of Ultra.cc staff. Use at your own risk and only proceed if you are comfortable managing the application on your own.

Recyclarr is a command-line application that will automatically synchronize recommended settings from TRaSH guides to your Sonarr/Radarr instances.

Installation

bash <(wget -qO-  https://scripts.usbx.me/util/Recyclarr/main.sh)

Configuration

Before you can start using Recyclarr, you need to create at least one YAML configuration file. By following the below instructions, a minimal configuration file will be created at ~/.apps/recyclarr/recyclarr.yml. In this guide, we will only show the bare minimum needed to set up Recyclarr. For more information regarding configuration, see the wiki.

recyclarr config create
nano ~/.apps/recyclarr/recyclarr.yml
    base_url: https://username.hostname.usbx.me/radarr
    api_key: <YOUR_API_KEY_HERE>

At this point, the bare minimum needed for Recyclarr to work has been done, but before you run recyclarr sync we recommend that you do your own research and thouroghly read the Recyclarr wiki.

Uninstallation

bash <(wget -qO-  https://scripts.usbx.me/util/Recyclarr/main.sh)

Second instance of Mediarr

This unofficial app installation script is provided for your convenience. The script is provided as-is and may not be updated or maintained by Ultra.cc. Customers are welcome to use and customize unofficial app installers for their unique needs and requirements. Unofficial support may be offered via Discord only and at the sole discretion of Ultra.cc staff. Use at your own risk and only proceed if you are comfortable managing the application on your own.

.NET Mediarr

Installation

bash <(wget -qO- https://scripts.usbx.me/main/dotNetArrs/dotNetArrs-install.sh)

Update & Repair

The script only repairs incorrect port, host, etc. settings. It will not repair corrupted databases or any other factor which breaks your install.

If you have changed the branch of the *arr application and used it's in-built updater to update to a later development/nightly version, there is a chance that your installation will be broken after an update.
We recommend not changing it.

Lidarr: master
Prowlarr: develop
Radarr: master
Readarr: develop
bash <(wget -qO- https://scripts.usbx.me/main/dotNetArrs/dotNetArrs-install.sh)

Change Password

bash <(wget -qO- https://scripts.usbx.me/main/dotNetArrs/dotNetArrs-install.sh)

Uninstallation

bash <(wget -qO- https://scripts.usbx.me/main/dotNetArrs/dotNetArrs-install.sh)

Sonarr

Installation

bash <(wget -qO- https://scripts.usbx.me/main/Sonarr/sonarrv3-install.sh)

Update & Repair

The script only repairs incorrect port, host, etc. settings. It will not repair corrupted databases or any other factor which breaks your install.

If you have changed the branch of Sonarr to develop and used it's in-built updater to update to a later development version, there is a chance that your installation will be broken after an update.
The Update & Repair action will always download the latest version from the master branch.

bash <(wget -qO- https://scripts.usbx.me/main/Sonarr/sonarrv3-install.sh)

Change Password

bash <(wget -qO- https://scripts.usbx.me/main/Sonarr/sonarrv3-install.sh)

Uninstallation

bash <(wget -qO- https://scripts.usbx.me/main/Sonarr/sonarrv3-install.sh)

Bazarr

Installation

bash <(wget -qO- https://scripts.usbx.me/main/Bazarr/bazarr-install.sh)

Update & Repair

The script only repairs incorrect port, host, etc. settings. It will not repair corrupted databases or any other factor which breaks your install.

If you have changed the branch of Bazarr and used it's in-built updater to update to a later development / pre-release version, there is a chance that your installation will be broken after an update.
An update downloads Bazarr's latest version from it's GitHub repository's latest release tag.

bash <(wget -qO- https://scripts.usbx.me/main/Bazarr/bazarr-install.sh)

Change Password

bash <(wget -qO- https://scripts.usbx.me/main/Bazarr/bazarr-install.sh)

Uninstallation

bash <(wget -qO- https://scripts.usbx.me/main/Bazarr/bazarr-install.sh)