[WIP] Allow multiple installations of same blueprint (#88)
* Multi-install support, Blueprints and config changes. Initial commit * Migrating jails to blueprints, first steps. Tested Working: - Transmission - Lidarr - Sonarr - Radarr fix lidarr config (+10 squashed commit) Squashed commit: [5f14653] always link ports folders [f18f2f0] Optional (blueprint) ports mount Fixes #89 [96ef7e7] chmod all the things [129e707] same mistake... again... [e1596dc] missing reference [6da3567] Forgot one reference [d78b5b6] Update wiki.yml [cecc53a] Update filecheck.yml [5244abd] basic settings changed. More involved blueprints still need changes, such as: Bitwarden, nextcloud, Mariadb [6568e92] jails -> blueprints * Added Tested Working: - KMS - Plex - Tautulli - Organizr - InfluxDB - MariaDB Many squashed small fixes included: Make *.rc executable (+13 squashed commit) Squashed commit: [b28aa83] use .rc for rc.d config files [e940a48] some mariadb cleanup [dc27aff] testing another way [83bd91b] Mariadb root password alter instead of update, initial config for unifi [0ca3074] some light config cleanup [a0d4352] also remove database from influxdb example config (db should be created when required) [2c218cc] Prepare influxdb and remove unneeded content [1b34109] more shellcheck fixups [c96566c] Some shellcheck cleanup [8969ca7] bitwarden mostly done, some work on nextcloud and unifi [7f89bfa] initial mariadb patch [dd7e85f] missed one problem [f814cb7] Initial pseudo-compatibility patch for unifi * Enable Bitwarden support and some small fixes/tweaks Fixes #95 more bugs and typo's (+3 squashed commit) Squashed commit: [3b5213e] Bitwarden not correctly installing db [b7438a5] yeah thats not gonna cut it... >.< [e7987c2] some slight bitwarden tweaks * Enable Unifi support and some small fixes/tweaks small unifi cleanup. Unifi is working (+3 squashed commit) Squashed commit: [d906d2d] chmod unifi [545e999] Add extra sanity, remove unneeded variables from example [b8c0b24] Some small Unifi Tweaks * Nextcloud Cleanup, Some fixes, Initial support for blueprintsystem Fixes #96 Fixes #97 Fixes #98 some bloat and syntax fixes (+5 squashed commit) Squashed commit: [78f6428] Some more nextcloud cleanup and tweaks - combines multiple variables for cert system selection (Fixes #98 ) - Default to self signed cert - Force manual admin password [7cacae4] slight fixes [3d81cda] More cleanup [50496cc] small mariadb fix and more nextcloud cleanup [c1b2c20] Cleaning nextcloud - Remove external DB (Fixes #97 ) - Remove Postgresql (Fixes #96 ) - Some preparation for blueprint * Nextcloud done and.. another... (+5 squashed commit) Squashed commit: [c65751b] caddy not installed right. [e5da66b] more fixes [a33300e] Damnit, two typo's same scentence [4292a7a] another typo [1b820cf] typo and example hotfix * Introduce version checking for config file
This commit is contained in:
committed by
GitHub
parent
66e997069a
commit
dbfbd489fa
3
blueprints/sonarr/config.yml
Normal file
3
blueprints/sonarr/config.yml
Normal file
@ -0,0 +1,3 @@
|
||||
blueprint:
|
||||
sonarr:
|
||||
pkgs: mono mediainfo sqlite3
|
50
blueprints/sonarr/includes/sonarr.rc
Executable file
50
blueprints/sonarr/includes/sonarr.rc
Executable file
@ -0,0 +1,50 @@
|
||||
#!/bin/sh
|
||||
|
||||
# $FreeBSD$
|
||||
#
|
||||
# PROVIDE: sonarr
|
||||
# REQUIRE: LOGIN
|
||||
# KEYWORD: shutdown
|
||||
#
|
||||
# Add the following lines to /etc/rc.conf.local or /etc/rc.conf
|
||||
# to enable this service:
|
||||
#
|
||||
# sonarr_enable: Set to YES to enable sonarr
|
||||
# Default: NO
|
||||
# sonarr_user: The user account used to run the sonarr daemon.
|
||||
# This is optional, however do not specifically set this to an
|
||||
# empty string as this will cause the daemon to run as root.
|
||||
# Default: media
|
||||
# sonarr_group: The group account used to run the sonarr daemon.
|
||||
# This is optional, however do not specifically set this to an
|
||||
# empty string as this will cause the daemon to run with group wheel.
|
||||
# Default: media
|
||||
# sonarr_data_dir: Directory where sonarr configuration
|
||||
# data is stored.
|
||||
# Default: /var/db/sonarr
|
||||
|
||||
. /etc/rc.subr
|
||||
name=sonarr
|
||||
rcvar=${name}_enable
|
||||
load_rc_config $name
|
||||
|
||||
: ${sonarr_enable:="NO"}
|
||||
: ${sonarr_user:="sonarr"}
|
||||
: ${sonarr_group:="sonarr"}
|
||||
: ${sonarr_data_dir:="/config"}
|
||||
|
||||
pidfile="${sonarr_data_dir}/nzbdrone.pid"
|
||||
command="/usr/sbin/daemon"
|
||||
procname="/usr/local/bin/mono"
|
||||
command_args="-f ${procname} /usr/local/share/NzbDrone/NzbDrone.exe --data=${sonarr_data_dir} --nobrowser"
|
||||
|
||||
start_precmd=sonarr_precmd
|
||||
sonarr_precmd() {
|
||||
if [ ! -d ${sonarr_data_dir} ]; then
|
||||
install -d -o ${sonarr_user} -g ${sonarr_group} ${sonarr_data_dir}
|
||||
fi
|
||||
|
||||
export XDG_CONFIG_HOME=${sonarr_data_dir}
|
||||
}
|
||||
|
||||
run_rc_command "$1"
|
24
blueprints/sonarr/install.sh
Executable file
24
blueprints/sonarr/install.sh
Executable file
@ -0,0 +1,24 @@
|
||||
#!/usr/local/bin/bash
|
||||
# This file contains the install script for sonarr
|
||||
|
||||
# Check if dataset for completed download and it parent dataset exist, create if they do not.
|
||||
# shellcheck disable=SC2154
|
||||
createmount "$1" "${global_dataset_downloads}"
|
||||
createmount "$1" "${global_dataset_downloads}"/complete /mnt/fetched
|
||||
|
||||
# Check if dataset for media library and the dataset for tv shows exist, create if they do not.
|
||||
# shellcheck disable=SC2154
|
||||
createmount "$1" "${global_dataset_media}"
|
||||
createmount "$1" "${global_dataset_media}"/shows /mnt/shows
|
||||
|
||||
iocage exec "$1" "fetch http://download.sonarr.tv/v2/master/mono/NzbDrone.master.tar.gz -o /usr/local/share"
|
||||
iocage exec "$1" "tar -xzvf /usr/local/share/NzbDrone.master.tar.gz -C /usr/local/share"
|
||||
iocage exec "$1" rm /usr/local/share/NzbDrone.master.tar.gz
|
||||
iocage exec "$1" "pw user add sonarr -c sonarr -u 351 -d /nonexistent -s /usr/bin/nologin"
|
||||
iocage exec "$1" chown -R sonarr:sonarr /usr/local/share/NzbDrone /config
|
||||
iocage exec "$1" mkdir /usr/local/etc/rc.d
|
||||
# shellcheck disable=SC2154
|
||||
cp "${SCRIPT_DIR}"/blueprints/sonarr/includes/sonarr.rc /mnt/"${global_dataset_iocage}"/jails/"$1"/root/usr/local/etc/rc.d/sonarr
|
||||
iocage exec "$1" chmod u+x /usr/local/etc/rc.d/sonarr
|
||||
iocage exec "$1" sysrc "sonarr_enable=YES"
|
||||
iocage exec "$1" service sonarr restart
|
65
blueprints/sonarr/readme.md
Normal file
65
blueprints/sonarr/readme.md
Normal file
@ -0,0 +1,65 @@
|
||||
# Sonarr
|
||||
|
||||
## Original README from the sonarr github:
|
||||
|
||||
https://github.com/Sonarr/Sonarr
|
||||
|
||||
# Sonarr
|
||||
|
||||
|
||||
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.
|
||||
|
||||
## Major Features Include:
|
||||
|
||||
* Support for major platforms: Windows, Linux, macOS, Raspberry Pi, etc.
|
||||
* Automatically detects new episodes
|
||||
* Can scan your existing library and download any missing episodes
|
||||
* Can watch for better quality of the episodes you already have and do an automatic upgrade. *eg. from DVD to Blu-Ray*
|
||||
* Automatic failed download handling will try another release if one fails
|
||||
* Manual search so you can pick any release or to see why a release was not downloaded automatically
|
||||
* Fully configurable episode renaming
|
||||
* Full integration with SABnzbd and NZBGet
|
||||
* Full integration with Kodi, Plex (notification, library update, metadata)
|
||||
* Full support for specials and multi-episode releases
|
||||
* And a beautiful UI
|
||||
|
||||
## Configuring Development Environment:
|
||||
|
||||
### Requirements
|
||||
|
||||
* [Visual Studio 2017](https://www.visualstudio.com/vs/)
|
||||
* [Git](https://git-scm.com/downloads)
|
||||
* [NodeJS](https://nodejs.org/en/download/)
|
||||
* [Yarn](https://yarnpkg.com/)
|
||||
|
||||
### Setup
|
||||
|
||||
* Make sure all the required software mentioned above are installed
|
||||
* Clone the repository into your development machine. [*info*](https://help.github.com/en/articles/working-with-forks)
|
||||
* Grab the submodules `git submodule init && git submodule update`
|
||||
* Install the required Node Packages `yarn`
|
||||
|
||||
### Backend Development
|
||||
|
||||
* Run `yarn build` to build the UI
|
||||
* Open `Sonarr.sln` in Visual Studio
|
||||
* Make sure `NzbDrone.Console` is set as the startup project
|
||||
* Build `NzbDrone.Windows` and `NzbDrone.Mono` projects
|
||||
* Build Solution
|
||||
|
||||
### UI Development
|
||||
|
||||
* Run `yarn watch` to build UI and rebuild automatically when changes are detected
|
||||
* Run Sonarr.Console.exe (or debug in Visual Studio)
|
||||
|
||||
### License
|
||||
|
||||
|
||||
* [GNU GPL v3](http://www.gnu.org/licenses/gpl.html)
|
||||
* Copyright 2010-2019
|
||||
|
||||
### Sponsors
|
||||
|
||||
* [JetBrains](http://www.jetbrains.com/) for providing us with free licenses to their great tools
|
||||
* [ReSharper](http://www.jetbrains.com/resharper/)
|
||||
* [TeamCity](http://www.jetbrains.com/teamcity/)
|
10
blueprints/sonarr/update.sh
Executable file
10
blueprints/sonarr/update.sh
Executable file
@ -0,0 +1,10 @@
|
||||
#!/usr/local/bin/bash
|
||||
# This file contains the update script for sonarr
|
||||
|
||||
iocage exec "$1" service sonarr stop
|
||||
#TODO insert code to update sonarr itself here
|
||||
iocage exec "$1" chown -R sonarr:sonarr /usr/local/share/NzbDrone /config
|
||||
# shellcheck disable=SC2154
|
||||
cp "${SCRIPT_DIR}"/blueprints/sonarr/includes/sonarr.rc /mnt/"${global_dataset_iocage}"/jails/"$1"/root/usr/local/etc/rc.d/sonarr
|
||||
iocage exec "$1" chmod u+x /usr/local/etc/rc.d/sonarr
|
||||
iocage exec "$1" service sonarr restart
|
Reference in New Issue
Block a user