| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544 |
- #!/bin/bash
- #
- # system management
- #######################################
- # creando usuario
- # Arguments:
- # None
- #######################################
- system_create_user() {
- print_banner
- printf "${WHITE} 💻 Ahora, vamos a crear el usuario para la instancia....${GRAY_LIGHT}"
- printf "\n\n"
- sleep 2
- sudo su - root <<EOF
- sudo useradd -m -s /bin/bash -G sudo deploy
- ENCRYPTED_PASS=deploybotmal
- echo "deploy:${ENCRYPTED_PASS}" | sudo chpasswd
- EOF
- sleep 2
- }
- #######################################
- # clones repostorios usando git
- # Arguments:
- # None
- #######################################
- system_git_clone() {
- print_banner
- printf "${WHITE} 💻 Descargando el código de HieChat...${GRAY_LIGHT}"
- printf "\n\n"
- sleep 2
- sudo su - deploy <<EOF
- git clone http://hiegit.hiesoft.net/esterlin/HIECHAT.git /home/deploy/${instancia_add}/
- EOF
- sleep 2
- }
- #######################################
- # Actualizando systema
- # Arguments:
- # None
- #######################################
- system_update() {
- print_banner
- printf "${WHITE} 💻 Actualicemos el sistema de HieChat...${GRAY_LIGHT}"
- printf "\n\n"
- sleep 2
- sudo su - root <<EOF
- apt -y update
- sudo apt-get install -y npm libxshmfence-dev libgbm-dev wget unzip fontconfig locales gconf-service libasound2 libatk1.0-0 libc6 libcairo2 libcups2 libdbus-1-3 libexpat1 libfontconfig1 libgcc1 libgconf-2-4 libgdk-pixbuf2.0-0 libglib2.0-0 libgtk-3-0 libnspr4 libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 ca-certificates fonts-liberation libappindicator1 libnss3 lsb-release xdg-utils
- EOF
- sleep 2
- }
- #######################################
- # Eliminando systema
- # Arguments:
- # None
- #######################################
- deletar_tudo() {
- print_banner
- printf "${WHITE} 💻 Vamos a eliminar HieChat...${GRAY_LIGHT}"
- printf "\n\n"
- sleep 2
- sudo su - root <<EOF
- docker container rm redis-${empresa_delete} --force
- cd && rm -rf /etc/nginx/sites-enabled/${empresa_delete}-frontend
- cd && rm -rf /etc/nginx/sites-enabled/${empresa_delete}-backend
- cd && rm -rf /etc/nginx/sites-available/${empresa_delete}-frontend
- cd && rm -rf /etc/nginx/sites-available/${empresa_delete}-backend
-
- sleep 2
- sudo su - postgres
- dropuser ${empresa_delete}
- dropdb ${empresa_delete}
- exit
- EOF
- sleep 2
- sudo su - deploy <<EOF
- rm -rf /home/deploy/${empresa_delete}
- pm2 delete ${empresa_delete}-frontend ${empresa_delete}-backend
- pm2 save
- EOF
- sleep 2
- print_banner
- printf "${WHITE} 💻 Eliminación de la instancia/empresa ${empresa_delete} completada con éxito ...${GRAY_LIGHT}"
- printf "\n\n"
- sleep 2
- }
- #######################################
- # bloquear systema
- # Arguments:
- # None
- #######################################
- configurar_bloqueio() {
- print_banner
- printf "${WHITE} 💻 Bloqueemos HieChat...${GRAY_LIGHT}"
- printf "\n\n"
- sleep 2
- sudo su - deploy <<EOF
- pm2 stop ${empresa_bloquear}-backend
- pm2 save
- EOF
- sleep 2
- print_banner
- printf "${WHITE} 💻 Instancia/Compañía ${empresa_bloquear} bloqueada exitosamente ...${GRAY_LIGHT}"
- printf "\n\n"
- sleep 2
- }
- #######################################
- # desbloquear systema
- # Arguments:
- # None
- #######################################
- configurar_desbloqueio() {
- print_banner
- printf "${WHITE} 💻 Desbloqueemos HieChat...${GRAY_LIGHT}"
- printf "\n\n"
- sleep 2
- sudo su - deploy <<EOF
- pm2 start ${empresa_bloquear}-backend
- pm2 save
- EOF
- sleep 2
- print_banner
- printf "${WHITE} 💻 Instancia/Compañía ${empresa_bloquear} desbloqueada exitosamente ...${GRAY_LIGHT}"
- printf "\n\n"
- sleep 2
- }
- #######################################
- # Modificar dominio systema
- # Arguments:
- # None
- #######################################
- configurar_dominio() {
- print_banner
- printf "${WHITE} 💻 Cambiemos los dominios de HieChat...${GRAY_LIGHT}"
- printf "\n\n"
- sleep 2
- sudo su - root <<EOF
- cd && rm -rf /etc/nginx/sites-enabled/${empresa_dominio}-frontend
- cd && rm -rf /etc/nginx/sites-enabled/${empresa_dominio}-backend
- cd && rm -rf /etc/nginx/sites-available/${empresa_dominio}-frontend
- cd && rm -rf /etc/nginx/sites-available/${empresa_dominio}-backend
- EOF
- sleep 2
- sudo su - deploy <<EOF
- cd && cd /home/deploy/${empresa_dominio}/frontend
- sed -i "1c\REACT_APP_BACKEND_URL=https://${alter_backend_url}" .env
- cd && cd /home/deploy/${empresa_dominio}/backend
- sed -i "2c\BACKEND_URL=https://${alter_backend_url}" .env
- sed -i "3c\FRONTEND_URL=https://${alter_frontend_url}" .env
- EOF
- sleep 2
-
- backend_hostname=$(echo "${alter_backend_url/https:\/\/}")
- sudo su - root <<EOF
- cat > /etc/nginx/sites-available/${empresa_dominio}-backend << 'END'
- server {
- server_name $backend_hostname;
- location / {
- proxy_pass http://127.0.0.1:${alter_backend_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/${empresa_dominio}-backend /etc/nginx/sites-enabled
- EOF
- sleep 2
- frontend_hostname=$(echo "${alter_frontend_url/https:\/\/}")
- sudo su - root << EOF
- cat > /etc/nginx/sites-available/${empresa_dominio}-frontend << 'END'
- server {
- server_name $frontend_hostname;
- location / {
- proxy_pass http://127.0.0.1:${alter_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/${empresa_dominio}-frontend /etc/nginx/sites-enabled
- EOF
- sleep 2
- sudo su - root <<EOF
- service nginx restart
- EOF
- sleep 2
- backend_domain=$(echo "${backend_url/https:\/\/}")
- frontend_domain=$(echo "${frontend_url/https:\/\/}")
- sudo su - root <<EOF
- certbot -m $deploy_email \
- --nginx \
- --agree-tos \
- --non-interactive \
- --domains $backend_domain,$frontend_domain
- EOF
- sleep 2
- print_banner
- printf "${WHITE} 💻 El cambio de dominio de la instancia/empresa ${empresa_dominio} se completó correctamente ...${GRAY_LIGHT}"
- printf "\n\n"
- sleep 2
- }
- #######################################
- # instalar node
- # Arguments:
- # None
- #######################################
- system_node_install() {
- print_banner
- printf "${WHITE} 💻 Instalando nodejs...${GRAY_LIGHT}"
- printf "\n\n"
- sleep 2
- sudo su - root <<EOF
- curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
- apt-get install -y nodejs
- sleep 2
- npm install -g npm@latest
- sleep 2
- sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
- wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
- sudo apt-get update -y && sudo apt-get -y install postgresql
- sleep 2
- sudo timedatectl set-timezone America/Santo_Domingo
- sudo npm install -g pm2
-
- EOF
- sleep 2
- }
- #######################################
- # instalar docker
- # Arguments:
- # None
- #######################################
- system_docker_install() {
- print_banner
- printf "${WHITE} 💻 Instalando docker...${GRAY_LIGHT}"
- printf "\n\n"
- sleep 2
- sudo su - root <<EOF
- apt install -y apt-transport-https \
- ca-certificates curl \
- software-properties-common
- curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -
-
- add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable"
- apt install -y docker-ce
- EOF
- sleep 2
- }
- #######################################
- # Ask for file location containing
- # multiple URL for streaming.
- # Globals:
- # WHITE
- # GRAY_LIGHT
- # BATCH_DIR
- # PROJECT_ROOT
- # Arguments:
- # None
- #######################################
- system_puppeteer_dependencies() {
- print_banner
- printf "${WHITE} 💻 Instalación de dependencias de puppeteer...${GRAY_LIGHT}"
- printf "\n\n"
- sleep 2
- sudo su - root <<EOF
- apt-get install -y libxshmfence-dev \
- libgbm-dev \
- wget \
- unzip \
- fontconfig \
- locales \
- gconf-service \
- libasound2 \
- libatk1.0-0 \
- libc6 \
- libcairo2 \
- libcups2 \
- libdbus-1-3 \
- libexpat1 \
- libfontconfig1 \
- libgcc1 \
- libgconf-2-4 \
- libgdk-pixbuf2.0-0 \
- libglib2.0-0 \
- libgtk-3-0 \
- libnspr4 \
- libpango-1.0-0 \
- libpangocairo-1.0-0 \
- libstdc++6 \
- libx11-6 \
- libx11-xcb1 \
- libxcb1 \
- libxcomposite1 \
- libxcursor1 \
- libxdamage1 \
- libxext6 \
- libxfixes3 \
- libxi6 \
- libxrandr2 \
- libxrender1 \
- libxss1 \
- libxtst6 \
- ca-certificates \
- fonts-liberation \
- libappindicator1 \
- libnss3 \
- lsb-release \
- xdg-utils
- EOF
- sleep 2
- }
- #######################################
- # installar pm2
- # Arguments:
- # None
- #######################################
- system_pm2_install() {
- print_banner
- printf "${WHITE} 💻 Instalando pm2...${GRAY_LIGHT}"
- printf "\n\n"
- sleep 2
-
- npm install -g pm2
- sleep 2
- }
- #######################################
- # installar snapd
- # Arguments:
- # None
- #######################################
- system_snapd_install() {
- print_banner
- printf "${WHITE} 💻 Instalando snapd...${GRAY_LIGHT}"
- printf "\n\n"
- sleep 2
- sudo su - root <<EOF
- apt install -y snapd
- snap install core
- snap refresh core
- EOF
- sleep 2
- }
- #######################################
- # installs certbot
- # Arguments:
- # None
- #######################################
- system_certbot_install() {
- print_banner
- printf "${WHITE} 💻 Instalando certbot...${GRAY_LIGHT}"
- printf "\n\n"
- sleep 2
- sudo su - root <<EOF
- apt-get remove certbot
- apt install python3-certbot-nginx -y
- ln -s /snap/bin/certbot /usr/bin/certbot
- EOF
- sleep 2
- }
- #######################################
- # installs nginx
- # Arguments:
- # None
- #######################################
- system_nginx_install() {
- print_banner
- printf "${WHITE} 💻 Instalando nginx...${GRAY_LIGHT}"
- printf "\n\n"
- sleep 2
- sudo su - root <<EOF
- apt install -y nginx
- rm /etc/nginx/sites-enabled/default
- EOF
- sleep 2
- }
- #######################################
- # restarts nginx
- # Arguments:
- # None
- #######################################
- system_nginx_restart() {
- print_banner
- printf "${WHITE} 💻 reiniciando nginx...${GRAY_LIGHT}"
- printf "\n\n"
- sleep 2
- sudo su - root <<EOF
- service nginx restart
- EOF
- sleep 2
- }
- #######################################
- # setup for nginx.conf
- # Arguments:
- # None
- #######################################
- system_nginx_conf() {
- print_banner
- printf "${WHITE} 💻 configurando nginx...${GRAY_LIGHT}"
- printf "\n\n"
- sleep 2
- sudo su - root << EOF
- cat > /etc/nginx/conf.d/deploy.conf << 'END'
- client_max_body_size 100M;
- END
- EOF
- sleep 2
- }
- #######################################
- # installs nginx
- # Arguments:
- # None
- #######################################
- system_certbot_setup() {
- print_banner
- printf "${WHITE} 💻 Configurando certbot...${GRAY_LIGHT}"
- printf "\n\n"
- sleep 2
- backend_domain=$(echo "${backend_url/https:\/\/}")
- frontend_domain=$(echo "${frontend_url/https:\/\/}")
- sudo su - root <<EOF
- certbot -m $deploy_email \
- --nginx \
- --agree-tos \
- --non-interactive \
- --domains $backend_domain,$frontend_domain
- EOF
- sleep 2
- }
|