| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182 |
- #!/bin/bash
- #
- # functions for setting up app frontend
- #######################################
- # installed node packages
- # Arguments:
- # None
- #######################################
- frontend_node_dependencies() {
- print_banner
- printf "${WHITE} 💻 Instalando dependências do frontend...${GRAY_LIGHT}"
- printf "\n\n"
- sleep 2
- sudo su - deploy <<EOF
- cd /home/deploy/${instancia_add}/frontend
- npm install --force
- EOF
- sleep 2
- }
- #######################################
- # compiles frontend code
- # Arguments:
- # None
- #######################################
- frontend_node_build() {
- print_banner
- printf "${WHITE} 💻 Compilando o código do frontend...${GRAY_LIGHT}"
- printf "\n\n"
- sleep 2
- sudo su - deploy <<EOF
- cd /home/deploy/${instancia_add}/frontend
- npm run build
- EOF
- sleep 2
- }
- #######################################
- # updates frontend code
- # Arguments:
- # None
- #######################################
- frontend_update() {
- print_banner
- printf "${WHITE} 💻 Atualizando o frontend...${GRAY_LIGHT}"
- printf "\n\n"
- sleep 2
- sudo su - deploy <<EOF
- cd /home/deploy/${empresa_atualizar}
- pm2 stop ${empresa_atualizar}-frontend
- git pull
- cd /home/deploy/${empresa_atualizar}/frontend
- npm install
- rm -rf build
- npm run build
- pm2 start ${empresa_atualizar}-frontend
- pm2 save
- EOF
- sleep 2
- }
- #######################################
- # sets frontend environment variables
- # Arguments:
- # None
- #######################################
- frontend_set_env() {
- print_banner
- printf "${WHITE} 💻 Configurando variáveis de ambiente (frontend)...${GRAY_LIGHT}"
- printf "\n\n"
- sleep 2
- # ensure idempotency
- backend_url=$(echo "${backend_url/https:\/\/}")
- backend_url=${backend_url%%/*}
- backend_url=https://$backend_url
- sudo su - deploy << EOF
- cat <<[-]EOF > /home/deploy/${instancia_add}/frontend/.env
- REACT_APP_BACKEND_URL=${backend_url}
- REACT_APP_HOURS_CLOSE_TICKETS_AUTO = 24
- [-]EOF
- EOF
- sleep 2
- sudo su - deploy << EOF
- cat <<[-]EOF > /home/deploy/${instancia_add}/frontend/server.js
- //simple express server to run frontend production build;
- const express = require("express");
- const path = require("path");
- const app = express();
- app.use(express.static(path.join(__dirname, "build")));
- app.get("/*", function (req, res) {
- res.sendFile(path.join(__dirname, "build", "index.html"));
- });
- app.listen(${frontend_port});
- [-]EOF
- EOF
- sleep 2
- }
- #######################################
- # starts pm2 for frontend
- # Arguments:
- # None
- #######################################
- frontend_start_pm2() {
- print_banner
- printf "${WHITE} 💻 Iniciando pm2 (frontend)...${GRAY_LIGHT}"
- printf "\n\n"
- sleep 2
- sudo su - deploy <<EOF
- cd /home/deploy/${instancia_add}/frontend
- pm2 start server.js --name ${instancia_add}-frontend
- pm2 save
- EOF
- sleep 2
-
- sudo su - root <<EOF
- pm2 startup
- sudo env PATH=$PATH:/usr/bin /usr/lib/node_modules/pm2/bin/pm2 startup systemd -u deploy --hp /home/deploy
- EOF
- sleep 2
- }
- #######################################
- # sets up nginx for frontend
- # Arguments:
- # None
- #######################################
- frontend_nginx_setup() {
- print_banner
- printf "${WHITE} 💻 Configurando nginx (frontend)...${GRAY_LIGHT}"
- printf "\n\n"
- sleep 2
- frontend_hostname=$(echo "${frontend_url/https:\/\/}")
- sudo su - root << EOF
- cat > /etc/nginx/sites-available/${instancia_add}-frontend << 'END'
- server {
- server_name $frontend_hostname;
- location / {
- proxy_pass http://127.0.0.1:${frontend_port};
- proxy_http_version 1.1;
- proxy_set_header Upgrade \$http_upgrade;
- proxy_set_header Connection 'upgrade';
- proxy_set_header Host \$host;
- proxy_set_header X-Real-IP \$remote_addr;
- proxy_set_header X-Forwarded-Proto \$scheme;
- proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
- proxy_cache_bypass \$http_upgrade;
- }
- }
- END
- ln -s /etc/nginx/sites-available/${instancia_add}-frontend /etc/nginx/sites-enabled
- EOF
- sleep 2
- }
|