96 lines
3.6 KiB
Bash
Executable File
96 lines
3.6 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
CURRENT_DIR="$(pwd -P)"
|
|
PARENT_PATH="$(
|
|
cd "$(dirname "${BASH_SOURCE[0]}")" || exit
|
|
pwd -P
|
|
)/.."
|
|
cd "$PARENT_PATH" || exit
|
|
|
|
echo
|
|
printf "\033[32m%s\033[39m\n" "Welcome to Baseline"
|
|
echo "-------------------"
|
|
echo
|
|
echo "Lets setup your new application!"
|
|
echo
|
|
if ! command -v aws &>/dev/null; then
|
|
echo "AWS CLI could not be found, please install it before continuing."
|
|
echo "You can find instructions here: https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html"
|
|
exit
|
|
fi
|
|
printf "Enter the name of your new application (e.g. my-new-app): "
|
|
read -r PROJECT_NAME
|
|
sed -i '' -e "s|bms-repository|$PROJECT_NAME|g" ./scripts/project-variables.sh >/dev/null 2>&1
|
|
sed -i '' -e "s|bms-repository|$PROJECT_NAME|g" ./scripts/setup.sh >/dev/null 2>&1
|
|
echo
|
|
echo "Awesome, lets set a region where the app will be hosted!"
|
|
echo
|
|
echo "AWS uses regions to store your app, you can find a list of regions here: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html#concepts-available-regions"
|
|
echo
|
|
echo "Please select a region: "
|
|
options=(
|
|
"us-east-1 (US East - N. Virginia)"
|
|
"us-east-2 (US East - Ohio)"
|
|
"us-gov-east-1 (US Gov East)"
|
|
"us-gov-west-1 (US Gov West)"
|
|
"us-iso-east-1 (US ISO East)"
|
|
"us-iso-west-1 (US ISO West)"
|
|
"us-isob-east-1 (US ISOB East - Ohio)"
|
|
"us-west-1 (US West - N. California)"
|
|
"us-west-2 (US West - Oregon)"
|
|
"af-south-1 (Africa - Cape Town)"
|
|
"ap-east-1 (Asia Pacific - Hong Kong)"
|
|
"ap-northeast-1 (Asia Pacific - Tokyo)"
|
|
"ap-northeast-2 (Asia Pacific - Seoul)"
|
|
"ap-northeast-3 (Asia Pacific - Osaka)"
|
|
"ap-south-1 (Asia Pacific - Mumbai)"
|
|
"ap-south-2 (Asia Pacific - Hyderabad)"
|
|
"ap-southeast-1 (Asia Pacific - Singapore)"
|
|
"ap-southeast-2 (Asia Pacific - Sydney)"
|
|
"ap-southeast-3 (Asia Pacific - Jakarta)"
|
|
"ap-southeast-4 (Asia Pacific - Melbourne)"
|
|
"ca-central-1 (Canada - Central)"
|
|
"cn-north-1 (China - Beijing)"
|
|
"cn-northwest-1 (China - Ningxia)"
|
|
"eu-central-1 (Europe - Frankfurt)"
|
|
"eu-central-2 (Europe - Zurich)"
|
|
"eu-north-1 (Europe - Stockholm)"
|
|
"eu-south-1 (Europe - Milan)"
|
|
"eu-south-2 (Europe - Spain)"
|
|
"eu-west-1 (Europe - Ireland)"
|
|
"eu-west-2 (Europe - London)"
|
|
"eu-west-3 (Europe - Paris)"
|
|
"me-central-1 (Middle East - UAE)"
|
|
"me-south-1 (Middle East - Bahrain)"
|
|
"sa-east-1 (South America - São Paulo)"
|
|
)
|
|
APP_REGION=""
|
|
select opt in "${options[@]}"; do
|
|
# Remove the description by deleting everything from " (" to the end
|
|
APP_REGION="${opt%% (*}"
|
|
echo "You selected $APP_REGION"
|
|
break
|
|
done
|
|
sed -i '' -e "s|ap-southeast-2|$APP_REGION|g" ./scripts/project-variables.sh >/dev/null 2>&1
|
|
echo
|
|
echo "Great, lets get started!"
|
|
echo "------------------------"
|
|
echo "To finish setting up your application you will need to run the following commands:"
|
|
echo "- [pnpm run aws:profile] to setup your AWS credentials profile"
|
|
echo "- [pnpm run deploy:staging] to deploy api/web/admin"
|
|
echo "- [pnpm run add:user:staging] to add an admin user to the application"
|
|
echo "- [pnpm run urls:staging] To see your project URLs"
|
|
echo
|
|
echo "After that you will be able to run it locally! 🎉"
|
|
echo "-----------------------------------------------"
|
|
echo "1. [pnpm run generate:env:local]" to generate env files for admin and web
|
|
echo "2. [pnpm run start:api]"
|
|
echo "3. [pnpm run start:admin]"
|
|
echo "4. [pnpm run start:web]"
|
|
echo
|
|
echo "If you have any questions or need help, please reach out to us at https://baselinejs.com"
|
|
echo
|
|
printf "\033[32m%s\033[39m\n" "Happy coding!"
|
|
|
|
cd "$CURRENT_DIR" || exit
|