Upgraded YAMS version to v2.0 #60
90
docs.org
90
docs.org
@ -15,7 +15,8 @@
|
||||
- [[#verify-all-the-dependencies][Verify all the dependencies]]
|
||||
- [[#gather-all-the-required-information][Gather all the required information]]
|
||||
- [[#checking-install-location][Checking install location]]
|
||||
- [[#verify-media-folder][Verify media folder]]
|
||||
- [[#setting-the-correct-user][Setting the correct user]]
|
||||
- [[#media-directory][Media directory]]
|
||||
- [[#setting-perferred-media-service][Setting perferred media service]]
|
||||
- [[#setting-the-vpn][Setting the VPN]]
|
||||
- [[#installing-yams][Installing YAMS]]
|
||||
@ -25,7 +26,7 @@
|
||||
- [[#success-message][Success message!]]
|
||||
- [[#final-steps][Final steps]]
|
||||
- [[#install-the-yams-cli][Install the YAMS CLI]]
|
||||
- [[#create-and-set-the-correct-permissions-to-the-media-folder][Create and set the correct permissions to the media folder]]
|
||||
- [[#set-the-correct-permissions-to-the-media-folder][Set the correct permissions to the media folder]]
|
||||
- [[#create-the-config-directory][Create the config directory]]
|
||||
- [[#display-closing-message][Display closing message]]
|
||||
|
||||
@ -176,17 +177,29 @@ fi
|
||||
:END:
|
||||
|
||||
#+begin_src bash
|
||||
read -p "Where do you want to install the docker-compose file? [/opt/yams]: " install_location
|
||||
default_install_location="/opt/yams"
|
||||
|
||||
read -p "Where do you want to install the docker-compose file? [$default_install_location]: " install_location
|
||||
install_location=${install_location:-$default_install_location}
|
||||
|
||||
if [ ! -d "$install_location" ]; then
|
||||
if ! mkdir -p "$install_location"; then
|
||||
send_error_message "There was an error creating the installation directory at \"$install_location\". Make sure you have the necessary permissions."
|
||||
fi
|
||||
fi
|
||||
|
||||
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"
|
||||
custom_file_filename="$install_location/docker-compose.custom.yaml"
|
||||
env_file="$install_location/.env"
|
||||
#+end_src
|
||||
|
||||
** Setting the correct user
|
||||
:PROPERTIES:
|
||||
:ID: 7428d7b7-aec5-4638-b370-84e9055fb412
|
||||
:END:
|
||||
|
||||
#+begin_src bash
|
||||
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
|
||||
@ -195,26 +208,26 @@ if id -u "$username" &>/dev/null; then
|
||||
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"}
|
||||
#+end_src
|
||||
|
||||
** Verify media folder
|
||||
** Media directory
|
||||
:PROPERTIES:
|
||||
:ID: 9726dead-8833-4f23-98b8-2790d72605de
|
||||
:END:
|
||||
|
||||
#+begin_src bash
|
||||
realpath "$media_folder" &>/dev/null || send_error_message "There was an error with your media folder! The directory \"$media_folder\" does not exist!"
|
||||
read -p "Please, input your media folder [/srv/media]: " media_folder
|
||||
media_folder=${media_folder:-"/srv/media"}
|
||||
|
||||
media_folder=$(realpath "$media_folder")
|
||||
if [ ! -d "$media_folder" ]; then
|
||||
send_error_message "The directory \"$media_folder\" does not exist!"
|
||||
fi
|
||||
|
||||
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"
|
||||
send_error_message "Media folder is not correct. Please fix it and run the script again ❌"
|
||||
fi
|
||||
#+end_src
|
||||
|
||||
@ -224,18 +237,16 @@ fi
|
||||
:END:
|
||||
|
||||
#+begin_src bash
|
||||
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 -e "\n\n\nTime to choose your media service."
|
||||
echo "Your media service is responsible for serving your files to your network."
|
||||
echo "By default, YAMS supports 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=$(echo "$media_service" | awk '{print tolower($0)}')
|
||||
|
||||
media_service_port=8096
|
||||
if [ "$media_service" == "plex" ]; then
|
||||
@ -243,7 +254,7 @@ if [ "$media_service" == "plex" ]; then
|
||||
fi
|
||||
|
||||
if echo "emby plex jellyfin" | grep -qw "$media_service"; then
|
||||
echo "YAMS is going to install \"$media_service\" on port \"$media_service_port\""
|
||||
echo -e "\nYAMS 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
|
||||
@ -255,21 +266,19 @@ fi
|
||||
:END:
|
||||
|
||||
#+begin_src bash
|
||||
echo
|
||||
echo
|
||||
echo
|
||||
echo "Time to set up the VPN."
|
||||
echo -e "\nTime 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 -e "\nYou 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
|
||||
@ -322,12 +331,16 @@ for file_mapping in "${copy_files[@]}"; do
|
||||
destination_file="${file_mapping##*:}"
|
||||
|
||||
echo -e "\nCopying $source_file to $destination_file..."
|
||||
if ! cp "$source_file" "$destination_file"; then
|
||||
send_error_message "Failed to copy $source_file to $destination_file. Ensure your user ($USER) has the necessary permissions."
|
||||
if cp "$source_file" "$destination_file"; then
|
||||
send_success_message "$source_file was copied successfuly! ✅"
|
||||
else
|
||||
send_error_message "Failed to copy $source_file to $destination_file. Ensure your user ($USER) has the necessary permissions ❌"
|
||||
fi
|
||||
done
|
||||
#+end_src
|
||||
|
||||
#+RESULTS:
|
||||
|
||||
** Set PUID, PGID, Media Folder, Media Service, Config folder and VPN on the YAMS scripts
|
||||
:PROPERTIES:
|
||||
:ID: 3d169001-f0f7-477f-a954-0460484f4b43
|
||||
@ -409,25 +422,14 @@ else
|
||||
fi
|
||||
#+end_src
|
||||
|
||||
** Create and set the correct permissions to the media folder
|
||||
** Set the correct permissions to the media folder
|
||||
:PROPERTIES:
|
||||
:ID: 4cfb9397-776d-46db-84cc-54b78395cba8
|
||||
:END:
|
||||
|
||||
Now, we validate the media folder exists. If it doesn't we'll try and create it. If it can't be created,
|
||||
it will raise an error.
|
||||
This adds the correct permissions to the media folder, in case they are not correct.
|
||||
|
||||
#+begin_src bash
|
||||
if [[ -d "$media_folder" ]]; then
|
||||
send_success_message "Media folder \"$media_folder\" exists ✅"
|
||||
else
|
||||
if sudo mkdir -p "$media_folder"; then
|
||||
send_success_message "Media folder \"$media_folder\" created ✅"
|
||||
else
|
||||
send_error_message "Failed to create or access the media folder. Check permissions ❌"
|
||||
fi
|
||||
fi
|
||||
|
||||
if sudo chown -R "$puid":"$pgid" "$media_folder"; then
|
||||
send_success_message "Media folder ownership and permissions set successfully ✅"
|
||||
else
|
||||
|
65
install.sh
65
install.sh
@ -71,17 +71,22 @@ 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
|
||||
default_install_location="/opt/yams"
|
||||
|
||||
read -p "Where do you want to install the docker-compose file? [$default_install_location]: " install_location
|
||||
install_location=${install_location:-$default_install_location}
|
||||
|
||||
if [ ! -d "$install_location" ]; then
|
||||
if ! mkdir -p "$install_location"; then
|
||||
send_error_message "There was an error creating the installation directory at \"$install_location\". Make sure you have the necessary permissions."
|
||||
fi
|
||||
fi
|
||||
|
||||
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"
|
||||
custom_file_filename="$install_location/docker-compose.custom.yaml"
|
||||
env_file="$install_location/.env"
|
||||
|
||||
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
|
||||
@ -94,29 +99,27 @@ 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")
|
||||
if [ ! -d "$media_folder" ]; then
|
||||
send_error_message "The directory \"$media_folder\" does not exist!"
|
||||
fi
|
||||
|
||||
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"
|
||||
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 -e "\n\n\nTime to choose your media service."
|
||||
echo "Your media service is responsible for serving your files to your network."
|
||||
echo "By default, YAMS supports 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=$(echo "$media_service" | awk '{print tolower($0)}')
|
||||
|
||||
media_service_port=8096
|
||||
if [ "$media_service" == "plex" ]; then
|
||||
@ -124,26 +127,24 @@ if [ "$media_service" == "plex" ]; then
|
||||
fi
|
||||
|
||||
if echo "emby plex jellyfin" | grep -qw "$media_service"; then
|
||||
echo "YAMS is going to install \"$media_service\" on port \"$media_service_port\""
|
||||
echo -e "\nYAMS 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 -e "\nTime 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 -e "\nYou 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
|
||||
@ -185,8 +186,10 @@ for file_mapping in "${copy_files[@]}"; do
|
||||
destination_file="${file_mapping##*:}"
|
||||
|
||||
echo -e "\nCopying $source_file to $destination_file..."
|
||||
if ! cp "$source_file" "$destination_file"; then
|
||||
send_error_message "Failed to copy $source_file to $destination_file. Ensure your user ($USER) has the necessary permissions."
|
||||
if cp "$source_file" "$destination_file"; then
|
||||
send_success_message "$source_file was copied successfuly! ✅"
|
||||
else
|
||||
send_error_message "Failed to copy $source_file to $destination_file. Ensure your user ($USER) has the necessary permissions ❌"
|
||||
fi
|
||||
done
|
||||
|
||||
@ -232,16 +235,6 @@ else
|
||||
send_error_message "Failed to install YAMS CLI. Make sure you have the necessary permissions ❌"
|
||||
fi
|
||||
|
||||
if [[ -d "$media_folder" ]]; then
|
||||
send_success_message "Media folder \"$media_folder\" exists ✅"
|
||||
else
|
||||
if sudo mkdir -p "$media_folder"; then
|
||||
send_success_message "Media folder \"$media_folder\" created ✅"
|
||||
else
|
||||
send_error_message "Failed to create or access the media folder. Check permissions ❌"
|
||||
fi
|
||||
fi
|
||||
|
||||
if sudo chown -R "$puid":"$pgid" "$media_folder"; then
|
||||
send_success_message "Media folder ownership and permissions set successfully ✅"
|
||||
else
|
||||
|
Loading…
x
Reference in New Issue
Block a user