#!/bin/bash ############################################################################### # beStream - *Arr Services Installation Script for Ubuntu/Debian # # This script automates the installation of: # - Radarr (Movies) - Port 7878 # - Sonarr (TV Shows) - Port 8989 # - Lidarr (Music) - Port 8686 # # Usage: sudo bash install-arr-services.sh ############################################################################### set -e # Exit on error # Colors for output RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' BLUE='\033[0;34m' NC='\033[0m' # No Color # Configuration ARR_USER="arr" ARR_GROUP="media" RADARR_PORT=7878 SONARR_PORT=8989 LIDARR_PORT=8686 # Detect architecture ARCH=$(dpkg --print-architecture) case $ARCH in amd64) ARCH="x64" ;; arm64) ARCH="arm64" ;; armhf|armv7l) ARCH="arm" ;; *) echo -e "${RED}Unsupported architecture: $ARCH${NC}" exit 1 ;; esac echo -e "${BLUE}========================================${NC}" echo -e "${BLUE} beStream *Arr Services Installer${NC}" echo -e "${BLUE}========================================${NC}" echo "" echo -e "${YELLOW}Detected Architecture: $ARCH${NC}" echo -e "${YELLOW}Services to install:${NC}" echo -e " - Radarr (Movies) - Port $RADARR_PORT" echo -e " - Sonarr (TV Shows) - Port $SONARR_PORT" echo -e " - Lidarr (Music) - Port $LIDARR_PORT" echo "" # Check if running as root if [ "$EUID" -ne 0 ]; then echo -e "${RED}Please run as root (use sudo)${NC}" exit 1 fi ############################################################################### # Step 1: Install Prerequisites ############################################################################### echo -e "${GREEN}[1/8] Installing prerequisites...${NC}" apt update apt install -y curl wget sqlite3 mediainfo libchromaprint-tools ufw ############################################################################### # Step 2: Configure Firewall ############################################################################### echo -e "${GREEN}[2/8] Configuring firewall...${NC}" # Check if UFW is active if ufw status | grep -q "Status: active"; then echo -e "${YELLOW}UFW is active, opening ports...${NC}" ufw allow $RADARR_PORT/tcp comment 'Radarr' ufw allow $SONARR_PORT/tcp comment 'Sonarr' ufw allow $LIDARR_PORT/tcp comment 'Lidarr' echo -e "${GREEN}Ports opened: $RADARR_PORT (Radarr), $SONARR_PORT (Sonarr), $LIDARR_PORT (Lidarr)${NC}" else echo -e "${YELLOW}UFW is not active. To enable and open ports, run:${NC}" echo -e " ${BLUE}sudo ufw enable${NC}" echo -e " ${BLUE}sudo ufw allow $RADARR_PORT/tcp${NC}" echo -e " ${BLUE}sudo ufw allow $SONARR_PORT/tcp${NC}" echo -e " ${BLUE}sudo ufw allow $LIDARR_PORT/tcp${NC}" fi ############################################################################### # Step 3: Create User and Group ############################################################################### echo -e "${GREEN}[3/8] Creating user and group...${NC}" # Create media group if it doesn't exist if ! getent group $ARR_GROUP > /dev/null 2>&1; then groupadd $ARR_GROUP echo -e "${GREEN}Created group: $ARR_GROUP${NC}" else echo -e "${YELLOW}Group $ARR_GROUP already exists${NC}" fi # Create arr user if it doesn't exist if ! id "$ARR_USER" &>/dev/null; then useradd -r -g $ARR_GROUP -s /bin/false -d /var/lib/$ARR_USER $ARR_USER echo -e "${GREEN}Created user: $ARR_USER${NC}" else echo -e "${YELLOW}User $ARR_USER already exists${NC}" # Ensure user is in media group usermod -a -G $ARR_GROUP $ARR_USER fi ############################################################################### # Step 4: Create Data Directories ############################################################################### echo -e "${GREEN}[4/8] Creating data directories...${NC}" mkdir -p /var/lib/radarr mkdir -p /var/lib/sonarr mkdir -p /var/lib/lidarr chown -R $ARR_USER:$ARR_GROUP /var/lib/radarr chown -R $ARR_USER:$ARR_GROUP /var/lib/sonarr chown -R $ARR_USER:$ARR_GROUP /var/lib/lidarr ############################################################################### # Step 5: Install Radarr ############################################################################### echo -e "${GREEN}[5/8] Installing Radarr...${NC}" if [ -d "/opt/Radarr" ]; then echo -e "${YELLOW}Radarr already installed, skipping...${NC}" else cd /tmp wget --content-disposition "http://radarr.servarr.com/v1/update/master/updatefile?os=linux&runtime=netcore&arch=$ARCH" -O radarr.tar.gz tar -xvzf radarr.tar.gz mv Radarr /opt/ chown -R $ARR_USER:$ARR_GROUP /opt/Radarr rm -f radarr.tar.gz echo -e "${GREEN}Radarr installed successfully${NC}" fi ############################################################################### # Step 6: Install Sonarr ############################################################################### echo -e "${GREEN}[6/8] Installing Sonarr...${NC}" if [ -d "/opt/Sonarr" ]; then echo -e "${YELLOW}Sonarr already installed, skipping...${NC}" else cd /tmp wget -qO install-sonarr.sh https://raw.githubusercontent.com/Sonarr/Sonarr/develop/distribution/debian/install.sh bash install-sonarr.sh < /etc/systemd/system/radarr.service < /etc/systemd/system/sonarr.service < /etc/systemd/system/lidarr.service <