Guest User

pulsedmedia ARR app installation script

a guest
Feb 13th, 2022
299
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.87 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. mkdir -p $HOME/.config/{radarr,sonarr,cloudplow,prowlarr,jellyfin}
  4.  
  5. ## To update uncomment following line
  6. #rm -rf $HOME/.bin
  7.  
  8. ## change version no to update SABNZBD and JELLYFIN
  9. SABNZBD_VERSION="3.5.0"
  10. JELLYFIN_VERSION="10.7.7"
  11. ## to update ASPDOTNET find new url at https://dotnet.microsoft.com/en-us/download/dotnet/5.0
  12. ASPDOTNET_URL="https://download.visualstudio.microsoft.com/download/pr/f56adf04-e4a8-48bf-b2e2-722e7206a4f2/7f40d4ebeff281120ba76e7b091356b0/aspnetcore-runtime-5.0.14-linux-x64.tar.gz"
  13. RADARR_PORT=
  14. SONARR_PORT=
  15. SABNZBD_PORT=
  16. PROWLARR_PORT=
  17. JELLYFIN_PORT=
  18.  
  19. ## install cloudplow
  20. installdir="$HOME/.bin/cloudplow"
  21. datadir="$HOME/.config/cloudplow"
  22. python3 -m venv ${installdir}
  23. cd ${installdir}
  24. git clone https://github.com/l3uddz/cloudplow.git
  25. source ${installdir}/bin/activate
  26. python -m pip install -U pip
  27. python3 -m pip install -r ${installdir}/cloudplow/requirements.txt
  28. deactivate
  29.  
  30.  
  31. ## install sabnzbd
  32. installdir="$HOME/.bin/sabnzbd"
  33. datadir="$HOME/.config/sabnzbd"
  34. python3 -m venv ${installdir}
  35. cd ${installdir}
  36. wget "https://github.com/sabnzbd/sabnzbd/releases/download/${SABNZBD_VERSION}/SABnzbd-${SABNZBD_VERSION}-src.tar.gz"
  37. tar -xf "SABnzbd-${SABNZBD_VERSION}-src.tar.gz"
  38. rm "SABnzbd-${SABNZBD_VERSION}-src.tar.gz"
  39. source ${installdir}/bin/activate
  40. python -m pip install -U pip
  41. python3 -m pip install -r ${installdir}/SABnzbd-${SABNZBD_VERSION}/requirements.txt
  42. deactivate
  43. ln -sf ${installdir}/SABnzbd-${SABNZBD_VERSION}/SABnzbd.py ${installdir}/sabnzbd
  44.  
  45. ## install radarr
  46. app="radarr"
  47. installdir="$HOME/.bin/"
  48. datadir="$HOME/.config/${app}"
  49. branch="master"
  50. ARCH=$(dpkg --print-architecture)
  51. # get arch
  52. dlbase="https://$app.servarr.com/v1/update/$branch/updatefile?os=linux&runtime=netcore"
  53. case "$ARCH" in
  54. "amd64") DLURL="${dlbase}&arch=x64" ;;
  55. "armhf") DLURL="${dlbase}&arch=arm" ;;
  56. "arm64") DLURL="${dlbase}&arch=arm64" ;;
  57. *)
  58. echo "Arch not supported"
  59. exit 1
  60. ;;
  61. esac
  62. echo ""
  63. echo "Downloading..."
  64. cd ${installdir}
  65. wget --content-disposition "$DLURL"
  66. tar -xvzf ${app^}.*.tar.gz
  67. rm ${app^}.*.tar.gz
  68. echo ""
  69. echo "Installation files downloaded and extracted"
  70. touch "$datadir"/update_required
  71. echo "RADARR Installed"
  72.  
  73. ## install prowlarr
  74. app="prowlarr"
  75. installdir="$HOME/.bin/"
  76. datadir="$HOME/.config/${app}"
  77. branch="develop"
  78. ARCH=$(dpkg --print-architecture)
  79. # get arch
  80. dlbase="https://$app.servarr.com/v1/update/$branch/updatefile?os=linux&runtime=netcore"
  81. case "$ARCH" in
  82. "amd64") DLURL="${dlbase}&arch=x64" ;;
  83. "armhf") DLURL="${dlbase}&arch=arm" ;;
  84. "arm64") DLURL="${dlbase}&arch=arm64" ;;
  85. *)
  86. echo "Arch not supported"
  87. exit 1
  88. ;;
  89. esac
  90. echo ""
  91. echo "Downloading..."
  92. cd ${installdir}
  93. wget --content-disposition "$DLURL"
  94. tar -xvzf ${app^}.*.tar.gz
  95. rm ${app^}.*.tar.gz
  96. echo ""
  97. echo "Installation files downloaded and extracted"
  98. touch "$datadir"/update_required
  99. echo "PROWLARR Installed"
  100.  
  101. ## install sonarr
  102. app="sonarr"
  103. installdir="$HOME/.bin/"
  104. datadir="$HOME/.config/${app}"
  105. branch="main"
  106. ARCH=$(dpkg --print-architecture)
  107. # get arch
  108. dlbase="https://services.$app.tv/v1/download/$branch/latest?version=3&os=linux&runtime=netcore"
  109. ARCH=$(dpkg --print-architecture)
  110. case "$ARCH" in
  111. "amd64") DLURL="${dlbase}&arch=x64" ;;
  112. "armhf") DLURL="${dlbase}&arch=arm" ;;
  113. "arm64") DLURL="${dlbase}&arch=arm64" ;;
  114. *)
  115. echo "Arch not supported"
  116. exit 1
  117. ;;
  118. esac
  119. echo ""
  120. echo "Downloading..."
  121. cd ${installdir}
  122. wget --content-disposition "$DLURL"
  123. tar -xvzf ${app^}.*.tar.gz
  124. rm ${app^}.*.tar.gz
  125. echo ""
  126. echo "Installation files downloaded and extracted"
  127. touch "$datadir"/update_required
  128. echo "SONARR Installed"
  129.  
  130.  
  131. ## Jellyfin
  132.  
  133. ## installing aspnetcore
  134. echo "downloading aspnetcore v5.0.14"
  135. echo "find latest link from https://dotnet.microsoft.com/en-us/download/dotnet/5.0"
  136. installdir="$HOME/.bin/dotnet"
  137. mkdir -p ${installdir}
  138. cd ${installdir}
  139. wget https://download.visualstudio.microsoft.com/download/pr/f56adf04-e4a8-48bf-b2e2-722e7206a4f2/7f40d4ebeff281120ba76e7b091356b0/aspnetcore-runtime-5.0.14-linux-x64.tar.gz
  140. tar -xvzf *.tar.gz
  141. rm *.tar.gz
  142. echo "export DOTNET_ROOT=$HOME/.bin/dotnet" >> $HOME/.bashrc
  143. export DOTNET_ROOT=$HOME/.bin/dotnet
  144.  
  145. ## installing jellyfin
  146. app="jellyfin"
  147. installdir="$HOME/.bin/"
  148. datadir="$HOME/.config/${app}"
  149. cd ${installdir}
  150. wget "https://repo.jellyfin.org/releases/server/portable/stable/combined/${app}_${JELLYFIN_VERSION}.tar.gz"
  151. tar -xvzf ${app}_${JELLYFIN_VERSION}.tar.gz
  152. rm ${app}_${JELLYFIN_VERSION}.tar.gz
  153. mv ${app}_${JELLYFIN_VERSION} ${app}
  154.  
  155.  
  156. cd
  157.  
  158. cat << 'EOF' >> $HOME/.bashrc
  159. alias jellyfin='tmux new-session -d -s "jellyfin" "export DOTNET_ROOT=~/.bin/dotnet && export JELLYFIN_DATA_DIR=~/.config/jellyfin && JELLYFIN_LOG_DIR=~/.config/jellyfin/log && nice -n 19 sh -c ~/.bin/jellyfin/jellyfin"'
  160. alias sonarr='tmux new-session -d -s "sonarr" "mono ~/.bin/Sonarr/Sonarr.exe --data=~/.config/sonarr; exec $SHELL"'
  161. alias radarr='tmux new-session -d -s "radarr" "~/.bin/Radarr/Radarr -nobrowser -data=~/.config/radarr; exec $SHELL"'
  162. alias prowlarr='tmux new-session -d -s "prowlarr" -n "prowlarr" "~/.bin/Prowlarr/Prowlarr -nobrowser -data=~/.config/prowlarr; exec $SHELL"'
  163. alias cloudplow='tmux new-session -d -s "cloudplow" "source ~/.bin/cloudplow/bin/activate && python3 ~/.bin/cloudplow/cloudplow/cloudplow.py run --config=~/.config/cloudplow/config.json --loglevel=DEBUG --cachefile=~/.config/cloudplow/cache.db --logfile=~/.config/cloudplow/cloudplow.log"'
  164. alias sabnzbd='tmux new-session -d -s "sabnzbd" "source ~/.bin/sabnzbd/bin/activate && /usr/bin/nice -n 19 python3 ~/.bin/sabnzbd/sabnzbd/SABnzbd.py -b 0 -f ~/.config/sabnzbd/sabnzbd.ini"'
  165. EOF
  166.  
  167. USERNAME=$(whoami)
  168. cat << EOF > $HOME/.lighttpd/custom
  169. $HTTP["url"] =~ "^/sonarr($|/)" {
  170. proxy.header = ( "map-urlpath" => (
  171. "/sonarr-hd" => "/public-$USERNAME/sonarr-hd"
  172. ) )
  173. proxy.server = ( "" => ( (
  174. "host" => "127.0.0.1",
  175. "port" => $SONARR_PORT
  176. ) ) )
  177. }
  178.  
  179. $HTTP["url"] =~ "^/radarr($|/)" {
  180. proxy.header = ( "map-urlpath" => (
  181. "/radarr-hd" => "/public-$USERNAME/radarr-hd"
  182. ) )
  183. proxy.server = ( "" => ( (
  184. "host" => "127.0.0.1",
  185. "port" => $RADARR_PORT
  186. ) ) )
  187. }
  188.  
  189. $HTTP["url"] =~ "^/sabnzbd($|/)" {
  190. proxy.header = ( "map-urlpath" => (
  191. "/sabnzbd" => "/public-$USERNAME/sabnzbd"
  192. ) )
  193. proxy.server = ( "" => ( (
  194. "host" => "127.0.0.1",
  195. "port" => $SABNZBD_PORT
  196. ) ) )
  197. }
  198.  
  199. $HTTP["url"] =~ "^/prowlarr($|/)" {
  200. proxy.server = ( "" => ( (
  201. "host" => "127.0.0.1",
  202. "port" => $PROWLARR_PORT
  203. ) ) ),
  204. proxy.header = ( "map-urlpath" => (
  205. "/prowlarr" => "/public-$USERNAME/prowlarr"
  206. ) )
  207. }
  208.  
  209. $HTTP["url"] =~ "^/jellyfin($|/)" {
  210. proxy.header = ( "map-urlpath" => (
  211. "/jellyfin" => "/public-$USERNAME/jellyfin"
  212. ) )
  213. proxy.server = ( "" => ( (
  214. "host" => "127.0.0.1",
  215. "port" => $JELLYFIN_PORT
  216. ) ) )
  217. }
  218. EOF
Advertisement
Add Comment
Please, Sign In to add comment