2024-09-04 17:48:40 -05:00
|
|
|
#!/bin/bash
|
|
|
|
|
|
2025-01-29 22:53:32 -06:00
|
|
|
cd /var/app
|
2024-09-05 21:34:09 -05:00
|
|
|
|
2025-01-30 18:48:34 -06:00
|
|
|
# Starting Investbrain
|
|
|
|
|
echo "CiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqICBJSUkgICBOICAgTiAgViAgIFYgIEVFRUVFICBTU1NTICBUVFRUVCAgQkJCQkIgICBSUlJSICAgIEFBQUFBICBJSUkgICBOICAgTiAgKgogICogICBJICAgIE5OICBOICBWICAgViAgRSAgICAgIFMgICAgICAgVCAgICBCICAgIEIgIFIgICBSICAgQSAgIEEgICBJICAgIE5OICBOICAqCiAgKiAgIEkgICAgTiBOIE4gIFYgICBWICBFRUVFICAgU1NTUyAgICBUICAgIEJCQkJCICAgUlJSUiAgICBBQUFBQSAgIEkgICAgTiBOIE4gICoKICAqICAgSSAgICBOICBOTiAgViAgIFYgIEUgICAgICAgICAgUyAgIFQgICAgQiAgICBCICBSICBSICAgIEEgICBBICAgSSAgICBOICBOTiAgKgogICogIElJSSAgIE4gICBOICAgVlZWICAgRUVFRUUgIFNTU1MgICAgVCAgICBCQkJCQiAgIFIgICBSICAgQSAgIEEgIElJSSAgIE4gICBOICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICA=" | base64 -d
|
|
|
|
|
|
2025-01-25 22:54:10 -06:00
|
|
|
echo -e "\n====================== Validating environment... ====================== "
|
2025-01-29 22:53:32 -06:00
|
|
|
|
2025-01-30 18:48:34 -06:00
|
|
|
# Ensure app storage directory is scaffolded
|
2025-03-06 16:55:54 -06:00
|
|
|
mkdir -p storage/framework/cache \
|
|
|
|
|
storage/framework/sessions \
|
|
|
|
|
storage/framework/views \
|
|
|
|
|
storage/app \
|
|
|
|
|
storage/logs
|
2025-01-30 18:48:34 -06:00
|
|
|
|
2025-03-06 18:35:57 -06:00
|
|
|
echo -e "\n > Storage directory scaffolding is OK... "
|
|
|
|
|
|
2025-01-30 18:48:34 -06:00
|
|
|
# Ensure storage directory is permissioned for www-data
|
|
|
|
|
chmod -R 775 storage
|
|
|
|
|
chown -R www-data:www-data storage
|
|
|
|
|
|
2025-03-06 18:35:57 -06:00
|
|
|
echo -e "\n > Permissions are OK... "
|
2025-01-30 18:48:34 -06:00
|
|
|
|
2025-03-06 16:55:54 -06:00
|
|
|
# Ensure app key exists / generate if required
|
|
|
|
|
KEY_FILE="storage/app/.key"
|
|
|
|
|
if [ -z "$APP_KEY" ] && [ ! -s "$KEY_FILE" ]; then
|
2025-01-25 22:19:54 -06:00
|
|
|
|
|
|
|
|
draw_box() {
|
|
|
|
|
local text="$1"
|
|
|
|
|
local length=${#text}
|
|
|
|
|
local border=$(printf '%*s' "$((length + 4))" | tr ' ' '*')
|
|
|
|
|
|
2025-01-26 21:56:41 -06:00
|
|
|
echo -e "\n\n$border"
|
2025-01-25 22:19:54 -06:00
|
|
|
echo "* $text *"
|
2025-01-26 21:45:38 -06:00
|
|
|
echo "$border"
|
2025-01-25 22:19:54 -06:00
|
|
|
}
|
|
|
|
|
|
2025-03-06 16:55:54 -06:00
|
|
|
export APP_KEY="$(php artisan key:generate --show)"
|
|
|
|
|
|
2025-03-06 18:35:57 -06:00
|
|
|
echo -e "\n > Oops! The required APP_KEY configuration is missing! Generated app key and saved in $KEY_FILE"
|
2025-03-06 16:55:54 -06:00
|
|
|
|
|
|
|
|
echo "$APP_KEY" > "$KEY_FILE"
|
|
|
|
|
|
2025-01-26 11:20:52 -06:00
|
|
|
draw_box $APP_KEY
|
2025-01-30 18:48:34 -06:00
|
|
|
else
|
|
|
|
|
echo -e "\n > APP_KEY is OK... "
|
2024-09-05 21:49:06 -05:00
|
|
|
fi
|
|
|
|
|
|
2025-01-25 21:53:55 -06:00
|
|
|
echo -e "\n====================== Running migrations... ====================== "
|
2025-01-30 18:48:34 -06:00
|
|
|
|
|
|
|
|
# Wait 60 seconds for database to be ready
|
|
|
|
|
RETRIES=12
|
|
|
|
|
DELAY=5
|
2024-12-16 21:54:59 -06:00
|
|
|
run_migrations() {
|
2025-01-30 18:48:34 -06:00
|
|
|
sleep $DELAY
|
|
|
|
|
# php artisan migrate --force
|
|
|
|
|
output=$(php artisan migrate --force 2>/dev/null)
|
|
|
|
|
if [[ $? -eq 0 ]]; then
|
|
|
|
|
echo "$output"
|
|
|
|
|
return 0
|
|
|
|
|
else
|
|
|
|
|
return 1
|
|
|
|
|
fi
|
2024-12-16 21:54:59 -06:00
|
|
|
}
|
|
|
|
|
until run_migrations; do
|
2025-01-26 21:33:49 -06:00
|
|
|
RETRIES=$((RETRIES-1))
|
2025-01-30 18:48:34 -06:00
|
|
|
if [[ $RETRIES -le 0 ]]; then
|
|
|
|
|
echo -e "\n > Database is not ready after one minute. Exiting... \n"
|
2025-01-26 21:33:49 -06:00
|
|
|
exit 1
|
2024-12-16 21:54:59 -06:00
|
|
|
fi
|
2025-01-30 18:48:34 -06:00
|
|
|
echo -e "\n > Waiting for database to be ready... retrying in $DELAY seconds. \n"
|
2024-12-16 21:54:59 -06:00
|
|
|
done
|
2024-09-04 17:48:40 -05:00
|
|
|
|
2025-01-26 21:46:59 -06:00
|
|
|
echo -e "\n====================== Spinning up Supervisor daemon... ====================== \n"
|
2025-01-30 18:48:34 -06:00
|
|
|
|
|
|
|
|
exec supervisord -c /etc/supervisor/conf.d/supervisord.conf
|
|
|
|
|
|