diff --git a/contrib/packager.io/functions.sh b/contrib/packager.io/functions.sh index eede301be1..c784ef34c4 100755 --- a/contrib/packager.io/functions.sh +++ b/contrib/packager.io/functions.sh @@ -166,6 +166,18 @@ function detect_envs() { export INVENTREE_DB_PASSWORD=$(jq -r '.[].database.PASSWORD' <<< ${INVENTREE_CONF_DATA}) export INVENTREE_DB_HOST=$(jq -r '.[].database.HOST' <<< ${INVENTREE_CONF_DATA}) export INVENTREE_DB_PORT=$(jq -r '.[].database.PORT' <<< ${INVENTREE_CONF_DATA}) + + # Parse site URL if not already set + if [ -z "${INVENTREE_SITE_URL}" ]; then + # Try to read out the app config + if [ -n "$(inventree config:get INVENTREE_SITE_URL)" ]; then + echo "# POI03| Getting site URL from app config" + export INVENTREE_SITE_URL=$(inventree config:get INVENTREE_SITE_URL) + else + echo "# POI03| Getting site URL from config file" + export INVENTREE_SITE_URL=$(jq -r '.[].site_url' <<< ${INVENTREE_CONF_DATA}) + fi + fi else echo "# POI03| No config file found: ${INVENTREE_CONFIG_FILE}, using envs or defaults" @@ -190,6 +202,8 @@ function detect_envs() { export INVENTREE_DB_HOST=${INVENTREE_DB_HOST:-samplehost} export INVENTREE_DB_PORT=${INVENTREE_DB_PORT:-123456} + export INVENTREE_SITE_URL=${INVENTREE_SITE_URL} + export SETUP_CONF_LOADED=true fi @@ -209,6 +223,7 @@ function detect_envs() { fi echo "# POI03| INVENTREE_DB_HOST=${INVENTREE_DB_HOST}" echo "# POI03| INVENTREE_DB_PORT=${INVENTREE_DB_PORT}" + echo "# POI03| INVENTREE_SITE_URL=${INVENTREE_SITE_URL}" } function create_initscripts() { @@ -313,7 +328,7 @@ function update_or_install() { # Run update as app user echo "# POI12| Updating InvenTree" sudo -u ${APP_USER} --preserve-env=$SETUP_ENVS bash -c "cd ${APP_HOME} && pip install wheel" - sudo -u ${APP_USER} --preserve-env=$SETUP_ENVS bash -c "cd ${APP_HOME} && invoke update | sed -e 's/^/# POI12| u | /;'" + sudo -u ${APP_USER} --preserve-env=$SETUP_ENVS bash -c "cd ${APP_HOME} && set -e && invoke update | sed -e 's/^/# POI12| u | /;'" # Make sure permissions are correct again echo "# POI12| Set permissions for data dir and media: ${DATA_DIR}" @@ -373,10 +388,15 @@ function set_site() { # Check if INVENTREE_SITE_URL in inventree config if [ -z "$(inventree config:get INVENTREE_SITE_URL)" ]; then - echo "# POI14| Setting up InvenTree site URL" - inventree config:set INVENTREE_SITE_URL=http://${INVENTREE_IP} + # Prefer current INVENTREE_SITE_URL if set + if [ -n "${INVENTREE_SITE_URL}" ]; then + inventree config:set INVENTREE_SITE_URL=${INVENTREE_SITE_URL} + else + echo "# POI14| Setting up InvenTree site URL" + inventree config:set INVENTREE_SITE_URL=http://${INVENTREE_IP} + fi else - echo "# POI14| Site URL already set - skipping" + echo "# POI14| Site URL already set to '$INVENTREE_SITE_URL' - skipping" fi } diff --git a/contrib/packager.io/postinstall.sh b/contrib/packager.io/postinstall.sh index 4e5734fb5a..3d96188392 100755 --- a/contrib/packager.io/postinstall.sh +++ b/contrib/packager.io/postinstall.sh @@ -14,7 +14,7 @@ echo "# POI01| Importing functions" echo "# POI01| Functions imported" # Envs that should be passed to setup commands -export SETUP_ENVS=PATH,APP_HOME,INVENTREE_MEDIA_ROOT,INVENTREE_STATIC_ROOT,INVENTREE_BACKUP_DIR,INVENTREE_SITE_URL,INVENTREE_PLUGINS_ENABLED,INVENTREE_PLUGIN_FILE,INVENTREE_CONFIG_FILE,INVENTREE_SECRET_KEY_FILE,INVENTREE_DB_ENGINE,INVENTREE_DB_NAME,INVENTREE_DB_USER,INVENTREE_DB_PASSWORD,INVENTREE_DB_HOST,INVENTREE_DB_PORT,INVENTREE_ADMIN_USER,INVENTREE_ADMIN_EMAIL,INVENTREE_ADMIN_PASSWORD,SETUP_NGINX_FILE,SETUP_ADMIN_PASSWORD_FILE,SETUP_NO_CALLS,SETUP_DEBUG,SETUP_EXTRA_PIP,SETUP_PYTHON,SETUP_ADMIN_NOCREATION +export SETUP_ENVS=PATH,APP_HOME,INVENTREE_MEDIA_ROOT,INVENTREE_STATIC_ROOT,INVENTREE_BACKUP_DIR,INVENTREE_PLUGINS_ENABLED,INVENTREE_PLUGIN_FILE,INVENTREE_CONFIG_FILE,INVENTREE_SECRET_KEY_FILE,INVENTREE_DB_ENGINE,INVENTREE_DB_NAME,INVENTREE_DB_USER,INVENTREE_DB_PASSWORD,INVENTREE_DB_HOST,INVENTREE_DB_PORT,INVENTREE_ADMIN_USER,INVENTREE_ADMIN_EMAIL,INVENTREE_ADMIN_PASSWORD,INVENTREE_SITE_URL,SETUP_NGINX_FILE,SETUP_ADMIN_PASSWORD_FILE,SETUP_NO_CALLS,SETUP_DEBUG,SETUP_EXTRA_PIP,SETUP_PYTHON,SETUP_ADMIN_NOCREATION # Get the envs detect_local_env diff --git a/contrib/packager.io/preinstall.sh b/contrib/packager.io/preinstall.sh index f15fb49e06..9ae899fdb9 100755 --- a/contrib/packager.io/preinstall.sh +++ b/contrib/packager.io/preinstall.sh @@ -6,7 +6,7 @@ echo "# PRI01| Running preinstall script - start - $(date)" PATH=${APP_HOME}/env/bin:${APP_HOME}/:/sbin:/bin:/usr/sbin:/usr/bin: # Envs that should be passed to setup commands -export SETUP_ENVS=PATH,APP_HOME,INVENTREE_MEDIA_ROOT,INVENTREE_STATIC_ROOT,INVENTREE_BACKUP_DIR,INVENTREE_PLUGINS_ENABLED,INVENTREE_PLUGIN_FILE,INVENTREE_CONFIG_FILE,INVENTREE_SECRET_KEY_FILE,INVENTREE_DB_ENGINE,INVENTREE_DB_NAME,INVENTREE_DB_USER,INVENTREE_DB_PASSWORD,INVENTREE_DB_HOST,INVENTREE_DB_PORT,INVENTREE_ADMIN_USER,INVENTREE_ADMIN_EMAIL,INVENTREE_ADMIN_PASSWORD,SETUP_NGINX_FILE,SETUP_ADMIN_PASSWORD_FILE,SETUP_NO_CALLS,SETUP_DEBUG,SETUP_EXTRA_PIP,SETUP_PYTHON +export SETUP_ENVS=PATH,APP_HOME,INVENTREE_MEDIA_ROOT,INVENTREE_STATIC_ROOT,INVENTREE_BACKUP_DIR,INVENTREE_PLUGINS_ENABLED,INVENTREE_PLUGIN_FILE,INVENTREE_CONFIG_FILE,INVENTREE_SECRET_KEY_FILE,INVENTREE_DB_ENGINE,INVENTREE_DB_NAME,INVENTREE_DB_USER,INVENTREE_DB_PASSWORD,INVENTREE_DB_HOST,INVENTREE_DB_PORT,INVENTREE_ADMIN_USER,INVENTREE_ADMIN_EMAIL,INVENTREE_ADMIN_PASSWORD,INVENTREE_SITE_URL,SETUP_NGINX_FILE,SETUP_ADMIN_PASSWORD_FILE,SETUP_NO_CALLS,SETUP_DEBUG,SETUP_EXTRA_PIP,SETUP_PYTHON if test -f "${APP_HOME}/env/bin/pip"; then # Check if clear-generated is available diff --git a/docs/docs/settings/error_codes.md b/docs/docs/settings/error_codes.md index 0b422441d0..47253c4777 100644 --- a/docs/docs/settings/error_codes.md +++ b/docs/docs/settings/error_codes.md @@ -9,9 +9,12 @@ Errors - These are critical errors which should be addressed as soon as possible #### INVE-E1 **No frontend included - Backend/web** -Only stable / production releases of InvenTree include the frontend panel. This is both a measure of resource-saving and attack surface reduction. If you want to use the frontend panel, you can either:″ +Only stable / production releases of InvenTree include the frontend panel. This is both a measure of resource-saving and attack surface reduction. + +If you want to use the frontend panel, you can either: + - use a docker image that is version-tagged or the stable version -- use a package version that is from the stable or version stream +- use a package version that is from the stable or version stream - if you are and it is not working, run `sudo inventree run cli update` to re-run the upgrade - install node and yarn on the server to build the frontend with the [invoke](../start/invoke.md) task `int.frontend-build` Raise an issue if none of these options work. diff --git a/src/backend/InvenTree/web/templates/web/index.html b/src/backend/InvenTree/web/templates/web/index.html index 879f7daf2a..26ed53e62c 100644 --- a/src/backend/InvenTree/web/templates/web/index.html +++ b/src/backend/InvenTree/web/templates/web/index.html @@ -13,7 +13,7 @@
- +