1
0
mirror of https://github.com/LukePeters/flask-mongo-api-boilerplate.git synced 2026-05-16 15:16:31 +09:00

Switched to isodate vs epoch for all timestamps. Utilzing Python's uuid for random IDs now. Improved setup script to install Pipenv if it isn't already installed.

This commit is contained in:
Luke Peters
2019-03-15 17:28:38 -04:00
parent 6477bdcac4
commit 0f360be43c
6 changed files with 26 additions and 15 deletions

105
setup Executable file
View File

@@ -0,0 +1,105 @@
#!/bin/sh
WHITE='\033[1;37m'
RED='\033[0;31m'
GREEN='\033[0;32m'
BROWN='\033[1;33m'
BLUE='\033[1;34m'
PURPLE='\033[1;35m'
CYAN='\033[0;36m'
GREY='\033[1;30m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color
echo "${GREY}"
cat << "EOF"
####### _____ __
###### / ___/___ / /___ ______
##### \__ \/ _ \/ __/ / / / __ \
#### ___/ / __/ /_/ /_/ / /_/ /
### /____/\___/\__/\__,_/ .___/
## /_/
#
EOF
# PIPENV SETUP
echo "${BLUE}VIRTUAL ENVIRONMENT SETUP${NC}"
echo
pip install pipenv
pipenv install
echo
# FLASK SETUP
echo "${BLUE}FLASK CONFIGURATION${NC}"
echo
# Defaults
SECRET_KEY=`cat /dev/urandom | head -c 24 | base64`
FLASK_DOMAIN="localhost"
FLASK_PORT_DEFAULT=5000
FLASK_DIRECTORY="$(pwd)/api/"
MONGO_HOSTNAME_DEFAULT="localhost"
# Domain the Flask app will be running on
read -p "Flask App Domain [$FLASK_DOMAIN]: " FLASK_DOMAIN
FLASK_DOMAIN=${FLASK_DOMAIN:-$FLASK_DOMAIN}
echo
# Port the Flask app will be running on
read -p "Flask App Port [$FLASK_PORT_DEFAULT]: " FLASK_PORT
FLASK_PORT=${FLASK_PORT:-$FLASK_PORT_DEFAULT}
echo
# URL of the front-end JavaScript application
read -p "Front-End Base URL, port included (e.g. http://localhost, http://localhost:3000): " FRONTEND_DOMAIN
echo
# MongoDB hostname
read -p "Mongo Hostname [$MONGO_HOSTNAME_DEFAULT]: " MONGO_HOSTNAME
MONGO_HOSTNAME=${MONGO_HOSTNAME:-$MONGO_HOSTNAME_DEFAULT}
echo
# MongoDB database name for the app
while [[ $MONGO_APP_DATABASE == '' ]]
do
read -p "Mongo App Database Name: " MONGO_APP_DATABASE
if [[ $MONGO_APP_DATABASE == '' ]]
then
echo "${RED}Required${NC}"
fi
echo
done
# Rename config.cfg.sample to config.cfg
CONFIG_EXAMPLE_FILE=./api/main/config/config.cfg.sample
CONFIG_FILE=./api/main/config/config.cfg
mv $CONFIG_EXAMPLE_FILE $CONFIG_FILE
# Save configuration values to config.cfg
sed -i '' -e "s~##SECRET_KEY##~$SECRET_KEY~g" $CONFIG_FILE
sed -i '' -e "s~##FLASK_DOMAIN##~$FLASK_DOMAIN~g" $CONFIG_FILE
sed -i '' -e "s~##FLASK_PORT##~$FLASK_PORT~g" $CONFIG_FILE
sed -i '' -e "s~##FRONTEND_DOMAIN##~$FRONTEND_DOMAIN~g" $CONFIG_FILE
sed -i '' -e "s~##FLASK_DIRECTORY##~$FLASK_DIRECTORY~g" $CONFIG_FILE
sed -i '' -e "s~##MONGO_HOSTNAME##~$MONGO_HOSTNAME~g" $CONFIG_FILE
sed -i '' -e "s~##MONGO_APP_DATABASE##~$MONGO_APP_DATABASE~g" $CONFIG_FILE
echo "${GREEN}Flask configuration saved!${NC}"
echo
# INSTRUCTIONS TO START THE APP
echo "${BLUE}FIRE IT UP!${NC}"
echo
echo "To start the Flask app run these two commands:"
echo
echo "${GREY}> ${NC}pipenv shell"
echo "${GREY}> ${NC}./run"
echo