From c6fc996b94d5bb1e4d0d86cfaa14e3fae838a848 Mon Sep 17 00:00:00 2001 From: Alex Holliday Date: Mon, 23 Sep 2024 13:24:17 +0800 Subject: [PATCH] Add script to gitignore --- .gitignore | 3 +- Docker/.gitignore | 1 + Docker/quickstart/quickstart.sh | 123 ++++++++++++++++++++++++++++++++ 3 files changed, 125 insertions(+), 2 deletions(-) create mode 100755 Docker/quickstart/quickstart.sh diff --git a/.gitignore b/.gitignore index ebdafb70..ebf2039e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,4 @@ .vite .vscode *.sh -!uptime.sh -!quickstart.sh \ No newline at end of file +!uptime.sh \ No newline at end of file diff --git a/Docker/.gitignore b/Docker/.gitignore index 89aa6bfa..3035bcf7 100644 --- a/Docker/.gitignore +++ b/Docker/.gitignore @@ -1,4 +1,5 @@ *.sh +!quickstart.sh !build_images.sh mongo/data/* redis/data/* diff --git a/Docker/quickstart/quickstart.sh b/Docker/quickstart/quickstart.sh new file mode 100755 index 00000000..b460daaa --- /dev/null +++ b/Docker/quickstart/quickstart.sh @@ -0,0 +1,123 @@ +default_server_base_url="http://localhost:5000/api/v1" +default_client_host="http://localhost" +default_jwt_secret="my_secret" +default_db_type="MongoDB" +default_redis_host="redis" +default_redis_port=6379 +default_token_ttl="99d" + +default_db_username="uptime_user" +default_db_password="uptime_password" + +default_system_email_host="smtp.gmail.com" +default_system_email_port=465 + + +echo "Welcome to the Uptime Monitor Setup Script! \n" +echo + +echo "Configuring server" +printf '%*s\n' "${COLUMNS:-$(tput cols)}" '' | tr ' ' '*' +echo + +db_type=$default_db_type +redis_host=$default_redis_host +redis_port=$default_redis_port +jwt_secret=$default_jwt_secret + + +read -p "Enter a username for your database [$default_db_username]: " db_username +db_username="${db_username:-$default_db_username}" + +read -p "Enter a password for your database [$default_db_password]: " db_password +db_password="${db_password:-$default_db_password}" + +read -p "Enter your system email host [$default_system_email_host]: " system_email_host +system_email_host="${system_email_host:-$default_system_email_host}" +echo "System email host: $system_email_host" +echo + +read -p "Enter your DB connection string [$default_db_connection_string]: " db_connection_string +db_connection_string="mongodb://${db_username}:${db_password}@mongodb:27017/uptime_db" +echo "DB connection string: $db_connection_string" +echo + +read -p "Enter your system email port [$default_system_email_port]: " system_email_port +system_email_port="${system_email_port:-$default_system_email_port}" +echo "System email port: $system_email_port" +echo + + +read -p "Enter your system email address: " system_email_address +echo "System email address: $system_email_address" +echo + +read -p "Enter your system email password: " system_email_password +echo "System email password: $system_email_password" +echo + +read -p "Enter your Token TTL [$default_token_ttl]: " token_ttl +token_ttl="${token_ttl:-$default_token_ttl}" +echo "Token TTL: $token_ttl" +echo + +read -p "Enter your Pagespeed API key: " pagespeed_api_key +echo "Pagespeed API key: $pagespeed_api_key" +echo + +echo "Writing to ./server.env" +echo + +{ + echo "CLIENT_HOST=\"$client_host\"" + echo "JWT_SECRET=\"$jwt_secret\"" + echo "DB_TYPE=\"$db_type\"" + echo "DB_CONNECTION_STRING=\"$db_connection_string\"" + echo "REDIS_HOST=\"$redis_host\"" + echo "REDIS_PORT=$redis_port" + echo "SYSTEM_EMAIL_HOST=\"$system_email_host\"" + echo "SYSTEM_EMAIL_PORT=$system_email_port" + echo "SYSTEM_EMAIL_ADDRESS=\"$system_email_address\"" + echo "SYSTEM_EMAIL_PASSWORD=\"$system_email_password\"" + echo "TOKEN_TTL=\"$token_ttl\"" + echo "PAGESPEED_API_KEY=\"$pagespeed_api_key\"" +} > ./server.env + + +echo +{ + echo USERNAME_ENV_VAR=${db_username} + echo PASSWORD_ENV_VAR=${db_password} +} > ./mongo.env + +mkdir -p ./nginx/conf.d/ + + +cat < ./nginx/conf.d/default.conf +server { + listen 80; + listen [::]:80; + + server_name uptime-demo.bluewavelabs.ca; + server_tokens off; + + location /.well-known/acme-challenge/ { + root /var/www/certbot; + } + + location / { + root /usr/share/nginx/html; + index index.html index.htm; + try_files \$uri \$uri/ /index.html; + } + + location /api/ { + proxy_pass http://server:5000/api/; + proxy_http_version 1.1; + proxy_set_header Host \$host; + proxy_set_header X-Real-IP \$remote_addr; + proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto \$scheme; + } +} +EOL \ No newline at end of file