-
-
Save ADRFranklin/1130e906d35e7eb24ac275ba9e715de5 to your computer and use it in GitHub Desktop.
Appbox installer for radarr, sonarr, flexget, filebot, couchpotato, sickrage, nzbget, nzbget, ombi, jackett & synclounge. See the first comment for instructions how to run!
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env bash | |
# Appbox installer for radarr, sonarr, flexget, filebot, couchpotato, sickrage, nzbget, nzbget, ombi, jackett & synclounge. | |
# | |
# Just run this on your Ubuntu VNC app via SSH or in the terminal (Applications > Terminal Emulator) using: | |
# sudo bash -c "bash <(curl -Ls https://gist.github.com/coder8338/a614f156c916b35becf11c53352b499a/raw)" | |
# | |
# I do not work for appbox, just a friendly user helping others out, I will try to keep this as update to date as possible! | |
set -e | |
set -u | |
export DEBIAN_FRONTEND=noninteractive | |
run_as_root() { | |
if ! whoami | grep -q 'root'; then | |
echo "Please enter your user password, then run this script again!" | |
sudo -s | |
return 0 | |
fi | |
} | |
install_nginx() { | |
echo -n "Checking if nginx is installed: " | |
if [ -f /etc/nginx/sites-enabled/default ]; then | |
echo "[ YES ]" | |
if ! grep -q "proxy_set_header" /etc/nginx/sites-enabled/default; then | |
sed -i '/server_name _/a \ \n\ \ \ \ \ \ \ \ proxy_set_header X-Real-IP $remote_addr;\n\ \ \ \ \ \ \ \ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n\ \ \ \ \ \ \ \ proxy_set_header X-Forwarded-Proto $scheme;\n\ \ \ \ \ \ \ \ proxy_set_header X-Forwarded-Host $http_host;' /etc/nginx/sites-enabled/default | |
fi | |
else | |
if which nginx; then | |
echo "[ YES ]" | |
echo "nginx is already installed, but /etc/nginx/sites-enabled/default doesn't exist!" | |
echo "Please uninstall nginx and completely remove the /etc/nginx folder, try: sudo apt-get purge nginx nginx-common" | |
return 1 | |
fi | |
echo "[ NO ]" | |
echo "Installing nginx" | |
apt update | |
apt install -y nginx openssl || true | |
if ! grep -q "proxy_set_header" /etc/nginx/sites-enabled/default; then | |
sed -i '/server_name _/a \ \n\ \ \ \ \ \ \ \ proxy_set_header X-Real-IP $remote_addr;\n\ \ \ \ \ \ \ \ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n\ \ \ \ \ \ \ \ proxy_set_header X-Forwarded-Proto $scheme;\n\ \ \ \ \ \ \ \ proxy_set_header X-Forwarded-Host $http_host;' /etc/nginx/sites-enabled/default | |
fi | |
fi | |
if [ ! -f /etc/supervisor/conf.d/nginx.conf ]; then | |
cat << EOF > /etc/supervisor/conf.d/nginx.conf | |
[program:nginx] | |
command=/usr/sbin/nginx -g "daemon off;" | |
autostart=true | |
autorestart=true | |
priority=5 | |
stdout_events_enabled=true | |
stderr_events_enabled=true | |
stdout_logfile=/tmp/nginx.log | |
stdout_logfile_maxbytes=0 | |
stderr_logfile=/tmp/nginx.log | |
stderr_logfile_maxbytes=0 | |
EOF | |
fi | |
} | |
configure_nginx() { | |
NAME=$1 | |
PORT=$2 | |
APPBOX_USER=$(echo "${HOSTNAME}" | awk -F'.' '{print $2}') | |
if ! grep -q "/${NAME} {" /etc/nginx/sites-enabled/default; then | |
sed -i '/server_name _/a \ \n\ \ \ \ \ \ \ \ location /'${NAME}' {\n \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ proxy_pass http://127.0.0.1:'${PORT}';\n\ \ \ \ \ \ \ \ }' /etc/nginx/sites-enabled/default | |
fi | |
supervisorctl update | |
supervisorctl start ${NAME} || true | |
pkill -HUP nginx | |
echo -e "\n\n\n\n\n | |
Installation sucessful! Please point your browser to: | |
\e[4mhttps://${HOSTNAME}/${NAME}\e[39m\e[0m | |
You can continue the configuration from there. | |
\e[96mMake sure you protect the app by setting up and username/password in the app's settings!\e[39m | |
\e[91mIf you want to use another appbox app in the settings of ${NAME}, make sure you access it on port 80, and without https, for example: | |
\e[4mhttp://rutorrent.${APPBOX_USER}.appboxes.co\e[39m\e[0m | |
\e[95mIf you want to access Plex from one of these installed apps use port 32400 for example: | |
\e[4mhttp://plex.${APPBOX_USER}.appboxes.co:32400\e[39m\e[0m | |
That's because inside this container, we don't go through the appbox proxy! \n\n\n\n\n\n" | |
} | |
setup_radarr() { | |
supervisorctl stop radarr || true | |
cd /opt | |
curl -L -O $( curl -s https://api.github.com/repos/Radarr/Radarr/releases | grep linux.tar.gz | grep browser_download_url | head -1 | cut -d \" -f 4 ) | |
tar -xvzf Radarr.develop.*.linux.tar.gz | |
rm -f Radarr.develop.*.linux.tar.gz | |
chown -R appbox:appbox /opt | |
# Generate config | |
/bin/su -s /bin/bash -c "/usr/bin/mono --debug /opt/Radarr/Radarr.exe -nobrowser" appbox & | |
until grep -q 'UrlBase' /home/appbox/.config/Radarr/config.xml; do | |
sleep 1 | |
done | |
kill -9 $(ps aux | grep 'mono' | grep 'Radarr.exe' | grep -v 'bash' | awk '{print $2}') | |
sed -i 's@<UrlBase></UrlBase>@<UrlBase>/radarr</UrlBase>@g' /home/appbox/.config/Radarr/config.xml | |
cat << EOF > /etc/supervisor/conf.d/radarr.conf | |
[program:radarr] | |
command=/bin/su -s /bin/bash -c "rm /home/appbox/.config/Radarr/nzbdrone.pid; /usr/bin/mono --debug /opt/Radarr/Radarr.exe -nobrowser" appbox | |
autostart=true | |
autorestart=true | |
priority=5 | |
stdout_events_enabled=true | |
stderr_events_enabled=true | |
stdout_logfile=/tmp/radarr.log | |
stdout_logfile_maxbytes=0 | |
stderr_logfile=/tmp/radarr.log | |
stderr_logfile_maxbytes=0 | |
EOF | |
configure_nginx 'radarr' '7878' | |
} | |
setup_radarr_v3() { | |
supervisorctl stop radarr || true | |
cd /opt | |
apt install -y libmediainfo0v5 | |
curl -L -o Radarr.aphrodite.linux-core-x64.tar.gz "https://dev.azure.com/Radarr/Radarr/_apis/build/builds/1276/artifacts?artifactName=Packages&fileId=E73DCE3298203A462B0C0C9A9870C1F64886924459CADA36757E5A06C6C7FCDB02&fileName=Radarr.aphrodite.3.0.0.3055.linux-core-x64.tar.gz&api-version=5.1" | |
tar -xvzf Radarr.aphrodite.linux-core-x64.tar.gz | |
rm -f Radarr.aphrodite.linux-core-x64.tar.gz | |
chown -R appbox:appbox /opt | |
# Generate config | |
/bin/su -s /bin/bash -c "/opt/Radarr/Radarr" appbox >/dev/null & | |
until grep -q 'UrlBase' /home/appbox/.config/Radarr/config.xml; do | |
sleep 1 | |
done | |
kill -9 $(ps aux | grep 'Radarr' | grep -v 'bash' | awk '{print $2}') | |
sed -i 's@<UrlBase></UrlBase>@<UrlBase>/radarr</UrlBase>@g' /home/appbox/.config/Radarr/config.xml | |
cat << EOF > /etc/supervisor/conf.d/radarr.conf | |
[program:radarr] | |
command=/bin/su -s /bin/bash -c "rm /home/appbox/.config/Radarr/nzbdrone.pid; /opt/Radarr/Radarr -nobrowser" appbox >/dev/null | |
autostart=true | |
autorestart=true | |
priority=5 | |
stdout_events_enabled=true | |
stderr_events_enabled=true | |
stdout_logfile=/tmp/radarr.log | |
stdout_logfile_maxbytes=0 | |
stderr_logfile=/tmp/radarr.log | |
stderr_logfile_maxbytes=0 | |
EOF | |
configure_nginx 'radarr' '7878' | |
} | |
setup_sonarr() { | |
supervisorctl stop sonarr || true | |
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 2009837CBFFD68F45BC180471F4F90DE2A9B4BF8 | |
echo "deb https://apt.sonarr.tv/ubuntu bionic main" | tee /etc/apt/sources.list.d/sonarr.list | |
apt update | |
apt install -y debconf-utils | |
echo "sonarr sonarr/owning_user string appbox" | debconf-set-selections | |
echo "sonarr sonarr/owning_group string appbox" | debconf-set-selections | |
apt -y install sonarr || true | |
# Generate config | |
/bin/su -s /bin/bash -c "/usr/bin/mono --debug /usr/lib/sonarr/bin/Sonarr.exe -nobrowser" appbox & | |
until grep -q 'UrlBase' /home/appbox/.config/Sonarr/config.xml; do | |
sleep 1 | |
done | |
sleep 5 | |
kill -9 $(ps aux | grep 'mono' | grep 'Sonarr.exe' | grep -v 'bash' | awk '{print $2}') | |
sed -i 's@<UrlBase></UrlBase>@<UrlBase>/sonarr</UrlBase>@g' /home/appbox/.config/Sonarr/config.xml | |
cat << EOF > /etc/supervisor/conf.d/sonarr.conf | |
[program:sonarr] | |
command=/bin/su -s /bin/bash -c "rm /home/appbox/.config/Sonarr/sonarr.pid; /usr/bin/mono --debug /usr/lib/sonarr/bin/Sonarr.exe -nobrowser" appbox | |
autostart=true | |
autorestart=true | |
priority=5 | |
stdout_events_enabled=true | |
stderr_events_enabled=true | |
stdout_logfile=/tmp/sonarr.log | |
stdout_logfile_maxbytes=0 | |
stderr_logfile=/tmp/sonarr.log | |
stderr_logfile_maxbytes=0 | |
EOF | |
configure_nginx 'sonarr' '8989' | |
} | |
setup_sonarr_v3() { | |
supervisorctl stop sonarr || true | |
cd /opt | |
apt install -y libmediainfo0v5 | |
curl -L -o Sonarr.phantom-develop.linux.tar.gz "http://download.sonarr.tv/v3/phantom-develop/3.0.3.885/Sonarr.phantom-develop.3.0.3.885.linux.tar.gz" | |
tar -xvzf Sonarr.phantom-develop.linux.tar.gz | |
rm -f Sonarr.phantom-develop.linux.tar.gz | |
chown -R appbox:appbox /opt | |
# Generate config | |
/bin/su -s /bin/bash -c "/usr/bin/mono --debug /opt/Sonarr/Sonarr.exe -nobrowser" appbox >/dev/null & | |
until grep -q 'UrlBase' /home/appbox/.config/Sonarr/config.xml; do | |
sleep 1 | |
done | |
sleep 5 | |
kill -9 $(ps aux | grep 'mono' | grep 'Sonarr.exe' | grep -v 'bash' | awk '{print $2}') | |
sed -i 's@<UrlBase></UrlBase>@<UrlBase>/sonarr</UrlBase>@g' /home/appbox/.config/Sonarr/config.xml | |
cat << EOF > /etc/supervisor/conf.d/sonarr.conf | |
[program:sonarr] | |
command=/bin/su -s /bin/bash -c "rm /home/appbox/.config/Sonarr/nzbdrone.pid; /usr/bin/mono --debug /opt/Sonarr/Sonarr.exe -nobrowser" appbox >/dev/null | |
autostart=true | |
autorestart=true | |
priority=5 | |
stdout_events_enabled=true | |
stderr_events_enabled=true | |
stdout_logfile=/tmp/radarr.log | |
stdout_logfile_maxbytes=0 | |
stderr_logfile=/tmp/radarr.log | |
stderr_logfile_maxbytes=0 | |
EOF | |
configure_nginx 'sonarr' '8989' | |
} | |
setup_flexget() { | |
supervisorctl stop flexget || true | |
apt install -y \ | |
python-pip \ | |
libcap2-bin \ | |
curl || true | |
pip install --upgrade pip && \ | |
hash -r pip && \ | |
pip install --upgrade setuptools && \ | |
pip install flexget[webui] | |
mkdir -p /home/appbox/.config/flexget | |
chown -R appbox:appbox /home/appbox/.config/flexget | |
cat << EOF > /home/appbox/.config/flexget/config.yml | |
templates: | |
Example-Template: | |
accept_all: yes | |
download: /APPBOX_DATA/storage | |
tasks: | |
Task-1: | |
rss: 'http://example' | |
template: 'Example Template' | |
schedules: | |
- tasks: 'Task-1' | |
interval: | |
minutes: 1 | |
web_server: | |
bind: 0.0.0.0 | |
port: 9797 | |
web_ui: yes | |
base_url: /flexget | |
run_v2: yes | |
EOF | |
cat << EOF > /tmp/flexpasswd | |
#!/usr/bin/env bash | |
GOOD_PASSWORD=0 | |
until [ "\${GOOD_PASSWORD}" == "1" ]; do | |
echo 'Please enter a password for flexget' | |
read FLEXGET_PASSWORD | |
if ! flexget web passwd "\${FLEXGET_PASSWORD}" | grep -q 'is not strong enough'; then | |
GOOD_PASSWORD=1 | |
else | |
echo -e 'Your password is not strong enough, please enter a few more words.'; | |
fi | |
done | |
EOF | |
chmod +x /tmp/flexpasswd | |
/bin/su -s /bin/bash -c "/tmp/flexpasswd" appbox | |
rm -f /tmp/flexpasswd | |
cat << EOF > /etc/supervisor/conf.d/flexget.conf | |
[program:flexget] | |
command=/bin/su -s /bin/bash -c "flexget daemon start" appbox | |
autostart=true | |
autorestart=true | |
priority=5 | |
stdout_events_enabled=true | |
stderr_events_enabled=true | |
stdout_logfile=/tmp/flexget.log | |
stdout_logfile_maxbytes=0 | |
stderr_logfile=/tmp/flexget.log | |
stderr_logfile_maxbytes=0 | |
EOF | |
configure_nginx 'flexget' '9797' | |
} | |
setup_filebot() { | |
wget -c --no-cookies --no-check-certificate -O /var/cache/oracle-jdk11-installer-local/jdk-11.0.7_linux-x64_bin.tar.gz --header "Cookie: oraclelicense=accept-securebackup-cookie" https://download.oracle.com/otn-pub/java/jdk/11.0.7%2B8/8c7daf89330c48f0b9e32f57169f7bac/jdk-11.0.7_linux-x64_bin.tar.gz | |
add-apt-repository -y ppa:linuxuprising/java | |
apt update | |
apt-get install -y oracle-java11-installer-local libchromaprint-tools || true | |
mkdir /opt/filebot && cd /opt/filebot | |
sh -xu <<< "$(curl -fsSL https://raw.githubusercontent.com/filebot/plugins/master/installer/tar.sh)" | |
cat << EOF > /home/appbox/Desktop/Filebot.desktop | |
#!/usr/bin/env xdg-open | |
[Desktop Entry] | |
Version=1.0 | |
Type=Application | |
Terminal=false | |
Exec=/usr/local/bin/filebot | |
Name=Filebot | |
Comment=Filebot | |
EOF | |
chown appbox:appbox /home/appbox/Desktop/Filebot.desktop | |
chmod +x /home/appbox/Desktop/Filebot.desktop | |
echo -e "\n\n\n\n\n | |
Installation sucessful! Please launch filebot using the icon on your desktop." | |
} | |
setup_couchpotato() { | |
supervisorctl stop couchpotato || true | |
apt-get install python git -y || true | |
mkdir /opt/couchpotato && cd /opt/couchpotato | |
git clone https://github.com/RuudBurger/CouchPotatoServer.git | |
cat << EOF > /etc/default/couchpotato | |
CP_USER=appbox | |
CP_HOME=/opt/couchpotato/CouchPotatoServer | |
CP_DATA=/home/appbox/couchpotato | |
EOF | |
chown appbox:appbox /opt/ | |
cp CouchPotatoServer/init/ubuntu /etc/init.d/couchpotato | |
chmod +x /etc/init.d/couchpotato | |
sed -i 's/--daemon//g' /etc/init.d/couchpotato | |
sed -i 's/--quiet//g' /etc/init.d/couchpotato | |
cat << EOF > /etc/supervisor/conf.d/couchpotato.conf | |
[program:couchpotato] | |
command=/etc/init.d/couchpotato start | |
autostart=true | |
autorestart=true | |
priority=5 | |
stdout_events_enabled=true | |
stderr_events_enabled=true | |
stdout_logfile=/tmp/couchpotato.log | |
stdout_logfile_maxbytes=0 | |
stderr_logfile=/tmp/couchpotato.log | |
stderr_logfile_maxbytes=0 | |
EOF | |
mkdir -p /home/appbox/couchpotato/ | |
cat << EOF > /home/appbox/couchpotato/settings.conf | |
[core] | |
url_base = /couchpotato | |
show_wizard = 1 | |
launch_browser = False | |
EOF | |
chown -R appbox:appbox /home/appbox/couchpotato | |
configure_nginx 'couchpotato' '5050' | |
} | |
setup_sickchill() { | |
supervisorctl stop sickchill || true | |
apt install -y git unrar-free git openssl libssl-dev python2.7 || true | |
git clone https://github.com/SickChill/SickChill.git /home/appbox/sickchill | |
cp /home/appbox/sickchill/runscripts/init.ubuntu /etc/init.d/sickchill | |
chmod +x /etc/init.d/sickchill | |
sed -i 's/--daemon//g' /etc/init.d/sickchill | |
cat << EOF > /etc/default/sickchill | |
SR_HOME=/home/appbox/sickchill/ | |
SR_DATA=/home/appbox/sickchill/ | |
SR_USER=appbox | |
EOF | |
mkdir -p /home/appbox/sickchill/ | |
cat << EOF >/home/appbox/sickchill/config.ini | |
[General] | |
web_host = 0.0.0.0 | |
handle_reverse_proxy = 1 | |
launch_browser = 0 | |
web_root = "/sickchill" | |
EOF | |
cat << EOF > /etc/supervisor/conf.d/sickchill.conf | |
[program:sickchill] | |
command=/etc/init.d/sickchill start | |
autostart=true | |
autorestart=true | |
priority=5 | |
stdout_events_enabled=true | |
stderr_events_enabled=true | |
stdout_logfile=/tmp/sickchill.log | |
stdout_logfile_maxbytes=0 | |
stderr_logfile=/tmp/sickchill.log | |
stderr_logfile_maxbytes=0 | |
EOF | |
chown -R appbox:appbox /home/appbox/sickchill | |
configure_nginx 'sickchill' '8081' | |
} | |
setup_nzbget() { | |
supervisorctl stop nzbget || true | |
mkdir /tmp/nzbget | |
wget -O /tmp/nzbget/nzbget.run https://nzbget.net/download/nzbget-latest-bin-linux.run | |
chown appbox:appbox /tmp/nzbget/nzbget.run | |
/bin/su -s /bin/bash -c "sh /tmp/nzbget/nzbget.run" appbox | |
rm -rf /tmp/nzbget | |
cat << EOF > /etc/supervisor/conf.d/nzbget.conf | |
[program:nzbget] | |
command=/bin/su -s /bin/bash -c "/home/appbox/nzbget/nzbget -s" appbox | |
autostart=true | |
autorestart=true | |
priority=5 | |
stdout_events_enabled=true | |
stderr_events_enabled=true | |
stdout_logfile=/tmp/nzbget.log | |
stdout_logfile_maxbytes=0 | |
stderr_logfile=/tmp/nzbget.log | |
stderr_logfile_maxbytes=0 | |
EOF | |
configure_nginx 'nzbget' '6789' | |
} | |
setup_sabnzbdplus() { | |
supervisorctl stop sabnzbd || true | |
add-apt-repository -y ppa:jcfp/ppa | |
apt-get install -y sabnzbdplus | |
sed -i 's/--daemon//g' /etc/init.d/sabnzbdplus | |
cat << EOF > /etc/supervisor/conf.d/sabnzbdplus.conf | |
[program:sabnzbdplus] | |
command=/etc/init.d/sabnzbdplus start | |
autostart=true | |
autorestart=true | |
priority=5 | |
stdout_events_enabled=true | |
stderr_events_enabled=true | |
stdout_logfile=/tmp/sabnzbdplus.log | |
stdout_logfile_maxbytes=0 | |
stderr_logfile=/tmp/sabnzbdplus.log | |
stderr_logfile_maxbytes=0 | |
EOF | |
cat << EOF > /etc/default/sabnzbdplus | |
USER=appbox | |
HOST=0.0.0.0 | |
PORT=9090 | |
EXTRAOPTS=-b0 | |
EOF | |
configure_nginx 'sabnzbd' '9090' | |
} | |
setup_ombi() { | |
supervisorctl stop ombi || true | |
update-locale "LANG=en_US.UTF-8" | |
locale-gen --purge "en_US.UTF-8" | |
dpkg-reconfigure --frontend noninteractive locales | |
echo "deb [arch=amd64,armhf] http://repo.ombi.turd.me/stable/ jessie main" | sudo tee "/etc/apt/sources.list.d/ombi.list" | |
wget -qO - https://repo.ombi.turd.me/pubkey.txt | sudo apt-key add - | |
apt update && apt -y install ombi || true | |
chown -R appbox:appbox /opt | |
mkdir -p /home/appbox/ombi | |
chown -R appbox:appbox /home/appbox/ombi | |
cat << EOF > /etc/supervisor/conf.d/ombi.conf | |
[program:ombi] | |
command=/bin/su -s /bin/bash -c "cd /opt/Ombi; /opt/Ombi/Ombi --baseurl /ombi --host http://*:5000 --storage /home/appbox/ombi/" appbox | |
autostart=true | |
autorestart=true | |
priority=5 | |
stdout_events_enabled=true | |
stderr_events_enabled=true | |
stdout_logfile=/tmp/ombi.log | |
stdout_logfile_maxbytes=0 | |
stderr_logfile=/tmp/ombi.log | |
stderr_logfile_maxbytes=0 | |
EOF | |
configure_nginx 'ombi' '5000' | |
} | |
setup_jackett() { | |
supervisorctl stop jackett || true | |
apt install -y libicu60 openssl1.0 | |
cd /opt | |
curl -L -O $( curl -s https://api.github.com/repos/Jackett/Jackett/releases | grep LinuxAMDx64 | grep browser_download_url | head -1 | cut -d \" -f 4 ) | |
tar -xvzf Jackett.Binaries.LinuxAMDx64.tar.gz | |
rm -f Jackett.Binaries.LinuxAMDx64.tar.gz | |
chown -R appbox:appbox /opt | |
mkdir -p /home/appbox/.config/Jackett | |
cat << EOF > /home/appbox/.config/Jackett/ServerConfig.json | |
{ | |
"Port": 9117, | |
"AllowExternal": true, | |
"BasePathOverride": "/jackett", | |
} | |
EOF | |
chown -R appbox:appbox /home/appbox/.config/Jackett | |
cat << EOF > /etc/supervisor/conf.d/jackett.conf | |
[program:jackett] | |
command=/bin/su -s /bin/bash -c "/opt/Jackett/jackett" appbox | |
autostart=true | |
autorestart=true | |
priority=5 | |
stdout_events_enabled=true | |
stderr_events_enabled=true | |
stdout_logfile=/tmp/jackett.log | |
stdout_logfile_maxbytes=0 | |
stderr_logfile=/tmp/jackett.log | |
stderr_logfile_maxbytes=0 | |
EOF | |
configure_nginx 'jackett' '9117' | |
} | |
setup_synclounge() { | |
supervisorctl stop synclounge_server || true | |
supervisorctl stop synclounge || true | |
apt install -y git npm | |
git clone https://github.com/samcm/SyncLounge /opt/synclounge | |
cd /opt/synclounge | |
npm install | |
sed -i 's@"webroot": ""@"webroot": "/synclounge"@g' /opt/synclounge/settings.json | |
sed -i 's@"accessUrl": ""@"accessUrl": "https://'"${HOSTNAME}"'/synclounge"@g' /opt/synclounge/settings.json | |
sed -i 's@"serverroot": ""@"serverroot": "/synclounge_server"@g' /opt/synclounge/settings.json | |
sed -i 's@"autoJoin": false@"autoJoin": true@g' /opt/synclounge/settings.json | |
sed -i 's@"autoJoinServer": ""@"autoJoinServer": "http://'"${HOSTNAME}"'/synclounge_server"@g' /opt/synclounge/settings.json | |
sed -i '/webroot/a \ \ \ \ "customServer": "http://'"${HOSTNAME}"'/synclounge_server",' /opt/synclounge/settings.json | |
npm run build | |
chown -R appbox:appbox /opt/synclounge | |
cat << EOF > /etc/supervisor/conf.d/synclounge_webapp.conf | |
[program:synclounge_webapp] | |
command=/bin/su -s /bin/bash -c "cd /opt/synclounge && node webapp.js" appbox | |
autostart=true | |
autorestart=true | |
priority=5 | |
stdout_events_enabled=true | |
stderr_events_enabled=true | |
stdout_logfile=/tmp/synclounge_webapp.log | |
stdout_logfile_maxbytes=0 | |
stderr_logfile=/tmp/synclounge_webapp.log | |
stderr_logfile_maxbytes=0 | |
EOF | |
cat << EOF > /etc/supervisor/conf.d/synclounge_server.conf | |
[program:synclounge_server] | |
command=/bin/su -s /bin/bash -c "cd /opt/synclounge && npm run server" appbox | |
autostart=true | |
autorestart=true | |
priority=5 | |
stdout_events_enabled=true | |
stderr_events_enabled=true | |
stdout_logfile=/tmp/synclounge_server.log | |
stdout_logfile_maxbytes=0 | |
stderr_logfile=/tmp/synclounge_server.log | |
stderr_logfile_maxbytes=0 | |
EOF | |
configure_nginx 'synclounge_server' '8088' | |
configure_nginx 'synclounge' '8088' | |
} | |
install_prompt() { | |
echo "Welcome to the install script, please select one of the following options to install: | |
1) radarr | |
2) radarrV3 | |
3) sonarr | |
4) sonarrV3 | |
5) flexget | |
6) filebot | |
7) couchpotato | |
8) sickchill | |
9) nzbget | |
10) sabnzbdplus | |
11) ombi | |
12) jackett | |
13) synclounge | |
" | |
echo -n "Enter the option and press [ENTER]: " | |
read OPTION | |
echo | |
case "$OPTION" in | |
1|radarr) | |
echo "Setting up radarr.." | |
setup_radarr | |
;; | |
2|radarrV3) | |
echo "Setting up radarrV3.." | |
setup_radarr_v3 | |
;; | |
3|sonarr) | |
echo "Setting up sonarr.." | |
setup_sonarr | |
;; | |
4|sonarrV3) | |
echo "Setting up sonarrV3.." | |
setup_sonarr_v3 | |
;; | |
5|flexget) | |
echo "Setting up flexget.." | |
setup_flexget | |
;; | |
6|filebot) | |
echo "Setting up filebot.." | |
setup_filebot | |
;; | |
7|couchpotato) | |
echo "Setting up couchpotato.." | |
setup_couchpotato | |
;; | |
8|sickchill) | |
echo "Setting up sickchill.." | |
setup_sickchill | |
;; | |
9|nzbget) | |
echo "Setting up nzbget.." | |
setup_nzbget | |
;; | |
10|nzbget) | |
echo "Setting up sabnzbdplus.." | |
setup_sabnzbdplus | |
;; | |
11|ombi) | |
echo "Setting up ombi.." | |
setup_ombi | |
;; | |
12|jackett) | |
echo "Setting up jackett.." | |
setup_jackett | |
;; | |
13|synclounge) | |
echo "Setting up synclounge.." | |
setup_synclounge | |
;; | |
*) | |
echo "Sorry, that option doesn't exist, please try again!" | |
return 1 | |
;; | |
esac | |
} | |
run_as_root | |
install_nginx | |
echo -e "\nEnsuring opt exists..." | |
mkdir -p /opt | |
echo -e "\nUpdating apt packages..." | |
apt update | |
until install_prompt ; do : ; done |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment