The Birth of JailMan (#2)

* move ex (+25 squashed commit)

Squashed commit:

[e5e9c57] verb

[16b023f] exp

[e0299d9] easier

[67fcf93] no message

[404687f] different

[bd82e7c] test

[14b91d9] mod

[f2bb227] test again

[a9d5ad0] again

[0dcb106] with bash

[7324c15] more

[8ec72d5] another test

[0933fdc] again

[a5247df] test more

[ee61137] temp test

[c90aa90] add some more tests

[9f8e47a] make executable

[ac84788] rename part 2

[890c3ca] rename part 1

[f17e571] test create

[9bd8ecd] typo aqgain

[eb865a7] test2

[fb57e28] typo

[595d9e9] make executable

[5d1ae75] first steps

* test5 (+22 squashed commit)

Squashed commit:

[f059ada] tweaks

[5c325de] again

[9f59aa6] ip4

[9990a77] Standardised creation

[0a6fa7f] whoops

[620d07c] no message

[2a98559] error

[62e9c39] hmmm

[9f8e4df] no message

[d1e9025] puzzle

[73aa99b] substitution try 1

[117e75e] other sub

[7c080b0] more flexible

[a0778f4] testzoveel

[739a3bf] fix

[f881425] no message

[1962b83] oops

[994692c] no message

[b6dd2a2] test

[6713186] echo

[6d8d95a] test

[f8c3740] quote processing

* small update fix (+18 squashed commit)

Squashed commit:

[8f0c2aa] Basic update

[c44eae5] simplification

[b1e9314] define basic pkgs

[1a55a85] define global pkgs

[6829d30] dirtest

[5d2a215] checking for install script existance

[d936df3] 1

[fcc7403] hmm

[08e7e07] exit 0

[380da4d] jail interfaces

[634f12e] make all executable

[0f2728c] add first test jail

[8320d77] restructure individual install scripts

[752b375] Standardise

[cbab837] itterate through jails

[37ecc1d] if array is without elements

[0a9e899] moving it to arrays

[cc356ee] mockup jailman

* moving docs,fixing test thingy (+27 squashed commit)

Squashed commit:

[76e856b] rc.d pathing

[4e1b178] fixing some pathing bugs

[e9e9648] quotes

[7c5aa9e] test10 fixes

[e8858cc] sonarr first steps

[0cb1efe] exit on invalid option

[e3451da] exit on unknown option

[60a1f9c] exit

[0536c11] test idea

[81d3465] hmm

[cb3b935] work on h

[1311fea] enable help

[aa8d55a] space?

[5ef67e0] add comment to global

[61be2fa] Add commenting and in-script help

[aac8557] Testing broken config

[ecc1142] oops

[e0059be] condition fix

[9628297] Add check for missing network settings

[44be2bc] Creating DHCP option, working on default example config.

[b0fe910] Adding documentation, setting up Jackett

[0045b2b] strucutre

[fbe3d20] includes first

[a1b032d] gitupdate space

[1b503b5] update fix

[512f597] add update feature

[e9b8359] add initial upgrade script

* Create LICENSE (#1)

* to 30

* move back kms includes readme, add config.yml to gitignore, add kms to config.yml.example (+24 squashed commit)

Squashed commit:

[095aa36] added py ks to readme

[28526d8] Setup KMS

[82f7bfa] Exeuction fix

[89de700] finish organizr and setup first steps of kms

[0624952] Add dummy cert generation

[2583e39] slight nginx mod

[3b3da6a] fixed again

[7f5807b] Readme and fix for wrong copy

[6cab6ca] Make tautulli permanent and prepare organizr

[6801447] Tautulli setup, plex to permanent

[6198469] also fix update if

[49cff5d] if fix 2

[4c436c4] fixing plex if

[1adf56f] Add first go at plex support

[446dff6] fixing some linking and dataset creation

[6dee179] forgot to set yaml files

[4e767de] settings file is not needed at all

[8ff9d73] setup lidarr, begin setup for transmission

[8f8d9ee] Fixing wrong echo's, adding *arr to readme

[7aab5f0] lidarr test setup, making radarr final, yaml restructure

[3113f71] some dataset creation tweaks

[286437b] movies, much

[181cf3e] test setup

[6477b74] Sonarr done, radarr next

* set to master and make executable
This commit is contained in:
Kjeld Schouten-Lebbing
2020-03-06 21:32:55 +01:00
committed by GitHub
parent d129808e2a
commit 4c09ea840c
60 changed files with 1177 additions and 370 deletions

View File

@ -0,0 +1,50 @@
#!/bin/sh
# $FreeBSD$
#
# PROVIDE: jackett
# REQUIRE: LOGIN
# KEYWORD: shutdown
#
# Add the following lines to /etc/rc.conf.local or /etc/rc.conf
# to enable this service:
#
# jackett_enable: Set to YES to enable jackett
# Default: NO
# jackett_user: The user account used to run the jackett 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
# jackett_group: The group account used to run the jackett 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
# jackett_data_dir: Directory where jackett configuration
# data is stored.
# Default: /var/db/jackett
. /etc/rc.subr
name=jackett
rcvar=${name}_enable
load_rc_config $name
: ${jackett_enable:="NO"}
: ${jackett_user:="jackett"}
: ${jackett_group:="jackett"}
: ${jackett_data_dir:="/config"}
command="/usr/sbin/daemon"
procname="/usr/local/bin/mono"
command_args="-p ${jackett_data_dir}/jackett.pid -f ${procname} /usr/local/share/Jackett/JackettConsole.exe -d ${jackett_data_dir}"
start_precmd=jackett_precmd
jackett_precmd() {
export USER=${jackett_user}
if [ ! -d ${jackett_data_dir} ]; then
install -d -o ${jackett_user} -g ${jackett_group} ${jackett_data_dir}
fi
export XDG_CONFIG_HOME=${jackett_data_dir}
}
run_rc_command "$1"

14
jails/jackett/install.sh Executable file
View File

@ -0,0 +1,14 @@
#!/usr/local/bin/bash
# This file contains the install script for jackett
iocage exec jackett ln -s /usr/local/bin/mono /usr/bin/mono
iocage exec jackett "fetch https://github.com/Jackett/Jackett/releases/download/v0.11.502/Jackett.Binaries.Mono.tar.gz -o /usr/local/share"
iocage exec jackett "tar -xzvf /usr/local/share/Jackett.Binaries.Mono.tar.gz -C /usr/local/share"
iocage exec jackett rm /usr/local/share/Jackett.Binaries.Mono.tar.gz
iocage exec jackett "pw user add jackett -c jackett -u 818 -d /nonexistent -s /usr/bin/nologin"
iocage exec jackett chown -R jackett:jackett /usr/local/share/Jackett /config
iocage exec jackett mkdir /usr/local/etc/rc.d
cp ${SCRIPT_DIR}/jails/jackett/includes/jackett.rc /mnt/${global_dataset_iocage}/jails/jackett/root/usr/local/etc/rc.d/jackett
iocage exec jackett chmod u+x /usr/local/etc/rc.d/jackett
iocage exec jackett sysrc "jackett_enable=YES"
iocage exec jackett service jackett restart

6
jails/jackett/readme.md Normal file
View File

@ -0,0 +1,6 @@
## jackett
Jackett is tool designed to combine and search multiple bittorrent trackers like a proxy.
### Post-install
Currently there are not relevant post-install steps, other than your own personal preferences for setting up Jacket.

9
jails/jackett/update.sh Executable file
View File

@ -0,0 +1,9 @@
#!/usr/local/bin/bash
# This file contains the update script for jackett
iocage exec jackett service jackett stop
#TODO insert code to update jacket itself here
iocage exec jackett chown -R jackett:jackett /usr/local/share/Jackett /config
cp ${SCRIPT_DIR}/jails/test10/includes/jackett.rc /mnt/${global_dataset_iocage}/jails/test10/root/usr/local/etc/rc.d/jackett
iocage exec jackett chmod u+x /usr/local/etc/rc.d/jackett
iocage exec jackett service jackett restart

View File

@ -0,0 +1,7 @@
cd C:\Program Files\Microsoft Office\Office16
cscript ospp.vbs /dstatus
cscript ospp.vbs /inpkey:VQ9DP-NVHPH-T9HJC-J9PDT-KTQRG
cscript ospp.vbs /sethst:192.168.10.43
cscript ospp.vbs /setprt:1688
cscript ospp.vbs /act
cscript ospp.vbs /dstatus

View File

@ -0,0 +1,4 @@
cscript slmgr.vbs /upk
cscript slmgr.vbs /ipk W269N-WFGWX-YVC9B-4J6C9-T83GX
cscript slmgr.vbs /skms 192.168.10.43:1688
cscript slmgr.vbs /ato

View File

@ -0,0 +1,6 @@
%windir%\system32\DISM.exe /Online /Get-TargetEditions
%windir%\system32\DISM /online /Set-Edition:ServerStandard /ProductKey:N69G4-B89J2-4G8F4-WWYCC-J464C /AcceptEula
cscript %windir%\system32\slmgr.vbs /upk
cscript %windir%\system32\slmgr.vbs /ipk N69G4-B89J2-4G8F4-WWYCC-J464C
cscript %windir%\system32\slmgr.vbs /skms 192.168.10.43:1688
cscript %windir%\system32\slmgr.vbs /ato

View File

@ -0,0 +1,43 @@
<Configuration ID="0b261046-a220-4392-88d4-2cfd462c90b3">
<Add OfficeClientEdition="64" Channel="PerpetualVL2019">
<Product ID="ProPlus2019Volume" PIDKEY="NMMKJ-6RK4F-KMJVX-8D9MJ-6MWKP">
<Language ID="en-us" />
<Language ID="nl-nl" />
<Language ID="MatchPreviousMSI" />
<ExcludeApp ID="Groove" />
<ExcludeApp ID="Lync" />
<ExcludeApp ID="OneDrive" />
<ExcludeApp ID="OneNote" />
</Product>
<Product ID="LanguagePack">
<Language ID="en-us" />
<Language ID="nl-nl" />
<Language ID="MatchPreviousMSI" />
<ExcludeApp ID="Groove" />
<ExcludeApp ID="Lync" />
<ExcludeApp ID="OneDrive" />
<ExcludeApp ID="OneNote" />
</Product>
<Product ID="ProofingTools">
<Language ID="nl-nl" />
<Language ID="en-us" />
<Language ID="fr-fr" />
<Language ID="de-de" />
</Product>
</Add>
<Property Name="SharedComputerLicensing" Value="0" />
<Property Name="PinIconsToTaskbar" Value="TRUE" />
<Property Name="SCLCacheOverride" Value="0" />
<Property Name="AUTOACTIVATE" Value="0" />
<Property Name="FORCEAPPSHUTDOWN" Value="TRUE" />
<Property Name="DeviceBasedLicensing" Value="0" />
<Updates Enabled="TRUE" />
<RemoveMSI />
<AppSettings>
<User Key="software\microsoft\office\16.0\excel\options" Name="defaultformat" Value="51" Type="REG_DWORD" App="excel16" Id="L_SaveExcelfilesas" />
<User Key="software\microsoft\office\16.0\powerpoint\options" Name="defaultformat" Value="27" Type="REG_DWORD" App="ppt16" Id="L_SavePowerPointfilesas" />
<User Key="software\microsoft\office\16.0\word\options" Name="defaultformat" Value="" Type="REG_SZ" App="word16" Id="L_SaveWordfilesas" />
</AppSettings>
<Display Level="Full" AcceptEULA="TRUE" />
<Logging Level="Off" />
</Configuration>

View File

@ -0,0 +1,11 @@
## Office 2019 pro
All CMD commands are expected to be run from an elevated (administrator) command prompt (cmd)
1. Download office 2019 deployment tool
2. Extract the tool
3. Copy Office-2019-Pro-VLK-Config.xml to folder you extracted the tool in
4. CMD: cd *Path to extracted tool and xml*
5. CMD: setup /configure Office-2019-Pro-VLK-Config.xml
6. CMD: cd *path to this config file*
7. CMD: Activate_Office_2019_Pro.bat

View File

@ -0,0 +1,7 @@
cd C:\Program Files\Microsoft Office\Office16
cscript ospp.vbs /dstatus
cscript ospp.vbs /inpkey:NMMKJ-6RK4F-KMJVX-8D9MJ-6MWKP
cscript ospp.vbs /sethst:192.168.10.43
cscript ospp.vbs /setprt:1688
cscript ospp.vbs /act
cscript ospp.vbs /dstatus

View File

@ -0,0 +1,38 @@
#!/bin/sh
# $FreeBSD$
#
# PROVIDE: py_kms
# REQUIRE: LOGIN
# KEYWORD: shutdown
#
# Add the following lines to /etc/rc.conf.local or /etc/rc.conf
# to enable this service:
#
# py-kms_enable: Set to YES to enable py-kms
# Default: NO
# py-kms_user: The user account used to run the py-kms 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
# py-kms_group: The group account used to run the py-kms 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
# py-kms_data_dir: Directory where py-kms configuration
# data is stored.
. /etc/rc.subr
name=py_kms
rcvar=${name}_enable
load_rc_config $name
: ${py_kms_enable:="NO"}
: ${py_kms_user:="kms"}
: ${py_kms_group:="kms"}
: ${py_kms_data_dir:="/config"}
command="/usr/local/bin/python3.7"
command_args="/usr/local/share/py-kms/pykms_Server.py 0.0.0.0 1688 -F ${py_kms_data_dir}/py-kms.log etrigan start --etrigan-pid ${py_kms_data_dir}/etrigan.pid"
run_rc_command "$1"

12
jails/kms/install.sh Executable file
View File

@ -0,0 +1,12 @@
#!/usr/local/bin/bash
# This file contains the install script for KMS
iocage exec kms svn checkout https://github.com/SystemRage/py-kms/trunk/py-kms /usr/local/share/py-kms
iocage exec kms "pw user add kms -c kms -u 666 -d /nonexistent -s /usr/bin/nologin"
iocage exec kms chown -R kms:kms /usr/local/share/py-kms /config
iocage exec kms mkdir /usr/local/etc/rc.d
cp ${SCRIPT_DIR}/jails/kms/includes/py_kms.rc /mnt/${global_dataset_iocage}/jails/kms/root/usr/local/etc/rc.d/py_kms
iocage exec kms chmod u+x /usr/local/etc/rc.d/py_kms
iocage exec kms sysrc "py_kms_enable=YES"
iocage exec kms service py_kms start

9
jails/kms/update.sh Executable file
View File

@ -0,0 +1,9 @@
#!/usr/local/bin/bash
# This file contains the update script for KMS
iocage exec kms service py_kms stop
iocage exec kms svn checkout https://github.com/SystemRage/py-kms/trunk/py-kms /usr/local/share/py-kms
iocage exec kms chown -R kms:kms /usr/local/share/py-kms /config
cp ${SCRIPT_DIR}/jails/kms/includes/py_kms.rc /mnt/${global_dataset_iocage}/jails/kms/root/usr/local/etc/rc.d/py_kms
iocage exec kms chmod u+x /usr/local/etc/rc.d/py_kms
iocage exec kms service py_kms start

View File

@ -0,0 +1,36 @@
#!/bin/sh
# $FreeBSD$
#
# PROVIDE: lidarr
# REQUIRE: LOGIN
# KEYWORD: shutdown
#
# Add the following lines to /etc/rc.conf to enable lidarr:
# lidarr_enable="YES"
. /etc/rc.subr
name=lidarr
rcvar=${name}_enable
load_rc_config $name
: ${lidarr_enable="NO"}
: ${lidarr_user:="lidarr"}
: ${lidarr_group:="lidarr"}
: ${lidarr_data_dir:="/config"}
pidfile="${lidarr_data_dir}/lidarr.pid"
command="/usr/sbin/daemon"
procname="/usr/local/bin/mono"
command_args="-f ${procname} /usr/local/share/Lidarr/Lidarr.exe -- data=${lidarr_data_dir} --nobrowser"
start_precmd=lidarr_precmd
lidarr_precmd() {
if [ ! -d ${lidarr_data_dir} ]; then
install -d -o ${lidarr_user} -g ${lidarr_group} ${lidarr_data_dir}
fi
export XDG_CONFIG_HOME=${lidarr_data_dir}
}
run_rc_command "$1"

44
jails/lidarr/install.sh Executable file
View File

@ -0,0 +1,44 @@
#!/usr/local/bin/bash
# This file contains the install script for lidarr
iocage exec lidarr mkdir -p /mnt/music
iocage exec lidarr mkdir -p /mnt/fetched
# Check if dataset for completed download and it parent dataset exist, create if they do not.
if [ ! -d "/mnt/${global_dataset_downloads}" ]; then
echo "Downloads dataset does not exist... Creating... ${global_dataset_downloads}"
zfs create ${global_dataset_downloads}
fi
if [ ! -d "/mnt/${global_dataset_downloads}/complete" ]; then
echo "Completed Downloads dataset does not exist... Creating... ${global_dataset_downloads}/complete"
zfs create ${global_dataset_downloads}/complete
fi
iocage fstab -a lidarr /mnt/${global_dataset_downloads}/complete /mnt/fetched nullfs rw 0 0
# Check if dataset for media library and the dataset for music exist, create if they do not.
if [ ! -d "/mnt/${global_dataset_media}" ]; then
echo "Media dataset does not exist... Creating... ${global_dataset_media}"
zfs create ${global_dataset_media}
fi
if [ ! -d "/mnt/${global_dataset_media}/music" ]; then
echo "Music dataset does not exist... Creating... ${global_dataset_media}/music"
zfs create ${global_dataset_media}/music
fi
iocage fstab -a lidarr /mnt/${global_dataset_media}/music /mnt/music nullfs rw 0 0
iocage exec lidarr ln -s /usr/local/bin/mono /usr/bin/mono
iocage exec lidarr "fetch https://github.com/lidarr/Lidarr/releases/download/v0.2.0.371/Lidarr.develop.0.2.0.371.linux.tar.gz -o /usr/local/share"
iocage exec lidarr "tar -xzvf /usr/local/share/Lidarr.develop.0.2.0.371.linux.tar.gz -C /usr/local/share"
iocage exec lidarr "rm /usr/local/share/Lidarr.develop.0.2.0.371.linux.tar.gz"
iocage exec lidarr "pw user add lidarr -c lidarr -u 353 -d /nonexistent -s /usr/bin/nologin"
iocage exec lidarr chown -R lidarr:lidarr /usr/local/share/Lidarr /config
iocage exec lidarr mkdir /usr/local/etc/rc.d
cp ${SCRIPT_DIR}/jails/lidarr/includes/lidarr.rc /mnt/${global_dataset_iocage}/jails/lidarr/root/usr/local/etc/rc.d/lidarr
iocage exec lidarr chmod u+x /usr/local/etc/rc.d/lidarr
iocage exec lidarr sysrc "lidarr_enable=YES"
iocage exec lidarr service lidarr start

9
jails/lidarr/update.sh Executable file
View File

@ -0,0 +1,9 @@
#!/usr/local/bin/bash
# This file contains the update script for lidarr
iocage exec lidarr service lidarr stop
#TODO insert code to update lidarr itself here
iocage exec lidarr chown -R lidarr:lidarr /usr/local/share/lidarr /config
cp ${SCRIPT_DIR}/jails/lidarr/includes/lidarr.rc /mnt/${global_dataset_iocage}/jails/lidarr/root/usr/local/etc/rc.d/lidarr
iocage exec lidarr chmod u+x /usr/local/etc/rc.d/lidarr
iocage exec lidarr service lidarr restart

View File

@ -0,0 +1,145 @@
send_timeout 5m;
proxy_read_timeout 240;
proxy_send_timeout 240;
proxy_connect_timeout 240;
client_header_timeout 240;
client_body_timeout 240;
location / {
root /usr/local/www/Organizr;
index index.php index.html index.htm index.nginx-debian.html;
location ~ /auth-(.*) {
internal;
rewrite ^/auth-(.*) /api/?v1/auth&group=$1;
}
error_page 400 401 402 403 404 405 408 500 502 503 504 $scheme://$server_name/?error=$status;
location / {try_files $uri $uri/ =404;}
include custom/phpblock.conf; #PHP Block
}
location /transmission/ {
auth_request /auth-0;
add_header X-Frame-Options "SAMEORIGIN";
proxy_pass http://192.168.31.22:9091;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location /sonarr/ {
auth_request /auth-0;
add_header X-Frame-Options "SAMEORIGIN";
proxy_pass http://192.168.31.23:8989;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location /radarr/ {
auth_request /auth-0;
add_header X-Frame-Options "SAMEORIGIN";
proxy_pass http://192.168.31.24:7878;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location /lidarr/ {
auth_request /auth-0;
add_header X-Frame-Options "SAMEORIGIN";
proxy_pass http://192.168.31.25:8686;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location /jackett/ {
auth_request /auth-0;
add_header X-Frame-Options "SAMEORIGIN";
proxy_pass http://192.168.31.21:9117;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection keep-alive;
proxy_cache_bypass $http_upgrade;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Host $http_host;
}
location /plex/ {
auth_request /auth-4;
add_header X-Frame-Options "SAMEORIGIN";
proxy_pass https://192.168.30.27:32400/;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_bind $server_addr;
proxy_buffers 32 4k;
#Timeout if the real server is dead
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503;
# Advanced Proxy Config
send_timeout 5m;
proxy_read_timeout 240;
proxy_send_timeout 240;
proxy_connect_timeout 240;
proxy_hide_header X-Frame-Options;
# Basic Proxy Config
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
proxy_redirect http:// $scheme://;
proxy_http_version 1.1;
proxy_set_header Connection "";
proxy_no_cache $cookie_session;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
if ($http_referer ~* /plex/) {
rewrite ^/web/(.*) /plex/web/$1? redirect;
}
location /tautulli/ {
auth_request /auth-4;
add_header X-Frame-Options "SAMEORIGIN";
proxy_pass http://192.168.31.26:8181;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Host $server_name;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_read_timeout 90;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Forwarded-Ssl on;
#proxy_redirect ~^(http(?:s)?://)([^:/]+)(?::\d+)?(/.*)?$ $1$2:$server_port$3;
proxy_redirect off;
}
location /ombi/ {
auth_request /auth-4;
add_header X-Frame-Options "SAMEORIGIN";
proxy_pass https://192.168.31.27:3579/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection keep-alive;
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
location /grafana {
auth_request /auth-0;
add_header X-Frame-Options "SAMEORIGIN";
proxy_pass https://192.168.30.34/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location /bitwarden {
auth_request /auth-0;
add_header X-Frame-Options "SAMEORIGIN";
proxy_pass https://bitwarden.schouten-lebbing.nl/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

View File

@ -0,0 +1,9 @@
fastcgi_read_timeout 240;
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $request_filename;
include fastcgi_params;
}

View File

@ -0,0 +1,25 @@
user www;
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name localhost;
include custom/organizr.conf;
}
server {
listen 443 ssl;
server_name localhost;
include custom/organizr.conf;
ssl_certificate /config/cert/Organizr-Cert.crt; # Replace with actually valid certificate
ssl_certificate_key /config/cert/Organizr-Cert.key; # Replace with actually valid certificate
}
}

34
jails/organizr/install.sh Executable file
View File

@ -0,0 +1,34 @@
#!/usr/local/bin/bash
# This file contains the install script for Organizr
iocage exec organizr sed -i '' -e 's?listen = 127.0.0.1:9000?listen = /var/run/php-fpm.sock?g' /usr/local/etc/php-fpm.d/www.conf
iocage exec organizr sed -i '' -e 's/;listen.owner = www/listen.owner = www/g' /usr/local/etc/php-fpm.d/www.conf
iocage exec organizr sed -i '' -e 's/;listen.group = www/listen.group = www/g' /usr/local/etc/php-fpm.d/www.conf
iocage exec organizr sed -i '' -e 's/;listen.mode = 0660/listen.mode = 0600/g' /usr/local/etc/php-fpm.d/www.conf
iocage exec organizr cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini
iocage exec organizr sed -i '' -e 's?;date.timezone =?date.timezone = "Universal"?g' /usr/local/etc/php.ini
iocage exec organizr sed -i '' -e 's?;cgi.fix_pathinfo=1?cgi.fix_pathinfo=0?g' /usr/local/etc/php.ini
mv /mnt/${global_dataset_iocage}/jails/organizr/root/usr/local/etc/nginx/nginx.conf /mnt/${global_dataset_iocage}/jails/organizr/root/usr/local/etc/nginx/nginx.conf.bak
cp ${SCRIPT_DIR}/jails/organizr/includes/nginx.conf /mnt/${global_dataset_iocage}/jails/organizr/root/usr/local/etc/nginx/nginx.conf
cp -Rf ${SCRIPT_DIR}/jails/organizr/includes/custom /mnt/${global_dataset_iocage}/jails/organizr/root/usr/local/etc/nginx/custom
if [ ! -d "/mnt/${global_dataset_config}/organizr/cert" ]; then
echo "cert folder not existing... creating..."
iocage exec organizr mkdir /config/cert
fi
if [ -f "/mnt/${global_dataset_config}/organizr/cert/Organizr-Cert.crt" ]; then
echo "certificate exist... Skipping cert generation"
else
"No ssl certificate present, generating self signed certificate"
openssl req -new -newkey rsa:2048 -days 365 -nodes -x509 -subj "/C=US/ST=Denial/L=Springfield/O=Dis/CN=localhost" -keyout /mnt/${global_dataset_config}/organizr/cert/Organizr-Cert.key -out /mnt/${global_dataset_config}/organizr/cert/Organizr-Cert.crt
fi
iocage exec organizr git clone https://github.com/causefx/Organizr.git /usr/local/www/Organizr
iocage exec organizr chown -R www:www /usr/local/www /config /usr/local/etc/nginx/nginx.conf /usr/local/etc/nginx/custom
iocage exec organizr ln -s /config/config.php /usr/local/www/Organizr/api/config/config.php
iocage exec organizr sysrc nginx_enable=YES
iocage exec organizr sysrc php_fpm_enable=YES
iocage exec organizr service nginx start
iocage exec organizr service php-fpm start

12
jails/organizr/update.sh Executable file
View File

@ -0,0 +1,12 @@
#!/usr/local/bin/bash
# This file contains the update script for Organizr
iocage exec organizr service nginx stop
iocage exec organizr service php-fpm stop
# TODO setup cli update for Organizr here.
cp ${SCRIPT_DIR}/jails/organizr/includes/nginx.conf /mnt/${global_dataset_iocage}/jails/organizr/root/usr/local/etc/nginx/nginx.conf
iocage exec organizr "cd /usr/local/www/Organizr && git pull"
iocage exec organizr chown -R www:www /usr/local/www /config /usr/local/etc/nginx/nginx.conf /usr/local/etc/nginx/custom
iocage exec organizr service nginx start
iocage exec organizr service php-fpm start

View File

@ -0,0 +1,3 @@
FreeBSD: {
url: "pkg+http://pkg.FreeBSD.org/${ABI}/latest"
}

65
jails/plex/install.sh Executable file
View File

@ -0,0 +1,65 @@
#!/usr/local/bin/bash
# This file contains the install script for plex
iocage exec plex mkdir -p /usr/local/etc/pkg/repos
iocage exec plex mkdir -p /mnt/media
iocage exec plex mkdir -p /mnt/media/movies
iocage exec plex mkdir -p /mnt/media/music
iocage exec plex mkdir -p /mnt/media/shows
# Change to to more frequent FreeBSD repo to stay up-to-date with plex more.
cp ${SCRIPT_DIR}/jails/plex/includes/FreeBSD.conf /mnt/${global_dataset_iocage}/jails/plex/root/usr/local/etc/pkg/repos/FreeBSD.conf
# Check if datasets for media librarys exist, create them if they do not.
if [ ! -d "/mnt/${global_dataset_media}" ]; then
echo "Media dataset does not exist... Creating... ${global_dataset_media}"
zfs create ${global_dataset_media}
fi
iocage fstab -a plex /mnt/${global_dataset_media} /mnt/media nullfs rw 0 0
if [ ! -d "/mnt/${global_dataset_media}/shows" ]; then
echo "TV Shows dataset does not exist... Creating... ${global_dataset_media}/shows"
zfs create ${global_dataset_media}/shows
fi
iocage fstab -a plex /mnt/${global_dataset_media}/shows /mnt/media/shows nullfs rw 0 0
if [ ! -d "/mnt/${global_dataset_media}/music" ]; then
echo "music dataset does not exist... Creating... ${global_dataset_media}/music"
zfs create ${global_dataset_media}/music
fi
iocage fstab -a plex /mnt/${global_dataset_media}/music /mnt/media/music nullfs rw 0 0
if [ ! -d "/mnt/${global_dataset_media}/movies" ]; then
echo "movies dataset does not exist... Creating... ${global_dataset_media}/movies"
zfs create ${global_dataset_media}/movies
fi
iocage fstab -a plex /mnt/${global_dataset_media}/movies /mnt/media/movies nullfs rw 0 0
iocage exec plex chown -R plex:plex /config
# Force update pkg to get latest plex version
iocage exec plex pkg update
iocage exec plex pkg upgrade -y
# Run different install procedures depending on Plex vs Plexpass
if [ "$plex_plexpass" == "true" ]; then
echo "plexpass enabled in config.yml... using plexpass for install"
iocage exec plex sysrc "plexmediaserver_plexpass_enable=YES"
iocage exec plex sysrc plexmediaserver_plexpass_support_path="/config"
iocage exec plex chown -R plex:plex /usr/local/share/plexmediaserver-plexpass/
iocage exec plex service plexmediaserver_plexpass restart
else
echo "plexpass disabled in config.yml... NOT using plexpass for install"
iocage exec plex sysrc "plexmediaserver_enable=YES"
iocage exec plex sysrc plexmediaserver_support_path="/config"
iocage exec plex chown -R plex:plex /usr/local/share/plexmediaserver/
iocage exec plex service plexmediaserver restart
fi
echo "Finished installing plex"

22
jails/plex/update.sh Executable file
View File

@ -0,0 +1,22 @@
#!/usr/local/bin/bash
# This file contains the update script for Plex
# Run different update procedures depending on Plex vs Plexpass
if [ "$plex_plexpass" == "true" ]; then
echo "plexpass enabled in config.yml... using plexpass for update..."
iocage exec plex service plexmediaserver_plexpass stop
# Plex is updated using PKG already, this is mostly a placeholder
iocage exec plex chown -R plex:plex /usr/local/share/plexmediaserver-plexpass/
iocage exec plex service plexmediaserver_plexpass restart
else
echo "plexpass disabled in config.yml... NOT using plexpass for update..."
iocage exec plex service plexmediaserver stop
# Plex is updated using PKG already, this is mostly a placeholder
iocage exec plex chown -R plex:plex /usr/local/share/plexmediaserver/
iocage exec plex service plexmediaserver restart
fi

View File

@ -0,0 +1,50 @@
#!/bin/sh
# $FreeBSD$
#
# PROVIDE: radarr
# REQUIRE: LOGIN
# KEYWORD: shutdown
#
# Add the following lines to /etc/rc.conf.local or /etc/rc.conf
# to enable this service:
#
# radarr_enable: Set to YES to enable radarr
# Default: NO
# radarr_user: The user account used to run the radarr 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
# radarr_group: The group account used to run the radarr 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
# radarr_data_dir: Directory where radarr configuration
# data is stored.
# Default: /var/db/radarr
. /etc/rc.subr
name=radarr
rcvar=${name}_enable
load_rc_config $name
: ${radarr_enable:="NO"}
: ${radarr_user:="radarr"}
: ${radarr_group:="radarr"}
: ${radarr_data_dir:="/config"}
pidfile="${radarr_data_dir}/nzbdrone.pid"
command="/usr/sbin/daemon"
procname="/usr/local/bin/mono"
command_args="-f ${procname} /usr/local/share/Radarr/Radarr.exe --data=${radarr_data_dir} --nobrowser"
start_precmd=radarr_precmd
radarr_precmd() {
if [ ! -d ${radarr_data_dir} ]; then
install -d -o ${radarr_user} -g ${radarr_group} ${radarr_data_dir}
fi
export XDG_CONFIG_HOME=${radarr_data_dir}
}
run_rc_command "$1"

43
jails/radarr/install.sh Executable file
View File

@ -0,0 +1,43 @@
#!/usr/local/bin/bash
# This file contains the install script for radarr
iocage exec radarr mkdir -p /mnt/movies
iocage exec radarr mkdir -p /mnt/fetched
# Check if dataset for completed download and it parent dataset exist, create if they do not.
if [ ! -d "/mnt/${global_dataset_downloads}" ]; then
echo "Downloads dataset does not exist... Creating... ${global_dataset_downloads}"
zfs create ${global_dataset_downloads}
fi
if [ ! -d "/mnt/${global_dataset_downloads}/complete" ]; then
echo "Completed Downloads dataset does not exist... Creating... ${global_dataset_downloads}/complete"
zfs create ${global_dataset_downloads}/complete
fi
iocage fstab -a radarr /mnt/${global_dataset_downloads}/complete /mnt/fetched nullfs rw 0 0
# Check if dataset for media library and the dataset for movies exist, create if they do not.
if [ ! -d "/mnt/${global_dataset_media}" ]; then
echo "Media dataset does not exist... Creating... ${global_dataset_media}"
zfs create ${global_dataset_media}
fi
if [ ! -d "/mnt/${global_dataset_media}/movies" ]; then
echo "Movies dataset does not exist... Creating... ${global_dataset_media}/movies"
zfs create ${global_dataset_media}/movies
fi
iocage fstab -a radarr /mnt/${global_dataset_media}/movies /mnt/movies nullfs rw 0 0
iocage exec radarr ln -s /usr/local/bin/mono /usr/bin/mono
iocage exec radarr "fetch https://github.com/Radarr/Radarr/releases/download/v0.2.0.1480/Radarr.develop.0.2.0.1480.linux.tar.gz -o /usr/local/share"
iocage exec radarr "tar -xzvf /usr/local/share/Radarr.develop.0.2.0.1480.linux.tar.gz -C /usr/local/share"
iocage exec radarr rm /usr/local/share/Radarr.develop.0.2.0.1480.linux.tar.gz
iocage exec radarr "pw user add radarr -c radarr -u 352 -d /nonexistent -s /usr/bin/nologin"
iocage exec radarr chown -R radarr:radarr /usr/local/share/Radarr /config
iocage exec radarr mkdir /usr/local/etc/rc.d
cp ${SCRIPT_DIR}/jails/radarr/includes/radarr.rc /mnt/${global_dataset_iocage}/jails/radarr/root/usr/local/etc/rc.d/radarr
iocage exec radarr chmod u+x /usr/local/etc/rc.d/radarr
iocage exec radarr sysrc "radarr_enable=YES"
iocage exec radarr service radarr restart

9
jails/radarr/update.sh Executable file
View File

@ -0,0 +1,9 @@
#!/usr/local/bin/bash
# This file contains the update script for radarr
iocage exec radarr service radarr stop
#TODO insert code to update radarr itself here
iocage exec radarr chown -R radarr:radarr /usr/local/share/Radarr /config
cp ${SCRIPT_DIR}/jails/radarr/includes/radarr.rc /mnt/${global_dataset_iocage}/jails/radarr/root/usr/local/etc/rc.d/radarr
iocage exec radarr chmod u+x /usr/local/etc/rc.d/radarr
iocage exec radarr service radarr restart

View 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"

44
jails/sonarr/install.sh Executable file
View File

@ -0,0 +1,44 @@
#!/usr/local/bin/bash
# This file contains the install script for sonarr
iocage exec sonarr mkdir -p /mnt/shows
iocage exec sonarr mkdir -p /mnt/fetched
# Check if dataset for completed download and it parent dataset exist, create if they do not.
if [ ! -d "/mnt/${global_dataset_downloads}" ]; then
echo "Downloads dataset does not exist... Creating... ${global_dataset_downloads}"
zfs create ${global_dataset_downloads}
fi
if [ ! -d "/mnt/${global_dataset_downloads}/complete" ]; then
echo "Completed Downloads dataset does not exist... Creating... ${global_dataset_downloads}/complete"
zfs create ${global_dataset_downloads}/complete
fi
iocage fstab -a sonarr /mnt/${global_dataset_downloads}/complete /mnt/fetched nullfs rw 0 0
# Check if dataset for media library and the dataset for tv shows exist, create if they do not.
if [ ! -d "/mnt/${global_dataset_media}" ]; then
echo "Media dataset does not exist... Creating... ${global_dataset_media}"
zfs create ${global_dataset_media}
fi
if [ ! -d "/mnt/${global_dataset_media}/shows" ]; then
echo "TV Shows dataset does not exist... Creating... ${global_dataset_media}/shows"
zfs create ${global_dataset_media}/shows
fi
iocage fstab -a sonarr /mnt/${global_dataset_media}/shows /mnt/shows nullfs rw 0 0
iocage exec sonarr ln -s /usr/local/bin/mono /usr/bin/mono
iocage exec sonarr "fetch http://download.sonarr.tv/v2/master/mono/NzbDrone.master.tar.gz -o /usr/local/share"
iocage exec sonarr "tar -xzvf /usr/local/share/NzbDrone.master.tar.gz -C /usr/local/share"
iocage exec sonarr rm /usr/local/share/NzbDrone.master.tar.gz
iocage exec sonarr "pw user add sonarr -c sonarr -u 351 -d /nonexistent -s /usr/bin/nologin"
iocage exec sonarr chown -R sonarr:sonarr /usr/local/share/NzbDrone /config
iocage exec sonarr mkdir /usr/local/etc/rc.d
cp ${SCRIPT_DIR}/jails/sonarr/includes/sonarr.rc /mnt/${global_dataset_iocage}/jails/sonarr/root/usr/local/etc/rc.d/sonarr
iocage exec sonarr chmod u+x /usr/local/etc/rc.d/sonarr
iocage exec sonarr sysrc "sonarr_enable=YES"
iocage exec sonarr service sonarr restart

9
jails/sonarr/update.sh Executable file
View File

@ -0,0 +1,9 @@
#!/usr/local/bin/bash
# This file contains the update script for sonarr
iocage exec sonarr service sonarr stop
#TODO insert code to update sonarr itself here
iocage exec sonarr chown -R sonarr:sonarr /usr/local/share/NzbDrone /config
cp ${SCRIPT_DIR}/jails/sonarr/includes/sonarr.rc /mnt/${global_dataset_iocage}/jails/sonarr/root/usr/local/etc/rc.d/sonarr
iocage exec sonarr chmod u+x /usr/local/etc/rc.d/sonarr
iocage exec sonarr service sonarr restart

12
jails/tautulli/install.sh Executable file
View File

@ -0,0 +1,12 @@
#!/usr/local/bin/bash
# This file contains the install script for Tautulli
iocage exec tautulli git clone https://github.com/Tautulli/Tautulli.git /usr/local/share/Tautulli
iocage exec tautulli "pw user add tautulli -c tautulli -u 109 -d /nonexistent -s /usr/bin/nologin"
iocage exec tautulli chown -R tautulli:tautulli /usr/local/share/Tautulli /config
iocage exec tautulli cp /usr/local/share/Tautulli/init-scripts/init.freenas /usr/local/etc/rc.d/tautulli
iocage exec tautulli chmod u+x /usr/local/etc/rc.d/tautulli
iocage exec tautulli sysrc "tautulli_enable=YES"
iocage exec tautulli sysrc "tautulli_flags=--datadir /config"
iocage exec tautulli service tautulli start

9
jails/tautulli/update.sh Executable file
View File

@ -0,0 +1,9 @@
#!/usr/local/bin/bash
# This file contains the update script for Tautulli
iocage exec tautulli service tautulli stop
# Tautulli is updated through pkg, this is mostly just a placeholder
iocage exec tautulli chown -R tautulli:tautulli /usr/local/share/Tautulli /config
iocage exec tautulli cp /usr/local/share/Tautulli/init-scripts/init.freenas /usr/local/etc/rc.d/tautulli
iocage exec tautulli chmod u+x /usr/local/etc/rc.d/tautulli
iocage exec tautulli service tautulli restart

38
jails/transmission/install.sh Executable file
View File

@ -0,0 +1,38 @@
#!/usr/local/bin/bash
# This file contains the install script for transmission
iocage exec transmission mkdir -p /mnt/downloads
iocage exec transmission mkdir -p /mnt/downloads/complete
iocage exec transmission mkdir -p /mnt/downloads/incomplete
# Check if dataset Downloads dataset exist, create if they do not.
if [ ! -d "/mnt/${global_dataset_downloads}" ]; then
echo "Downloads dataset does not exist... Creating... ${global_dataset_downloads}"
zfs create ${global_dataset_downloads}
fi
iocage fstab -a transmission /mnt/${global_dataset_downloads} /mnt/downloads nullfs rw 0 0
# Check if dataset Complete Downloads dataset exist, create if they do not.
if [ ! -d "/mnt/${global_dataset_downloads}/complete" ]; then
echo "Completed Downloads dataset does not exist... Creating... ${global_dataset_downloads}/complete"
zfs create ${global_dataset_downloads}/complete
fi
iocage fstab -a transmission /mnt/${global_dataset_downloads}/complete /mnt/downloads/complete nullfs rw 0 0
# Check if dataset InComplete Downloads dataset exist, create if they do not.
if [ ! -d "/mnt/${global_dataset_downloads}/incomplete" ]; then
echo "Completed Downloads dataset does not exist... Creating... ${global_dataset_downloads}/incomplete"
zfs create ${global_dataset_downloads}/incomplete
fi
iocage fstab -a transmission /mnt/${global_dataset_downloads}/incomplete /mnt/downloads/incomplete nullfs rw 0 0
iocage exec transmission mkdir -p /config
iocage exec transmission chown -R transmission:transmission /config
iocage exec transmission sysrc "transmission_enable=YES"
iocage exec transmission sysrc "transmission_conf_dir=/config"
iocage exec transmission sysrc "transmission_download_dir=/mnt/downloads/complete"
iocage exec transmission service transmission restart

7
jails/transmission/update.sh Executable file
View File

@ -0,0 +1,7 @@
#!/usr/local/bin/bash
# This file contains the update script for transmission
iocage exec transmission service transmission stop
# Transmision is updated during PKG update, this file is mostly just a placeholder
iocage exec transmission chown -R transmission:transmission /config
iocage exec transmission service transmission restart