mirror of
https://github.com/alexbelgium/hassio-addons.git
synced 2026-01-09 17:31:03 +01:00
128 lines
6.0 KiB
Bash
Executable File
128 lines
6.0 KiB
Bash
Executable File
#!/usr/bin/bashio
|
|
# shellcheck shell=bash
|
|
# shellcheck disable=SC2155
|
|
set -e
|
|
|
|
#####################
|
|
# Export env values #
|
|
#####################
|
|
|
|
export ALLOWED_HOSTS=$(bashio::config 'ALLOWED_HOSTS') && bashio::log.blue "ALLOWED_HOSTS=$ALLOWED_HOSTS"
|
|
export SECRET_KEY=$(bashio::config 'SECRET_KEY') && bashio::log.blue "SECRET_KEY=$SECRET_KEY"
|
|
export DEBUG=$(bashio::config 'DEBUG') && bashio::log.blue "DEBUG=$DEBUG"
|
|
export AI_MODEL_NAME=$(bashio::config 'AI_MODEL_NAME') && bashio::log.blue "AI_MODEL_NAME=$AI_MODEL_NAME"
|
|
export AI_API_KEY=$(bashio::config 'AI_API_KEY') && bashio::log.blue "AI_API_KEY=$AI_API_KEY"
|
|
export AI_RATELIMIT=$(bashio::config 'AI_RATELIMIT') && bashio::log.blue "AI_RATELIMIT=$AI_RATELIMIT"
|
|
|
|
CSRF_TRUSTED_ORIGINS="http://localhost"
|
|
for element in ${ALLOWED_HOSTS//,/ }; do # Separate comma separated values
|
|
element="${element#"https://"}"
|
|
element="${element#"http://"}"
|
|
CSRF_TRUSTED_ORIGINS="http://$element,https://$element,$CSRF_TRUSTED_ORIGINS"
|
|
done
|
|
export CSRF_TRUSTED_ORIGINS
|
|
export ALLOWED_HOSTS="*"
|
|
|
|
#################
|
|
# Allow ingress #
|
|
#################
|
|
|
|
#sed -i "s|href=\"{% base_path request \'base\' %}\"|href=\"{% base_path request \'base\' %}/\"|g" /opt/recipes/cookbook/templates/base.html
|
|
|
|
###################
|
|
# Define database #
|
|
###################
|
|
|
|
bashio::log.info "Defining database"
|
|
export DB_TYPE=$(bashio::config 'DB_TYPE')
|
|
case $(bashio::config 'DB_TYPE') in
|
|
|
|
# Use sqlite
|
|
sqlite)
|
|
bashio::log.info "Using a local sqlite database"
|
|
export DB_ENGINE="django.db.backends.sqlite3"
|
|
export POSTGRES_DB="/config/addons_config/tandoor_recipes/recipes.db"
|
|
;;
|
|
|
|
# tandoor recipes doesnt support mariadb.
|
|
# mariadb_addon)
|
|
# bashio::log.info "Using MariaDB addon. Requirements : running MariaDB addon. Discovering values..."
|
|
# if ! bashio::services.available 'mysql'; then
|
|
# bashio::log.fatal \
|
|
# "Local database access should be provided by the MariaDB addon"
|
|
# bashio::exit.nok \
|
|
# "Please ensure it is installed and started"
|
|
# fi
|
|
|
|
# Install apps
|
|
# apk add --no-cache postgresql-libs gettext zlib libjpeg libxml2-dev libxslt-dev mysql-client mariadb-connector-c-dev mariadb-dev >/dev/null
|
|
|
|
# Install mysqlclient
|
|
# pip install pymysql &>/dev/null
|
|
|
|
# export DB_ENGINE=django.db.backends.mysql
|
|
# export POSTGRES_HOST=$(bashio::services "mysql" "host") && bashio::log.blue "POSTGRES_HOST=$POSTGRES_HOST"
|
|
# export POSTGRES_PORT=$(bashio::services "mysql" "port") && bashio::log.blue "POSTGRES_PORT=$POSTGRES_PORT"
|
|
# export POSTGRES_USER=$(bashio::services "mysql" "username") && bashio::log.blue "POSTGRES_USER=$POSTGRES_USER"
|
|
# export POSTGRES_PASSWORD=$(bashio::services "mysql" "password") && bashio::log.blue "POSTGRES_PASSWORD=$POSTGRES_PASSWORD"
|
|
# export POSTGRES_DB="tandoor" && bashio::log.blue "POSTGRES_DB=tandoor"
|
|
|
|
# Use values
|
|
# sed -i "1a export DB_ENGINE=django.db.backends.mysql" /opt/recipes/boot.sh
|
|
# sed -i "1a export POSTGRES_HOST=$(bashio::services "mysql" "host")" /opt/recipes/boot.sh && bashio::log.blue "POSTGRES_HOST=$POSTGRES_HOST"
|
|
# sed -i "1a export POSTGRES_PORT=$(bashio::services "mysql" "port")" /opt/recipes/boot.sh && bashio::log.blue "POSTGRES_PORT=$POSTGRES_PORT"
|
|
# sed -i "1a export POSTGRES_USER=$(bashio::services "mysql" "username")" /opt/recipes/boot.sh && bashio::log.blue "POSTGRES_USER=$POSTGRES_USER"
|
|
# sed -i "1a export POSTGRES_PASSWORD=$(bashio::services "mysql" "password")" /opt/recipes/boot.sh && bashio::log.blue "POSTGRES_PASSWORD=$POSTGRES_PASSWORD"
|
|
# sed -i "1a export POSTGRES_DB=tandoor" /opt/recipes/boot.sh && bashio::log.blue "POSTGRES_DB=tandoor"
|
|
|
|
# bashio::log.warning "This addon is using the Maria DB addon"
|
|
# bashio::log.warning "Please ensure this is included in your backups"
|
|
# bashio::log.warning "Uninstalling the MariaDB addon will remove any data"
|
|
|
|
# bashio::log.info "Creating database if required"
|
|
|
|
# mysql \
|
|
# -u "${POSTGRES_USER}" -p"${POSTGRES_PASSWORD}" \
|
|
# -h "${POSTGRES_HOST}" -P "${POSTGRES_PORT}" \
|
|
# -e "CREATE DATABASE IF NOT EXISTS \`${POSTGRES_DB}\` ;"
|
|
# ;;
|
|
|
|
# use postgresql
|
|
postgresql_external)
|
|
bashio::log.info "Using an external database, please populate all required fields in the addons config"
|
|
export DB_ENGINE=django.db.backends.postgresql
|
|
export POSTGRES_HOST=$(bashio::config "POSTGRES_HOST") && bashio::log.blue "POSTGRES_HOST=$POSTGRES_HOST"
|
|
export POSTGRES_PORT=$(bashio::config "POSTGRES_PORT") && bashio::log.blue "POSTGRES_PORT=$POSTGRES_PORT"
|
|
export POSTGRES_DB=$(bashio::config "POSTGRES_DB") && bashio::log.blue "POSTGRES_DB=$POSTGRES_DB"
|
|
export POSTGRES_USER=$(bashio::config "POSTGRES_USER") && bashio::log.blue "POSTGRES_USER=$POSTGRES_USER"
|
|
export POSTGRES_PASSWORD=$(bashio::config "POSTGRES_PASSWORD") && bashio::log.blue "POSTGRES_PASSWORD=$POSTGRES_PASSWORD"
|
|
;;
|
|
|
|
esac
|
|
|
|
##############
|
|
# Launch app #
|
|
##############
|
|
echo "Creating symlinks"
|
|
mkdir -p /config/addons_config/tandoor_recipes/mediafiles
|
|
chmod -R 755 /config/addons_config/tandoor_recipes
|
|
export MEDIA_ROOT="/config/addons_config/tandoor_recipes/mediafiles"
|
|
export STATIC_ROOT="/config/addons_config/tandoor_recipes/staticfiles"
|
|
|
|
# Set permissions
|
|
echo "... setting permissions for nginx user"
|
|
usermod -o -u 0 nginx
|
|
groupmod -o -g 0 nginx
|
|
|
|
if bashio::config.has_value "externalfiles_folder"; then
|
|
externalfiles_folder="$(bashio::config "externalfiles_folder")"
|
|
else
|
|
externalfiles_folder="/config/addons_config/tandoor_recipes/externalfiles"
|
|
fi
|
|
mkdir -p "$externalfiles_folder"
|
|
ln -s "$externalfiles_folder" /opt/recipes
|
|
|
|
bashio::log.info "Launching app"
|
|
cd /opt/recipes || exit
|
|
./boot.sh
|