new symlink logic (cheers heimdall) and advanced mode for .env mods

This commit is contained in:
Homer 2018-10-06 18:23:33 +01:00
parent 73287fa127
commit 62b791572e

View File

@ -1,32 +1,43 @@
#!/usr/bin/with-contenv bash
# create our folders
# create directory structure
mkdir -p \
/config/storage \
/config/public/uploads
/config/www/{files,images,uploads,logs}
# make folder symlinks
# create symlinks
symlinks=( \
/var/www/html/storage \
/var/www/html/storage/logs \
/var/www/html/storage/uploads/files \
/var/www/html/storage/uploads/images \
/var/www/html/public/uploads )
for i in "${symlinks[@]}"
do
[[ -e "$i" && ! -L "$i" ]] && rm -rf "$i"
[[ ! -L "$i" ]] && ln -s /config/"$(basename "$i")" "$i"
[[ ! -L "$i" ]] && ln -s /config/www/"$(basename "$i")" "$i"
done
# check for ADVANCED_MODE to be != 0; copy sample env file to /config and ln to /var/www/html if != 0, if = 0 then copy .example.env to .env and run seds
if [ "$ADVANCED_MODE" == 1 && ! -f "/config/.env" ];
# Check for ADVANCED_MODE to be set. If set, copy sample env file to /config and then copy to /var/www/html.env so advanced users can make their own customisations
# If not set, runs in basic mode where .example.env is copied to /var/www/html/.env and seds are applied to set documented variables
if [ "$ADVANCED_MODE" == 1 ];
then
echo "Advanced Mode"
cp /var/www/html/.env.example /config/.env
ln -s /config/.env /var/www/html/.env
echo "Advanced Mode Enabled - Syncing .env from /config to /var/www/html"
[[ ! -f "/config/.env" ]] && \
cp /var/www/html/.env.example /config/.env
cp /config/.env /var/www/html/.env
elif [ -z "$ADVANCED_MODE" ];
echo "Basic Mode"
then
echo "Basic Mode Enabled - Using sed to set BookStack variables from Docker environment variables - check the docs"
cp /var/www/html/.env.example /var/www/html/.env
# set up .env
sed -i "s/APP_KEY=SomeRandomString/APP_KEY=$key/g" /var/www/html/.env
sed -i "s/DB_HOST=localhost/DB_HOST=${DB_HOST}/g" /var/www/html/.env
sed -i "s/DB_DATABASE=database_database/DB_DATABASE=${DB_DATABASE}/g" /var/www/html/.env
sed -i "s/DB_USERNAME=database_username/DB_USERNAME=${DB_USER}/g" /var/www/html/.env
sed -i "s/DB_PASSWORD=database_user_password/DB_PASSWORD=${DB_PASS}/g" /var/www/html/.env
sed -i "s/# APP_URL=.*/APP_URL=${APP_URL}/g" /var/www/html/.env
else
echo "Finished symlinks"
echo "Nothing to do with .env - what did you do homer?"
fi
# Create API key if needed
@ -38,14 +49,6 @@ if [ ! -f "/config/BOOKSTACK_APP_KEY.txt" ]
echo "App Key set to $key you can modify the file to update /config/BOOKSTACK_APP_KEY.txt"
fi
# set up .env
sed -i "s/APP_KEY=SomeRandomString/APP_KEY=$key/g" /var/www/html/.env
sed -i "s/DB_HOST=localhost/DB_HOST=${DB_HOST}/g" /var/www/html/.env
sed -i "s/DB_DATABASE=database_database/DB_DATABASE=${DB_DATABASE}/g" /var/www/html/.env
sed -i "s/DB_USERNAME=database_username/DB_USERNAME=${DB_USER}/g" /var/www/html/.env
sed -i "s/DB_PASSWORD=database_user_password/DB_PASSWORD=${DB_PASS}/g" /var/www/html/.env
#sed -i "s/.*APP_URL=.*/APP_URL=${APP_URL}/g" /var/www/html/.env
# update database - will set up database if fresh, or, migrate existing
php /var/www/html/artisan migrate --force