summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoger Gonzalez <roger@rogs.me>2023-10-21 15:12:15 -0300
committerRoger Gonzalez <roger@rogs.me>2023-10-21 15:12:15 -0300
commitbc03b726ff90f21fb9633ba9cf1629c038f7b74a (patch)
tree4a5078a3c5d58417830e2985f9aa90b82ee675ce
parentf5c161dce195cf0b951977d70f6c15c29ff5c834 (diff)
Finished transition to literate
-rw-r--r--docs.org2
-rw-r--r--[-rwxr-xr-x]install.sh32
-rw-r--r--install_new.sh268
3 files changed, 1 insertions, 301 deletions
diff --git a/docs.org b/docs.org
index ab71780..fcac196 100644
--- a/docs.org
+++ b/docs.org
@@ -1,5 +1,5 @@
#+title: Docs
-#+PROPERTY: header-args :tangle install_new.sh
+#+PROPERTY: header-args :tangle install.sh
#+auto_tangle: t
* Table of contents :toc:
diff --git a/install.sh b/install.sh
index 2a14084..e6b0b08 100755..100644
--- a/install.sh
+++ b/install.sh
@@ -23,10 +23,6 @@ echo "To finish the installation of the CLI"
echo "===================================================="
echo ""
-# ============================================================================================
-# Functions to ease development
-# ============================================================================================
-
send_success_message() {
echo -e $(printf "\e[32m$1\e[0m")
}
@@ -65,9 +61,6 @@ running_services_location() {
echo "Portainer: http://$host_ip:9000/"
}
-# ============================================================================================
-# Check all the prerequisites are installed before continuing
-# ============================================================================================
echo "Checking prerequisites..."
@@ -78,14 +71,8 @@ if [[ "$EUID" = 0 ]]; then
send_error_message "YAMS has to run without sudo! Please, run it again with regular permissions"
fi
-# ============================================================================================
-
-# ============================================================================================
-# Gathering information
-# ============================================================================================
read -p "Where do you want to install the docker-compose file? [/opt/yams]: " install_location
-# Checking if the install_location exists
install_location=${install_location:-/opt/yams}
[[ -f "$install_location" ]] || mkdir -p "$install_location" || send_error_message "There was an error with your install location! Make sure the directory exists and the user \"$USER\" has permissions on it"
install_location=$(realpath "$install_location")
@@ -93,7 +80,6 @@ filename="$install_location/docker-compose.yaml"
read -p "What's the user that is going to own the media server files? [$USER]: " username
-# Checking that the user exists
username=${username:-$USER}
if id -u "$username" &>/dev/null; then
@@ -106,8 +92,6 @@ fi
read -p "Please, input your media folder [/srv/media]: " media_folder
media_folder=${media_folder:-"/srv/media"}
-# Checking that the media folder exists
-
realpath "$media_folder" &>/dev/null || send_error_message "There was an error with your media folder! The directory \"$media_folder\" does not exist!"
media_folder=$(realpath "$media_folder")
@@ -119,7 +103,6 @@ if [ "$media_folder_correct" == "n" ]; then
send_error_message "Media folder is not correct. Please, fix it and run the script again"
fi
-# Setting the preferred media service
echo
echo
echo
@@ -144,7 +127,6 @@ else
send_error_message "\"$media_service\" is not supported by YAMS. Are you sure you chose the correct service?"
fi
-# Adding the VPN
echo
echo
echo
@@ -194,13 +176,7 @@ if [ "$setup_vpn" == "y" ]; then
fi
echo "Configuring the docker-compose file for the user \"$username\" on \"$install_location\"..."
-# ============================================================================================
-# ============================================================================================
-# Actually installing everything!
-# ============================================================================================
-
-# Copy the docker-compose file from the example to the real one
echo ""
echo "Copying $filename..."
@@ -239,22 +215,15 @@ if [ "$setup_vpn" == "y" ]; then
fi
fi
-# Set yams script
sed -i -e "s;<filename>;$filename;g" yams
sed -i -e "s;<install_location>;$install_location;g" yams
-
send_success_message "Everything installed correctly! 🎉"
echo "Running the server..."
echo "This is going to take a while..."
docker-compose -f "$filename" up -d
-# ============================================================================================
-
-# ============================================================================================
-# Cleaning up...
-# ============================================================================================
send_success_message "We need your sudo password to install the yams CLI and correct permissions..."
sudo cp yams /usr/local/bin/yams && sudo chmod +x /usr/local/bin/yams
@@ -297,4 +266,3 @@ echo "https://yams.media/config"
echo
echo "========================================================"
exit 0
-# ============================================================================================
diff --git a/install_new.sh b/install_new.sh
deleted file mode 100644
index e6b0b08..0000000
--- a/install_new.sh
+++ /dev/null
@@ -1,268 +0,0 @@
-#!/bin/bash
-set -euo pipefail
-
-printf "\033c"
-echo "===================================================="
-echo " ___ ___ ___ "
-echo " ___ / /\ /__/\ / /\ "
-echo " /__/| / /::\ | |::\ / /:/_ "
-echo " | |:| / /:/\:\ | |:|:\ / /:/ /\ "
-echo " | |:| / /:/~/::\ __|__|:|\:\ / /:/ /::\\"
-echo " __|__|:| /__/:/ /:/\:\ /__/::::| \:\ /__/:/ /:/\:\\"
-echo "/__/::::\ \ \:\/:/__\/ \ \:\~~\__\/ \ \:\/:/~/:/"
-echo " ~\~~\:\ \ \::/ \ \:\ \ \::/ /:/ "
-echo " \ \:\ \ \:\ \ \:\ \__\/ /:/ "
-echo " \__\/ \ \:\ \ \:\ /__/:/ "
-echo " \__\/ \__\/ \__\/ "
-echo "===================================================="
-echo "Welcome to YAMS (Yet Another Media Server)"
-echo "Installation process should be really quick"
-echo "We just need you to answer some questions"
-echo "We are going to ask for your sudo password in the end"
-echo "To finish the installation of the CLI"
-echo "===================================================="
-echo ""
-
-send_success_message() {
- echo -e $(printf "\e[32m$1\e[0m")
-}
-
-send_error_message() {
- echo -e $(printf "\e[31m$1\e[0m")
- exit 255
-}
-
-check_dependencides() {
- if command -v $1 &> /dev/null; then
- send_success_message "$1 exists ✅ "
- else
- echo -e $(printf "\e[31m ⚠️ $1 not found! ⚠️\e[0m")
- read -p "Do you want YAMS to install docker and docker-compose? IT ONLY WORKS ON DEBIAN AND UBUNTU! [y/N]: " install_docker
- install_docker=${install_docker:-"n"}
-
- if [ "$install_docker" == "y" ]; then
- bash ./docker.sh
- else
- send_error_message "Install docker and docker-compose and come back later!"
- fi
- fi
-}
-
-running_services_location() {
- host_ip=$(hostname -I | awk '{ print $1 }')
- echo "qBittorrent: http://$host_ip:8080/"
- echo "Radarr: http://$host_ip:7878/"
- echo "Sonarr: http://$host_ip:8989/"
- echo "Lidarr: http://$host_ip:8686/"
- echo "Readarr: http://$host_ip:8787/"
- echo "Prowlarr: http://$host_ip:9696/"
- echo "Bazarr: http://$host_ip:6767/"
- echo "$media_service: http://$host_ip:$media_service_port/"
- echo "Portainer: http://$host_ip:9000/"
-}
-
-echo "Checking prerequisites..."
-
-
-check_dependencides "docker"
-check_dependencides "docker-compose"
-
-if [[ "$EUID" = 0 ]]; then
- send_error_message "YAMS has to run without sudo! Please, run it again with regular permissions"
-fi
-
-read -p "Where do you want to install the docker-compose file? [/opt/yams]: " install_location
-
-install_location=${install_location:-/opt/yams}
-[[ -f "$install_location" ]] || mkdir -p "$install_location" || send_error_message "There was an error with your install location! Make sure the directory exists and the user \"$USER\" has permissions on it"
-install_location=$(realpath "$install_location")
-filename="$install_location/docker-compose.yaml"
-
-read -p "What's the user that is going to own the media server files? [$USER]: " username
-
-username=${username:-$USER}
-
-if id -u "$username" &>/dev/null; then
- puid=$(id -u "$username");
- pgid=$(id -g "$username");
-else
- send_error_message "The user \"$username\" doesn't exist!"
-fi
-
-read -p "Please, input your media folder [/srv/media]: " media_folder
-media_folder=${media_folder:-"/srv/media"}
-
-realpath "$media_folder" &>/dev/null || send_error_message "There was an error with your media folder! The directory \"$media_folder\" does not exist!"
-
-media_folder=$(realpath "$media_folder")
-
-read -p "Are you sure your media folder is \"$media_folder\"? [y/N]: " media_folder_correct
-media_folder_correct=${media_folder_correct:-"n"}
-
-if [ "$media_folder_correct" == "n" ]; then
- send_error_message "Media folder is not correct. Please, fix it and run the script again"
-fi
-
-echo
-echo
-echo
-echo "Time to choose your media service."
-echo "Your media service is the one responsible for serving your files to your network."
-echo "By default, YAMS support 3 media services:"
-echo "- jellyfin (recommended, easier)"
-echo "- emby"
-echo "- plex (advanced, always online)"
-read -p "Choose your media service [jellyfin]: " media_service
-media_service=${media_service:-"jellyfin"}
-media_service=$(echo "$media_service" | sed -e 's/\(.*\)/\L\1/')
-
-media_service_port=8096
-if [ "$media_service" == "plex" ]; then
- media_service_port=32400
-fi
-
-if echo "emby plex jellyfin" | grep -qw "$media_service"; then
- echo "YAMS is going to install \"$media_service\" on port \"$media_service_port\""
-else
- send_error_message "\"$media_service\" is not supported by YAMS. Are you sure you chose the correct service?"
-fi
-
-echo
-echo
-echo
-echo "Time to set up the VPN."
-echo "You can check the supported VPN list here: https://yams.media/advanced/vpn."
-read -p "Do you want to configure a VPN? [Y/n]: " setup_vpn
-setup_vpn=${setup_vpn:-"y"}
-
-if [ "$setup_vpn" == "y" ]; then
- read -p "What's your VPN service? (with spaces) [mullvad]: " vpn_service
- vpn_service=${vpn_service:-"mullvad"}
- echo
- echo "You should read $vpn_service's documentation in case it has different configurations for username and password."
- echo "The documentation for $vpn_service is here: https://github.com/qdm12/gluetun-wiki/blob/main/setup/providers/${vpn_service// /-}.md"
- echo
- read -p "What's your VPN username? (without spaces): " vpn_user
-
- unset vpn_password
- charcount=0
- prompt="What's your VPN password? (if you are using mullvad, just enter your username again): "
- while IFS= read -p "$prompt" -r -s -n 1 char
- do
- if [[ $char == $'\0' ]]
- then
- break
- fi
- if [[ $char == $'\177' ]] ; then
- if [ $charcount -gt 0 ] ; then
- charcount=$((charcount-1))
- prompt=$'\b \b'
- vpn_password="${vpn_password%?}"
- else
- prompt=''
- fi
- else
- charcount=$((charcount+1))
- prompt='*'
- vpn_password+="$char"
- fi
- done
- echo
-
- echo "What country do you want to use?"
- echo "If you are using: NordVPN, Perfect Privacy, Private Internet Access, VyprVPN, WeVPN or Windscribe, then input a region"
- read -p "You can check the countries/regions list for your VPN here: https://github.com/qdm12/gluetun/wiki/$vpn_service#servers [brazil]: " vpn_country
- vpn_country=${vpn_country:-"brazil"}
-fi
-
-echo "Configuring the docker-compose file for the user \"$username\" on \"$install_location\"..."
-
-echo ""
-echo "Copying $filename..."
-
-cp docker-compose.example.yaml "$filename" || send_error_message "Your user ($USER) needs to have permissions on the installation folder!"
-
-# Set PUID
-sed -i -e "s/<your_PUID>/$puid/g" "$filename"
-
-# Set PGID
-sed -i -e "s/<your_PGID>/$pgid/g" "$filename"
-
-# Set media_folder
-sed -i -e "s;<media_folder>;$media_folder;g" "$filename"
-
-# Set media_service
-sed -i -e "s;<media_service>;$media_service;g" "$filename"
-if [ "$media_service" == "plex" ]; then
- sed -i -e "s;#network_mode: host # plex;network_mode: host # plex;g" "$filename"
-fi
-
-# Set config folder
-sed -i -e "s;<install_location>;$install_location;g" "$filename"
-
-# Set VPN
-if [ "$setup_vpn" == "y" ]; then
- sed -i -e "s;<vpn_service>;$vpn_service;g" "$filename"
- sed -i -e "s;<vpn_user>;$vpn_user;g" "$filename"
- sed -i -e "s;<vpn_country>;$vpn_country;g" "$filename"
- sed -i -e "s;<vpn_password>;$vpn_password;g" "$filename"
- sed -i -e "s;#network_mode: \"service:gluetun\";network_mode: \"service:gluetun\";g" "$filename"
- sed -i -e "s;ports: # qbittorrent;#port: # qbittorrent;g" "$filename"
- sed -i -e "s;- 8080:8080 # qbittorrent;#- 8080:8080 # qbittorrent;g" "$filename"
- sed -i -e "s;#- 8080:8080/tcp # gluetun;- 8080:8080/tcp # gluetun;g" "$filename"
- if echo "nordvpn perfect privacy private internet access vyprvpn wevpn windscribe" | grep -qw "$vpn_service"; then
- sed -i -e "s;SERVER_COUNTRIES;SERVER_REGIONS;g" "$filename"
- fi
-fi
-
-sed -i -e "s;<filename>;$filename;g" yams
-sed -i -e "s;<install_location>;$install_location;g" yams
-
-send_success_message "Everything installed correctly! 🎉"
-
-echo "Running the server..."
-echo "This is going to take a while..."
-
-docker-compose -f "$filename" up -d
-
-send_success_message "We need your sudo password to install the yams CLI and correct permissions..."
-sudo cp yams /usr/local/bin/yams && sudo chmod +x /usr/local/bin/yams
-[[ -f "$media_folder" ]] || sudo mkdir -p "$media_folder" || send_error_message "There was an error with your install location!"
-sudo chown -R "$puid":"$pgid" "$media_folder"
-[[ -f $install_location/config ]] || sudo mkdir -p "$install_location/config"
-sudo chown -R "$puid":"$pgid" "$install_location"
-
-printf "\033c"
-
-echo "========================================================"
-echo " _____ ___ ___ ___ "
-echo " / /::\ / /\ /__/\ / /\ "
-echo " / /:/\:\ / /::\ \ \:\ / /:/_ "
-echo " / /:/ \:\ / /:/\:\ \ \:\ / /:/ /\ "
-echo " /__/:/ \__\:| / /:/ \:\ _____\__\:\ / /:/ /:/_ "
-echo " \ \:\ / /:/ /__/:/ \__\:\ /__/::::::::\ /__/:/ /:/ /\\"
-echo " \ \:\ /:/ \ \:\ / /:/ \ \:\~~\~~\/ \ \:\/:/ /:/"
-echo " \ \:\/:/ \ \:\ /:/ \ \:\ ~~~ \ \::/ /:/ "
-echo " \ \::/ \ \:\/:/ \ \:\ \ \:\/:/ "
-echo " \__\/ \ \::/ \ \:\ \ \::/ "
-echo " \__\/ \__\/ \__\/ "
-echo "========================================================"
-send_success_message "All done!✅ Enjoy YAMS!"
-echo "You can check the installation on $install_location"
-echo "========================================================"
-echo "Everything should be running now! To check everything running, go to:"
-echo
-running_services_location
-echo
-echo
-echo "You might need to wait for a couple of minutes while everything gets up and running"
-echo
-echo "All the services location are also saved in ~/yams_services.txt"
-running_services_location > ~/yams_services.txt
-echo "========================================================"
-echo
-echo "To configure YAMS, check the documentation at"
-echo "https://yams.media/config"
-echo
-echo "========================================================"
-exit 0