Implement configuration directory customization. #74
@ -2,6 +2,7 @@
|
||||
PUID=<your_PUID>
|
||||
PGID=<your_PGID>
|
||||
MEDIA_DIRECTORY=<media_directory>
|
||||
CONFIG_DIRECTORY=<config_directory>
|
||||
INSTALL_DIRECTORY=<install_directory>
|
||||
MEDIA_SERVICE=<media_service>
|
||||
|
||||
|
10
README.org
10
README.org
@ -92,7 +92,11 @@ Prepare the following:
|
||||
- Default: ~/opt/yams~
|
||||
- Ensure your user has write permissions
|
||||
|
||||
2. *Media Directory*
|
||||
2. *Configuration Directory*
|
||||
- Default: ~/opt/yams/config~
|
||||
- Ensure your user has write permissions and there is enough space for logs.
|
||||
|
||||
3. *Media Directory*
|
||||
- Default: ~/srv/media~
|
||||
- Will contain subdirectories:
|
||||
+ ~/srv/media/tvshows~: TV series
|
||||
@ -102,11 +106,11 @@ Prepare the following:
|
||||
+ ~/srv/media/downloads~: Temporary download location
|
||||
+ ~/srv/media/blackhole~: Watch folder for torrents
|
||||
|
||||
3. *Non-root User*
|
||||
4. *Non-root User*
|
||||
- Regular system user to own and manage files
|
||||
- Must have sudo privileges for initial setup
|
||||
|
||||
4. *VPN Service* (Optional but Recommended)
|
||||
5. *VPN Service* (Optional but Recommended)
|
||||
- Supported providers listed at [[https://yams.media/advanced/vpn#official-supported-vpns][yams.media/advanced/vpn]]
|
||||
- [[https://protonvpn.com/][ProtonVPN]] recommended for:
|
||||
+ Simple configuration
|
||||
|
@ -11,7 +11,7 @@ services:
|
||||
volumes:
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
- ${MEDIA_DIRECTORY}:/data
|
||||
- ${INSTALL_DIRECTORY}/config/${MEDIA_SERVICE}:/config
|
||||
- ${CONFIG_DIRECTORY}/${MEDIA_SERVICE}:/config
|
||||
ports: # plex
|
||||
- 8096:8096 # plex
|
||||
restart: unless-stopped
|
||||
@ -27,7 +27,7 @@ services:
|
||||
volumes:
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
- ${MEDIA_DIRECTORY}:/data
|
||||
- ${INSTALL_DIRECTORY}/config/qbittorrent:/config
|
||||
- ${CONFIG_DIRECTORY}/qbittorrent:/config
|
||||
restart: unless-stopped
|
||||
ports: # qbittorrent
|
||||
- 8081:8081 # qbittorrent
|
||||
@ -44,7 +44,7 @@ services:
|
||||
volumes:
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
- ${MEDIA_DIRECTORY}:/data
|
||||
- ${INSTALL_DIRECTORY}/config/sabnzbd:/config
|
||||
- ${CONFIG_DIRECTORY}/sabnzbd:/config
|
||||
ports: # sabnzbd
|
||||
- 8080:8080 # sabnzbd
|
||||
restart: unless-stopped
|
||||
@ -61,7 +61,7 @@ services:
|
||||
volumes:
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
- ${MEDIA_DIRECTORY}:/data
|
||||
- ${INSTALL_DIRECTORY}/config/sonarr:/config
|
||||
- ${CONFIG_DIRECTORY}/sonarr:/config
|
||||
ports:
|
||||
- 8989:8989
|
||||
restart: unless-stopped
|
||||
@ -77,7 +77,7 @@ services:
|
||||
volumes:
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
- ${MEDIA_DIRECTORY}:/data
|
||||
- ${INSTALL_DIRECTORY}/config/radarr:/config
|
||||
- ${CONFIG_DIRECTORY}/radarr:/config
|
||||
ports:
|
||||
- 7878:7878
|
||||
restart: unless-stopped
|
||||
@ -93,7 +93,7 @@ services:
|
||||
volumes:
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
- ${MEDIA_DIRECTORY}:/data
|
||||
- ${INSTALL_DIRECTORY}/config/lidarr:/config
|
||||
- ${CONFIG_DIRECTORY}/lidarr:/config
|
||||
ports:
|
||||
- 8686:8686
|
||||
restart: unless-stopped
|
||||
@ -109,7 +109,7 @@ services:
|
||||
volumes:
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
- ${MEDIA_DIRECTORY}:/data
|
||||
- ${INSTALL_DIRECTORY}/config/readarr:/config
|
||||
- ${CONFIG_DIRECTORY}/readarr:/config
|
||||
ports:
|
||||
- 8787:8787
|
||||
restart: unless-stopped
|
||||
@ -125,7 +125,7 @@ services:
|
||||
volumes:
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
- ${MEDIA_DIRECTORY}:/data
|
||||
- ${INSTALL_DIRECTORY}/config/bazarr:/config
|
||||
- ${CONFIG_DIRECTORY}/bazarr:/config
|
||||
ports:
|
||||
- 6767:6767
|
||||
restart: unless-stopped
|
||||
@ -140,7 +140,7 @@ services:
|
||||
- PGID=${PGID}
|
||||
volumes:
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
- ${INSTALL_DIRECTORY}/config/prowlarr:/config
|
||||
- ${CONFIG_DIRECTORY}/prowlarr:/config
|
||||
ports:
|
||||
- 9696:9696
|
||||
restart: unless-stopped
|
||||
@ -179,7 +179,7 @@ services:
|
||||
volumes:
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
- /var/run/docker.sock:/var/run/docker.sock:ro
|
||||
- ${INSTALL_DIRECTORY}/config/portainer:/data
|
||||
- ${CONFIG_DIRECTORY}/portainer:/data
|
||||
restart: unless-stopped
|
||||
|
||||
# Watchtower is going to keep our instances updated
|
||||
|
11
docs.org
11
docs.org
@ -59,6 +59,7 @@ echo ""
|
||||
#+begin_src bash
|
||||
# Constants
|
||||
readonly DEFAULT_INSTALL_DIR="/opt/yams"
|
||||
readonly DEFAULT_CONFIG_DIR="/opt/yams/config"
|
||||
readonly DEFAULT_MEDIA_DIR="/srv/media"
|
||||
readonly SUPPORTED_MEDIA_SERVICES=("jellyfin" "emby" "plex")
|
||||
readonly DEFAULT_MEDIA_SERVICE="jellyfin"
|
||||
@ -403,6 +404,10 @@ get_installation_paths() {
|
||||
install_directory=${install_directory:-$DEFAULT_INSTALL_DIR}
|
||||
create_and_verify_directory "$install_directory" "installation"
|
||||
|
||||
read -p "Configuration directory? [$DEFAULT_CONFIG_DIR]: " config_directory
|
||||
config_directory=${config_directory:-$DEFAULT_CONFIG_DIR}
|
||||
create_and_verify_directory "$config_directory" "configuration"
|
||||
|
||||
read -p "Media directory? [$DEFAULT_MEDIA_DIR]: " media_directory
|
||||
media_directory=${media_directory:-$DEFAULT_MEDIA_DIR}
|
||||
|
||||
@ -415,8 +420,9 @@ get_installation_paths() {
|
||||
|
||||
setup_directory_structure "$media_directory"
|
||||
verify_user_permissions "$username" "$media_directory"
|
||||
verify_user_permissions "$username" "$config_directory"
|
||||
|
||||
export install_directory media_directory
|
||||
export install_directory media_directory config_directory
|
||||
}
|
||||
#+end_src
|
||||
|
||||
@ -455,6 +461,7 @@ update_configuration_files() {
|
||||
log_info "Updating environment configuration..."
|
||||
sed -i -e "s|<your_PUID>|$puid|g" \
|
||||
-e "s|<your_PGID>|$pgid|g" \
|
||||
-e "s|<config_directory>|$config_directory|g" \
|
||||
-e "s|<media_directory>|$media_directory|g" \
|
||||
-e "s|<media_service>|$media_service|g" \
|
||||
-e "s|<install_directory>|$install_directory|g" \
|
||||
@ -528,7 +535,7 @@ install_cli() {
|
||||
}
|
||||
|
||||
set_permissions() {
|
||||
local dirs=("$media_directory" "$install_directory" "$install_directory/config")
|
||||
local dirs=("$media_directory" "$install_directory" "$config_directory")
|
||||
|
||||
for dir in "${dirs[@]}"; do
|
||||
log_info "Setting permissions for $dir..."
|
||||
|
11
install.sh
11
install.sh
@ -25,6 +25,7 @@ echo ""
|
||||
|
||||
# Constants
|
||||
readonly DEFAULT_INSTALL_DIR="/opt/yams"
|
||||
readonly DEFAULT_CONFIG_DIR="/opt/yams/config"
|
||||
readonly DEFAULT_MEDIA_DIR="/srv/media"
|
||||
readonly SUPPORTED_MEDIA_SERVICES=("jellyfin" "emby" "plex")
|
||||
readonly DEFAULT_MEDIA_SERVICE="jellyfin"
|
||||
@ -336,6 +337,10 @@ get_installation_paths() {
|
||||
install_directory=${install_directory:-$DEFAULT_INSTALL_DIR}
|
||||
create_and_verify_directory "$install_directory" "installation"
|
||||
|
||||
read -p "Configuration directory? [$DEFAULT_CONFIG_DIR]: " config_directory
|
||||
config_directory=${config_directory:-$DEFAULT_CONFIG_DIR}
|
||||
create_and_verify_directory "$config_directory" "configuration"
|
||||
|
||||
read -p "Media directory? [$DEFAULT_MEDIA_DIR]: " media_directory
|
||||
media_directory=${media_directory:-$DEFAULT_MEDIA_DIR}
|
||||
|
||||
@ -348,8 +353,9 @@ get_installation_paths() {
|
||||
|
||||
setup_directory_structure "$media_directory"
|
||||
verify_user_permissions "$username" "$media_directory"
|
||||
verify_user_permissions "$username" "$config_directory"
|
||||
|
||||
export install_directory media_directory
|
||||
export install_directory media_directory config_directory
|
||||
}
|
||||
|
||||
copy_configuration_files() {
|
||||
@ -382,6 +388,7 @@ update_configuration_files() {
|
||||
sed -i -e "s|<your_PUID>|$puid|g" \
|
||||
-e "s|<your_PGID>|$pgid|g" \
|
||||
-e "s|<media_directory>|$media_directory|g" \
|
||||
-e "s|<config_directory>|$config_directory|g" \
|
||||
-e "s|<media_service>|$media_service|g" \
|
||||
-e "s|<install_directory>|$install_directory|g" \
|
||||
-e "s|vpn_enabled|$setup_vpn|g" "$env_file" || \
|
||||
@ -454,7 +461,7 @@ install_cli() {
|
||||
}
|
||||
|
||||
set_permissions() {
|
||||
local dirs=("$media_directory" "$install_directory" "$install_directory/config")
|
||||
local dirs=("$media_directory" "$install_directory" "$config_directory")
|
||||
|
||||
for dir in "${dirs[@]}"; do
|
||||
log_info "Setting permissions for $dir..."
|
||||
|
Loading…
x
Reference in New Issue
Block a user