fix(installer): only setup nginx on first install

Users usually want to setup a ssl certificate for LibreTime. Disabling any nginx config change unless it is the first install should prevent breaking a possible certbot setup.
This commit is contained in:
jo 2023-02-03 14:18:35 +01:00 committed by Jonas L
parent 9a65e08890
commit e92be34e2a
2 changed files with 40 additions and 13 deletions

View File

@ -150,6 +150,12 @@ When upgrading be sure to run the installer using the same arguments you used du
::: :::
:::warning
To update the LibreTime nginx configuration file, for example to change the `--listen-port`, make sure to add the `--update-nginx` flag to allow overwriting the existing configuration file.
:::
If you need to change some configuration, the install script can be configured using flags or environment variables. Changing the listening port of LibreTime or whether you want to install some dependency by yourself, you could run the following: If you need to change some configuration, the install script can be configured using flags or environment variables. Changing the listening port of LibreTime or whether you want to install some dependency by yourself, you could run the following:
```bash ```bash

47
install
View File

@ -73,6 +73,8 @@ Options:
--no-setup-postgresql Do not setup Postgresql. --no-setup-postgresql Do not setup Postgresql.
--no-setup-rabbitmq Do not setup RabbitMQ. --no-setup-rabbitmq Do not setup RabbitMQ.
--update-nginx Update nginx files during upgrades.
Environment variables: Environment variables:
Advanced options can be changed using environment variables (flags will take Advanced options can be changed using environment variables (flags will take
@ -113,6 +115,9 @@ LIBRETIME_SETUP_POSTGRESQL=${LIBRETIME_SETUP_POSTGRESQL:-true}
# > Create a default rabbitmq user with a random password. # > Create a default rabbitmq user with a random password.
LIBRETIME_SETUP_RABBITMQ=${LIBRETIME_SETUP_RABBITMQ:-true} LIBRETIME_SETUP_RABBITMQ=${LIBRETIME_SETUP_RABBITMQ:-true}
# > Update nginx files during upgrades.
LIBRETIME_UPDATE_NGINX=${LIBRETIME_UPDATE_NGINX:-false}
# > Comma separated list of sections to exclude from packages list. # > Comma separated list of sections to exclude from packages list.
LIBRETIME_PACKAGES_EXCLUDES=${LIBRETIME_PACKAGES_EXCLUDES:-} LIBRETIME_PACKAGES_EXCLUDES=${LIBRETIME_PACKAGES_EXCLUDES:-}
@ -130,6 +135,10 @@ while [[ $# -gt 0 ]]; do
LIBRETIME_INSTALL_IN_PLACE=true LIBRETIME_INSTALL_IN_PLACE=true
shift 1 shift 1
;; ;;
--update-nginx)
LIBRETIME_UPDATE_NGINX=true
shift 1
;;
--no-setup-icecast) --no-setup-icecast)
LIBRETIME_SETUP_ICECAST=false LIBRETIME_SETUP_ICECAST=false
shift 1 shift 1
@ -730,23 +739,35 @@ template_file cp_if_different \
section "Nginx" section "Nginx"
install_packages nginx if $is_first_install || $LIBRETIME_UPDATE_NGINX; then
install_packages nginx
info "disabling nginx default site" info "disabling nginx default site"
rm -f "/etc/nginx/sites-enabled/default" rm -f "/etc/nginx/sites-enabled/default"
fi
info "deploying libretime nginx config" nginx_config_template_args=(
template_file cp_if_different \ "${SCRIPT_DIR}/installer/nginx/libretime.conf"
"${SCRIPT_DIR}/installer/nginx/libretime.conf" \ "/etc/nginx/sites-available/libretime.conf"
"/etc/nginx/sites-available/libretime.conf" \ sed
sed \ -e "s|@@LISTEN_PORT@@|${LIBRETIME_LISTEN_PORT}|g"
-e "s|@@LISTEN_PORT@@|${LIBRETIME_LISTEN_PORT}|g" \
-e "s|@@LEGACY_WEB_ROOT@@|${LEGACY_WEB_ROOT}|g" -e "s|@@LEGACY_WEB_ROOT@@|${LEGACY_WEB_ROOT}|g"
)
info "enabling libretime nginx config" if $is_first_install || $LIBRETIME_UPDATE_NGINX; then
ln -s --force \ info "deploying libretime nginx config"
"/etc/nginx/sites-available/libretime.conf" \ template_file cp_if_different "${nginx_config_template_args[@]}"
"/etc/nginx/sites-enabled/libretime.conf" else
info "printing libretime nginx config differences"
template_file diff_if_exists "${nginx_config_template_args[@]}"
fi
if $is_first_install || $LIBRETIME_UPDATE_NGINX; then
info "enabling libretime nginx config"
ln -s --force \
"/etc/nginx/sites-available/libretime.conf" \
"/etc/nginx/sites-enabled/libretime.conf"
fi
# Finalize # Finalize
######################################################################################## ########################################################################################