atendeticket 2.1.13 → 2.1.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/TODO.md +23 -0
- package/appInstaller.js +1 -299
- package/instalador_antigo/LICENSE +5 -0
- package/instalador_antigo/Multizap.zip +0 -0
- package/instalador_antigo/README.md +10 -0
- package/instalador_antigo/config +3 -0
- package/instalador_antigo/instalar_nova_instancia +75 -0
- package/instalador_antigo/instalar_primaria +220 -0
- package/instalador_antigo/lib/_backend.sh +453 -0
- package/instalador_antigo/lib/_frontend.sh +342 -0
- package/instalador_antigo/lib/_inquiry.sh +247 -0
- package/instalador_antigo/lib/_system.sh +676 -0
- package/instalador_antigo/lib/manifest.sh +6 -0
- package/instalador_antigo/utils/_banner.sh +45 -0
- package/instalador_antigo/utils/manifest.sh +3 -0
- package/instalador_antigo/variables/_app.sh +15 -0
- package/instalador_antigo/variables/_background.sh +6 -0
- package/instalador_antigo/variables/_fonts.sh +16 -0
- package/instalador_antigo/variables/_general.sh +5 -0
- package/instalador_antigo/variables/manifest.sh +6 -0
- package/installers/system/certbotSetup.js +16 -0
- package/installers/system/copyProjectFiles.js +20 -0
- package/installers/system/index.js +12 -2
- package/package.json +1 -1
|
@@ -0,0 +1,676 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
#
|
|
3
|
+
# system management
|
|
4
|
+
|
|
5
|
+
#######################################
|
|
6
|
+
# creates user
|
|
7
|
+
# Arguments:
|
|
8
|
+
# None
|
|
9
|
+
#######################################
|
|
10
|
+
system_create_user() {
|
|
11
|
+
print_banner
|
|
12
|
+
printf "${WHITE} 💻 Agora, vamos criar o usuário para a nova Instância...${GRAY_LIGHT}"
|
|
13
|
+
printf "\n\n"
|
|
14
|
+
|
|
15
|
+
sleep 2
|
|
16
|
+
|
|
17
|
+
# cria o usuário sem senha
|
|
18
|
+
sudo useradd -m -s /bin/bash -G sudo deploy
|
|
19
|
+
|
|
20
|
+
# define a senha corretamente
|
|
21
|
+
echo "deploy:${mysql_root_password}" | sudo chpasswd
|
|
22
|
+
|
|
23
|
+
sleep 2
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
#######################################
|
|
28
|
+
# garante unzip instalado (idempotente)
|
|
29
|
+
# Arguments:
|
|
30
|
+
# None
|
|
31
|
+
#######################################
|
|
32
|
+
system_ensure_unzip() {
|
|
33
|
+
print_banner
|
|
34
|
+
printf "${WHITE} 💻 Verificando dependência: unzip...${GRAY_LIGHT}\n\n"
|
|
35
|
+
sleep 1
|
|
36
|
+
|
|
37
|
+
sudo su - root <<'EOF'
|
|
38
|
+
if ! command -v unzip >/dev/null 2>&1; then
|
|
39
|
+
apt -y update && apt -y install unzip
|
|
40
|
+
fi
|
|
41
|
+
EOF
|
|
42
|
+
sleep 1
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
#######################################
|
|
46
|
+
# cria pasta da instância (idempotente)
|
|
47
|
+
# Arguments:
|
|
48
|
+
# None
|
|
49
|
+
#######################################
|
|
50
|
+
system_create_folder() {
|
|
51
|
+
print_banner
|
|
52
|
+
printf "${WHITE} 💻 Agora, vamos criar a nova pasta da Instância...${GRAY_LIGHT}"
|
|
53
|
+
printf "\n\n"
|
|
54
|
+
|
|
55
|
+
sleep 2
|
|
56
|
+
|
|
57
|
+
sudo su - deploy <<EOF
|
|
58
|
+
mkdir -p "/home/deploy/${instancia_add}"
|
|
59
|
+
EOF
|
|
60
|
+
|
|
61
|
+
sleep 2
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
#######################################
|
|
65
|
+
# copia o zip para a pasta da instância
|
|
66
|
+
# Arguments:
|
|
67
|
+
# None
|
|
68
|
+
#######################################
|
|
69
|
+
system_mv_folder() {
|
|
70
|
+
print_banner
|
|
71
|
+
printf "${WHITE} 💻 Fazendo download do código Multizap...${GRAY_LIGHT}"
|
|
72
|
+
printf "\n\n"
|
|
73
|
+
|
|
74
|
+
sleep 2
|
|
75
|
+
|
|
76
|
+
sudo su - root <<EOF
|
|
77
|
+
cp -f "${PROJECT_ROOT}/Multizap.zip" "/home/deploy/${instancia_add}/"
|
|
78
|
+
chown deploy:deploy "/home/deploy/${instancia_add}/Multizap.zip"
|
|
79
|
+
EOF
|
|
80
|
+
|
|
81
|
+
sleep 2
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
#######################################
|
|
85
|
+
# unzip Multizap
|
|
86
|
+
# Arguments:
|
|
87
|
+
# None
|
|
88
|
+
#######################################
|
|
89
|
+
system_unzip_Multizap() {
|
|
90
|
+
print_banner
|
|
91
|
+
printf "${WHITE} 💻 Extraindo o Multizap...${GRAY_LIGHT}"
|
|
92
|
+
printf "\n\n"
|
|
93
|
+
|
|
94
|
+
sleep 2
|
|
95
|
+
|
|
96
|
+
# Garante que o unzip esteja disponível
|
|
97
|
+
system_ensure_unzip
|
|
98
|
+
|
|
99
|
+
sudo su - deploy <<EOF
|
|
100
|
+
set -e
|
|
101
|
+
cd "/home/deploy/${instancia_add}"
|
|
102
|
+
# -o: overwrite; -q: quiet
|
|
103
|
+
unzip -o -q "Multizap.zip" -d "/home/deploy/${instancia_add}"
|
|
104
|
+
EOF
|
|
105
|
+
|
|
106
|
+
# Ajuste de permissões após extração
|
|
107
|
+
sudo chown -R deploy:deploy "/home/deploy/${instancia_add}"
|
|
108
|
+
if [ -d "/home/deploy/${instancia_add}/backend/public" ]; then
|
|
109
|
+
sudo chmod -R 777 "/home/deploy/${instancia_add}/backend/public"
|
|
110
|
+
fi
|
|
111
|
+
|
|
112
|
+
sleep 1
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
#######################################
|
|
116
|
+
# localiza e executa o install.sh
|
|
117
|
+
# Arguments:
|
|
118
|
+
# None
|
|
119
|
+
#######################################
|
|
120
|
+
system_run_installer() {
|
|
121
|
+
print_banner
|
|
122
|
+
printf "${WHITE} 💻 Executando instalador do Multizap...${GRAY_LIGHT}\n\n"
|
|
123
|
+
sleep 1
|
|
124
|
+
|
|
125
|
+
# Encontra o primeiro install.sh (mesmo se o zip criar subpasta)
|
|
126
|
+
INSTALLER_PATH=$(sudo -u deploy bash -lc "shopt -s globstar nullglob; for f in /home/deploy/${instancia_add}/**/install.sh; do echo \"\$f\"; break; done")
|
|
127
|
+
|
|
128
|
+
if [ -z "$INSTALLER_PATH" ]; then
|
|
129
|
+
printf "${RED} ⚠️ Não encontrei install.sh dentro de /home/deploy/${instancia_add}. Verifique o conteúdo do zip.${GRAY_LIGHT}\n"
|
|
130
|
+
return 1
|
|
131
|
+
fi
|
|
132
|
+
|
|
133
|
+
sudo chmod +x "$INSTALLER_PATH"
|
|
134
|
+
sudo -u deploy bash -lc "cd \"\$(dirname \"$INSTALLER_PATH\")\" && ./install.sh"
|
|
135
|
+
|
|
136
|
+
sleep 1
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
#######################################
|
|
140
|
+
# updates system
|
|
141
|
+
# Arguments:
|
|
142
|
+
# None
|
|
143
|
+
#######################################
|
|
144
|
+
system_update() {
|
|
145
|
+
print_banner
|
|
146
|
+
printf "${WHITE} 💻 Vamos atualizar o sistema Multizap...${GRAY_LIGHT}"
|
|
147
|
+
printf "\n\n"
|
|
148
|
+
|
|
149
|
+
sleep 2
|
|
150
|
+
|
|
151
|
+
sudo su - root <<EOF
|
|
152
|
+
apt -y update
|
|
153
|
+
sudo 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
|
|
154
|
+
EOF
|
|
155
|
+
|
|
156
|
+
sleep 2
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
#######################################
|
|
160
|
+
# delete system
|
|
161
|
+
# Arguments:
|
|
162
|
+
# None
|
|
163
|
+
#######################################
|
|
164
|
+
deletar_tudo() {
|
|
165
|
+
print_banner
|
|
166
|
+
printf "${WHITE} 💻 Vamos deletar uma Instância do Multizap...${GRAY_LIGHT}"
|
|
167
|
+
printf "\n\n"
|
|
168
|
+
|
|
169
|
+
sleep 2
|
|
170
|
+
|
|
171
|
+
sudo su - root <<EOF
|
|
172
|
+
docker container rm redis-${empresa_delete} --force
|
|
173
|
+
cd && rm -rf /etc/nginx/sites-enabled/${empresa_delete}-frontend
|
|
174
|
+
cd && rm -rf /etc/nginx/sites-enabled/${empresa_delete}-backend
|
|
175
|
+
cd && rm -rf /etc/nginx/sites-available/${empresa_delete}-frontend
|
|
176
|
+
cd && rm -rf /etc/nginx/sites-available/${empresa_delete}-backend
|
|
177
|
+
|
|
178
|
+
sleep 2
|
|
179
|
+
|
|
180
|
+
sudo su - postgres
|
|
181
|
+
dropuser ${empresa_delete}
|
|
182
|
+
dropdb ${empresa_delete}
|
|
183
|
+
exit
|
|
184
|
+
EOF
|
|
185
|
+
|
|
186
|
+
sleep 2
|
|
187
|
+
|
|
188
|
+
sudo su - deploy <<EOF
|
|
189
|
+
rm -rf /home/deploy/${empresa_delete}
|
|
190
|
+
pm2 delete ${empresa_delete}-frontend ${empresa_delete}-backend
|
|
191
|
+
pm2 save
|
|
192
|
+
EOF
|
|
193
|
+
|
|
194
|
+
sleep 2
|
|
195
|
+
|
|
196
|
+
print_banner
|
|
197
|
+
printf "${WHITE} 💻 Remoção da Instância/Empresa ${empresa_delete} realizado com sucesso ...${GRAY_LIGHT}"
|
|
198
|
+
printf "\n\n"
|
|
199
|
+
|
|
200
|
+
sleep 2
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
#######################################
|
|
204
|
+
# bloquear system
|
|
205
|
+
# Arguments:
|
|
206
|
+
# None
|
|
207
|
+
#######################################
|
|
208
|
+
configurar_bloqueio() {
|
|
209
|
+
print_banner
|
|
210
|
+
printf "${WHITE} 💻 Vamos Bloquear o Multizap...${GRAY_LIGHT}"
|
|
211
|
+
printf "\n\n"
|
|
212
|
+
|
|
213
|
+
sleep 2
|
|
214
|
+
|
|
215
|
+
sudo su - deploy <<EOF
|
|
216
|
+
pm2 stop ${empresa_bloquear}-backend
|
|
217
|
+
pm2 save
|
|
218
|
+
EOF
|
|
219
|
+
|
|
220
|
+
sleep 2
|
|
221
|
+
|
|
222
|
+
print_banner
|
|
223
|
+
printf "${WHITE} 💻 Bloqueio da Instância/Empresa ${empresa_bloquear} realizado com sucesso ...${GRAY_LIGHT}"
|
|
224
|
+
printf "\n\n"
|
|
225
|
+
|
|
226
|
+
sleep 2
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
#######################################
|
|
230
|
+
# desbloquear system
|
|
231
|
+
# Arguments:
|
|
232
|
+
# None
|
|
233
|
+
#######################################
|
|
234
|
+
configurar_desbloqueio() {
|
|
235
|
+
print_banner
|
|
236
|
+
printf "${WHITE} 💻 Vamos Desbloquear o Multizap de uma Instância...${GRAY_LIGHT}"
|
|
237
|
+
printf "\n\n"
|
|
238
|
+
|
|
239
|
+
sleep 2
|
|
240
|
+
|
|
241
|
+
sudo su - deploy <<EOF
|
|
242
|
+
pm2 start ${empresa_bloquear}-backend
|
|
243
|
+
pm2 save
|
|
244
|
+
EOF
|
|
245
|
+
|
|
246
|
+
sleep 2
|
|
247
|
+
|
|
248
|
+
print_banner
|
|
249
|
+
printf "${WHITE} 💻 Desbloqueio da Instância/Empresa ${empresa_desbloquear} realizado com sucesso ...${GRAY_LIGHT}"
|
|
250
|
+
printf "\n\n"
|
|
251
|
+
|
|
252
|
+
sleep 2
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
#######################################
|
|
256
|
+
# alter dominio system
|
|
257
|
+
# Arguments:
|
|
258
|
+
# None
|
|
259
|
+
#######################################
|
|
260
|
+
configurar_dominio() {
|
|
261
|
+
print_banner
|
|
262
|
+
printf "${WHITE} 💻 Vamos alterar os domínios do Multizap de uma Instância...${GRAY_LIGHT}"
|
|
263
|
+
printf "\n\n"
|
|
264
|
+
|
|
265
|
+
sleep 2
|
|
266
|
+
|
|
267
|
+
sudo su - root <<EOF
|
|
268
|
+
cd && rm -rf /etc/nginx/sites-enabled/${empresa_dominio}-frontend
|
|
269
|
+
cd && rm -rf /etc/nginx/sites-enabled/${empresa_dominio}-backend
|
|
270
|
+
cd && rm -rf /etc/nginx/sites-available/${empresa_dominio}-frontend
|
|
271
|
+
cd && rm -rf /etc/nginx/sites-available/${empresa_dominio}-backend
|
|
272
|
+
EOF
|
|
273
|
+
|
|
274
|
+
sleep 2
|
|
275
|
+
|
|
276
|
+
sudo su - deploy <<EOF
|
|
277
|
+
cd && cd /home/deploy/${empresa_dominio}/frontend
|
|
278
|
+
sed -i "1c\REACT_APP_BACKEND_URL=https://${alter_backend_url}" .env
|
|
279
|
+
cd && cd /home/deploy/${empresa_dominio}/backend
|
|
280
|
+
sed -i "2c\BACKEND_URL=https://${alter_backend_url}" .env
|
|
281
|
+
sed -i "3c\FRONTEND_URL=https://${alter_frontend_url}" .env
|
|
282
|
+
EOF
|
|
283
|
+
|
|
284
|
+
sleep 2
|
|
285
|
+
|
|
286
|
+
backend_hostname=$(echo "${alter_backend_url/https:\/\/}")
|
|
287
|
+
|
|
288
|
+
sudo su - root <<EOF
|
|
289
|
+
cat > /etc/nginx/sites-available/${empresa_dominio}-backend << 'END'
|
|
290
|
+
server {
|
|
291
|
+
server_name $backend_hostname;
|
|
292
|
+
location / {
|
|
293
|
+
proxy_pass http://127.0.0.1:${alter_backend_port};
|
|
294
|
+
proxy_http_version 1.1;
|
|
295
|
+
proxy_set_header Upgrade \$http_upgrade;
|
|
296
|
+
proxy_set_header Connection 'upgrade';
|
|
297
|
+
proxy_set_header Host \$host;
|
|
298
|
+
proxy_set_header X-Real-IP \$remote_addr;
|
|
299
|
+
proxy_set_header X-Forwarded-Proto \$scheme;
|
|
300
|
+
proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
|
|
301
|
+
proxy_cache_bypass \$http_upgrade;
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
END
|
|
305
|
+
ln -s /etc/nginx/sites-available/${empresa_dominio}-backend /etc/nginx/sites-enabled
|
|
306
|
+
EOF
|
|
307
|
+
|
|
308
|
+
sleep 2
|
|
309
|
+
|
|
310
|
+
frontend_hostname=$(echo "${alter_frontend_url/https:\/\/}")
|
|
311
|
+
|
|
312
|
+
sudo su - root << EOF
|
|
313
|
+
cat > /etc/nginx/sites-available/${empresa_dominio}-frontend << 'END'
|
|
314
|
+
server {
|
|
315
|
+
server_name $frontend_hostname;
|
|
316
|
+
location / {
|
|
317
|
+
proxy_pass http://127.0.0.1:${alter_frontend_port};
|
|
318
|
+
proxy_http_version 1.1;
|
|
319
|
+
proxy_set_header Upgrade \$http_upgrade;
|
|
320
|
+
proxy_set_header Connection 'upgrade';
|
|
321
|
+
proxy_set_header Host \$host;
|
|
322
|
+
proxy_set_header X-Real-IP \$remote_addr;
|
|
323
|
+
proxy_set_header X-Forwarded-Proto \$scheme;
|
|
324
|
+
proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
|
|
325
|
+
proxy_cache_bypass \$http_upgrade;
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
END
|
|
329
|
+
ln -s /etc/nginx/sites-available/${empresa_dominio}-frontend /etc/nginx/sites-enabled
|
|
330
|
+
EOF
|
|
331
|
+
|
|
332
|
+
sleep 2
|
|
333
|
+
|
|
334
|
+
sudo su - root <<EOF
|
|
335
|
+
service nginx restart
|
|
336
|
+
EOF
|
|
337
|
+
|
|
338
|
+
sleep 2
|
|
339
|
+
|
|
340
|
+
backend_domain=$(echo "${backend_url/https:\/\/}")
|
|
341
|
+
frontend_domain=$(echo "${frontend_url/https:\/\/}")
|
|
342
|
+
|
|
343
|
+
sudo su - root <<EOF
|
|
344
|
+
certbot -m $deploy_email \
|
|
345
|
+
--nginx \
|
|
346
|
+
--agree-tos \
|
|
347
|
+
--non-interactive \
|
|
348
|
+
--domains $backend_domain,$frontend_domain
|
|
349
|
+
EOF
|
|
350
|
+
|
|
351
|
+
sleep 2
|
|
352
|
+
|
|
353
|
+
print_banner
|
|
354
|
+
printf "${WHITE} 💻 Alteração de dominio da Instância/Empresa ${empresa_dominio} realizado com sucesso ...${GRAY_LIGHT}"
|
|
355
|
+
printf "\n\n"
|
|
356
|
+
|
|
357
|
+
sleep 2
|
|
358
|
+
}
|
|
359
|
+
|
|
360
|
+
#######################################
|
|
361
|
+
# installs node
|
|
362
|
+
# Arguments:
|
|
363
|
+
# None
|
|
364
|
+
#######################################
|
|
365
|
+
system_node_install() {
|
|
366
|
+
print_banner
|
|
367
|
+
printf "${WHITE} 💻 Instalando nodejs...${GRAY_LIGHT}"
|
|
368
|
+
printf "\n\n"
|
|
369
|
+
|
|
370
|
+
sleep 2
|
|
371
|
+
|
|
372
|
+
sudo su - root <<EOF
|
|
373
|
+
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
|
|
374
|
+
apt-get install -y nodejs
|
|
375
|
+
sleep 2
|
|
376
|
+
npm install -g npm@latest
|
|
377
|
+
sleep 2
|
|
378
|
+
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
|
|
379
|
+
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
|
|
380
|
+
sudo apt-get update -y && sudo apt-get -y install postgresql
|
|
381
|
+
sleep 2
|
|
382
|
+
sudo timedatectl set-timezone America/Sao_Paulo
|
|
383
|
+
EOF
|
|
384
|
+
|
|
385
|
+
sleep 2
|
|
386
|
+
}
|
|
387
|
+
|
|
388
|
+
#######################################
|
|
389
|
+
# installs docker
|
|
390
|
+
# Arguments:
|
|
391
|
+
# None
|
|
392
|
+
#######################################
|
|
393
|
+
system_docker_install() {
|
|
394
|
+
print_banner
|
|
395
|
+
printf "${WHITE} 💻 Instalando docker...${GRAY_LIGHT}"
|
|
396
|
+
printf "\n\n"
|
|
397
|
+
|
|
398
|
+
sleep 2
|
|
399
|
+
|
|
400
|
+
sudo su - root <<EOF
|
|
401
|
+
apt install -y apt-transport-https \
|
|
402
|
+
ca-certificates curl \
|
|
403
|
+
software-properties-common
|
|
404
|
+
|
|
405
|
+
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -
|
|
406
|
+
|
|
407
|
+
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable"
|
|
408
|
+
|
|
409
|
+
apt install -y docker-ce
|
|
410
|
+
EOF
|
|
411
|
+
|
|
412
|
+
sleep 2
|
|
413
|
+
}
|
|
414
|
+
|
|
415
|
+
#######################################
|
|
416
|
+
# instala dependências do puppeteer
|
|
417
|
+
# Arguments:
|
|
418
|
+
# None
|
|
419
|
+
#######################################
|
|
420
|
+
system_puppeteer_dependencies() {
|
|
421
|
+
print_banner
|
|
422
|
+
printf "${WHITE} 💻 Instalando dependências do puppeteer...${GRAY_LIGHT}"
|
|
423
|
+
printf "\n\n"
|
|
424
|
+
|
|
425
|
+
sleep 2
|
|
426
|
+
|
|
427
|
+
sudo su - root <<EOF
|
|
428
|
+
apt-get install -y libxshmfence-dev \
|
|
429
|
+
libgbm-dev \
|
|
430
|
+
wget \
|
|
431
|
+
unzip \
|
|
432
|
+
fontconfig \
|
|
433
|
+
locales \
|
|
434
|
+
gconf-service \
|
|
435
|
+
libasound2 \
|
|
436
|
+
libatk1.0-0 \
|
|
437
|
+
libc6 \
|
|
438
|
+
libcairo2 \
|
|
439
|
+
libcups2 \
|
|
440
|
+
libdbus-1-3 \
|
|
441
|
+
libexpat1 \
|
|
442
|
+
libfontconfig1 \
|
|
443
|
+
libgcc1 \
|
|
444
|
+
libgconf-2-4 \
|
|
445
|
+
libgdk-pixbuf2.0-0 \
|
|
446
|
+
libglib2.0-0 \
|
|
447
|
+
libgtk-3-0 \
|
|
448
|
+
libnspr4 \
|
|
449
|
+
libpango-1.0-0 \
|
|
450
|
+
libpangocairo-1.0-0 \
|
|
451
|
+
libstdc++6 \
|
|
452
|
+
libx11-6 \
|
|
453
|
+
libx11-xcb1 \
|
|
454
|
+
libxcb1 \
|
|
455
|
+
libxcomposite1 \
|
|
456
|
+
libxcursor1 \
|
|
457
|
+
libxdamage1 \
|
|
458
|
+
libxext6 \
|
|
459
|
+
libxfixes3 \
|
|
460
|
+
libxi6 \
|
|
461
|
+
libxrandr2 \
|
|
462
|
+
libxrender1 \
|
|
463
|
+
libxss1 \
|
|
464
|
+
libxtst6 \
|
|
465
|
+
ca-certificates \
|
|
466
|
+
fonts-liberation \
|
|
467
|
+
libappindicator1 \
|
|
468
|
+
libnss3 \
|
|
469
|
+
lsb-release \
|
|
470
|
+
xdg-utils
|
|
471
|
+
EOF
|
|
472
|
+
|
|
473
|
+
sleep 2
|
|
474
|
+
}
|
|
475
|
+
|
|
476
|
+
#######################################
|
|
477
|
+
# installs pm2
|
|
478
|
+
# Arguments:
|
|
479
|
+
# None
|
|
480
|
+
#######################################
|
|
481
|
+
system_pm2_install() {
|
|
482
|
+
print_banner
|
|
483
|
+
printf "${WHITE} 💻 Instalando pm2...${GRAY_LIGHT}"
|
|
484
|
+
printf "\n\n"
|
|
485
|
+
|
|
486
|
+
sleep 2
|
|
487
|
+
|
|
488
|
+
sudo su - root <<EOF
|
|
489
|
+
npm install -g pm2
|
|
490
|
+
EOF
|
|
491
|
+
|
|
492
|
+
sleep 2
|
|
493
|
+
}
|
|
494
|
+
|
|
495
|
+
#######################################
|
|
496
|
+
# installs snapd
|
|
497
|
+
# Arguments:
|
|
498
|
+
# None
|
|
499
|
+
#######################################
|
|
500
|
+
system_snapd_install() {
|
|
501
|
+
print_banner
|
|
502
|
+
printf "${WHITE} 💻 Instalando snapd...${GRAY_LIGHT}"
|
|
503
|
+
printf "\n\n"
|
|
504
|
+
|
|
505
|
+
sleep 2
|
|
506
|
+
|
|
507
|
+
sudo su - root <<EOF
|
|
508
|
+
apt install -y snapd
|
|
509
|
+
snap install core
|
|
510
|
+
snap refresh core
|
|
511
|
+
EOF
|
|
512
|
+
|
|
513
|
+
sleep 2
|
|
514
|
+
}
|
|
515
|
+
|
|
516
|
+
#######################################
|
|
517
|
+
# installs certbot
|
|
518
|
+
# Arguments:
|
|
519
|
+
# None
|
|
520
|
+
#######################################
|
|
521
|
+
system_certbot_install() {
|
|
522
|
+
print_banner
|
|
523
|
+
printf "${WHITE} 💻 Instalando certbot...${GRAY_LIGHT}"
|
|
524
|
+
printf "\n\n"
|
|
525
|
+
|
|
526
|
+
sleep 2
|
|
527
|
+
|
|
528
|
+
sudo su - root <<EOF
|
|
529
|
+
apt-get remove -y certbot || true
|
|
530
|
+
snap install --classic certbot
|
|
531
|
+
ln -sf /snap/bin/certbot /usr/bin/certbot
|
|
532
|
+
EOF
|
|
533
|
+
|
|
534
|
+
sleep 2
|
|
535
|
+
}
|
|
536
|
+
|
|
537
|
+
#######################################
|
|
538
|
+
# installs nginx
|
|
539
|
+
# Arguments:
|
|
540
|
+
# None
|
|
541
|
+
#######################################
|
|
542
|
+
system_nginx_install() {
|
|
543
|
+
print_banner
|
|
544
|
+
printf "${WHITE} 💻 Instalando nginx...${GRAY_LIGHT}"
|
|
545
|
+
printf "\n\n"
|
|
546
|
+
|
|
547
|
+
sleep 2
|
|
548
|
+
|
|
549
|
+
sudo su - root <<EOF
|
|
550
|
+
apt install -y nginx
|
|
551
|
+
rm -f /etc/nginx/sites-enabled/default
|
|
552
|
+
EOF
|
|
553
|
+
|
|
554
|
+
sleep 2
|
|
555
|
+
}
|
|
556
|
+
|
|
557
|
+
#######################################
|
|
558
|
+
# restarts nginx
|
|
559
|
+
# Arguments:
|
|
560
|
+
# None
|
|
561
|
+
#######################################
|
|
562
|
+
system_nginx_restart() {
|
|
563
|
+
print_banner
|
|
564
|
+
printf "${WHITE} 💻 Reiniciando nginx...${GRAY_LIGHT}"
|
|
565
|
+
printf "\n\n"
|
|
566
|
+
|
|
567
|
+
sleep 2
|
|
568
|
+
|
|
569
|
+
sudo su - root <<EOF
|
|
570
|
+
service nginx restart
|
|
571
|
+
EOF
|
|
572
|
+
|
|
573
|
+
sleep 2
|
|
574
|
+
}
|
|
575
|
+
|
|
576
|
+
#######################################
|
|
577
|
+
# setup for nginx.conf
|
|
578
|
+
# Arguments:
|
|
579
|
+
# None
|
|
580
|
+
#######################################
|
|
581
|
+
system_nginx_conf() {
|
|
582
|
+
print_banner
|
|
583
|
+
printf "${WHITE} 💻 Configurando nginx...${GRAY_LIGHT}"
|
|
584
|
+
printf "\n\n"
|
|
585
|
+
|
|
586
|
+
sleep 2
|
|
587
|
+
|
|
588
|
+
sudo su - root << 'EOF'
|
|
589
|
+
cat > /etc/nginx/conf.d/deploy.conf << 'END'
|
|
590
|
+
client_max_body_size 100M;
|
|
591
|
+
END
|
|
592
|
+
EOF
|
|
593
|
+
|
|
594
|
+
sleep 2
|
|
595
|
+
}
|
|
596
|
+
|
|
597
|
+
#######################################
|
|
598
|
+
# certbot setup
|
|
599
|
+
# Arguments:
|
|
600
|
+
# None
|
|
601
|
+
#######################################
|
|
602
|
+
system_certbot_setup() {
|
|
603
|
+
print_banner
|
|
604
|
+
printf "${WHITE} 💻 Configurando certbot...${GRAY_LIGHT}"
|
|
605
|
+
printf "\n\n"
|
|
606
|
+
|
|
607
|
+
sleep 2
|
|
608
|
+
|
|
609
|
+
backend_domain=$(echo "${backend_url/https:\/\/}")
|
|
610
|
+
frontend_domain=$(echo "${frontend_url/https:\/\/}")
|
|
611
|
+
|
|
612
|
+
sudo su - root <<EOF
|
|
613
|
+
certbot -m $deploy_email \
|
|
614
|
+
--nginx \
|
|
615
|
+
--agree-tos \
|
|
616
|
+
--non-interactive \
|
|
617
|
+
--domains $backend_domain,$frontend_domain
|
|
618
|
+
EOF
|
|
619
|
+
|
|
620
|
+
sleep 2
|
|
621
|
+
}
|
|
622
|
+
|
|
623
|
+
#######################################
|
|
624
|
+
# Pipeline de instalação completo
|
|
625
|
+
#######################################
|
|
626
|
+
system_install_multizap() {
|
|
627
|
+
print_banner
|
|
628
|
+
printf "${WHITE} 💻 Iniciando instalação completa do Multizap...${GRAY_LIGHT}"
|
|
629
|
+
printf "\n\n"
|
|
630
|
+
|
|
631
|
+
# Atualiza sistema
|
|
632
|
+
system_update
|
|
633
|
+
|
|
634
|
+
# Cria usuário
|
|
635
|
+
system_create_user
|
|
636
|
+
|
|
637
|
+
# Instala dependências do sistema
|
|
638
|
+
system_node_install
|
|
639
|
+
system_docker_install
|
|
640
|
+
system_puppeteer_dependencies
|
|
641
|
+
system_pm2_install
|
|
642
|
+
system_snapd_install
|
|
643
|
+
system_certbot_install
|
|
644
|
+
system_nginx_install
|
|
645
|
+
system_nginx_conf
|
|
646
|
+
|
|
647
|
+
# Cria estrutura da instância
|
|
648
|
+
system_create_folder
|
|
649
|
+
system_mv_folder
|
|
650
|
+
system_unzip_Multizap
|
|
651
|
+
|
|
652
|
+
# Configura serviços
|
|
653
|
+
system_nginx_restart
|
|
654
|
+
|
|
655
|
+
# Executa instalador específico do Multizap
|
|
656
|
+
system_run_installer
|
|
657
|
+
|
|
658
|
+
# Configura SSL
|
|
659
|
+
system_certbot_setup
|
|
660
|
+
|
|
661
|
+
sleep 2
|
|
662
|
+
print_banner
|
|
663
|
+
printf "${WHITE} 💻 Instalação do Multizap completa! ${GREEN}✓${GRAY_LIGHT}"
|
|
664
|
+
printf "\n\n"
|
|
665
|
+
}
|
|
666
|
+
|
|
667
|
+
#######################################
|
|
668
|
+
# Exemplo de pipeline de instalação (comentado)
|
|
669
|
+
# Descomente e use conforme seu fluxo:
|
|
670
|
+
#
|
|
671
|
+
# system_create_user
|
|
672
|
+
# system_create_folder
|
|
673
|
+
# system_mv_folder
|
|
674
|
+
# system_unzip_Multizap
|
|
675
|
+
# system_run_installer
|
|
676
|
+
#######################################
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
#
|
|
3
|
+
# Print banner art.
|
|
4
|
+
|
|
5
|
+
#######################################
|
|
6
|
+
# Print a board.
|
|
7
|
+
# Globals:
|
|
8
|
+
# BG_BROWN
|
|
9
|
+
# NC
|
|
10
|
+
# WHITE
|
|
11
|
+
# CYAN_LIGHT
|
|
12
|
+
# RED
|
|
13
|
+
# GREEN
|
|
14
|
+
# YELLOW
|
|
15
|
+
# Arguments:
|
|
16
|
+
# None
|
|
17
|
+
#######################################
|
|
18
|
+
print_banner() {
|
|
19
|
+
|
|
20
|
+
clear
|
|
21
|
+
|
|
22
|
+
printf "\n\n"
|
|
23
|
+
|
|
24
|
+
printf "${YELLOW}";
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
printf ${CYAN}" ,-.\n"
|
|
28
|
+
printf ${CYAN}" / ( '\n"
|
|
29
|
+
printf ${CYAN}" * _.--'! '--._\n"
|
|
30
|
+
printf ${CYAN}" ,' ''_ _____ __ .___ ___________.__ __ __ \n"
|
|
31
|
+
printf ${CYAN}" |! / _ \_/ |_ ____ ____ __| _/___\__ ___/|__| ____ | | __ _____/ |_ \n"
|
|
32
|
+
printf ${CYAN}" _.' O ___ / /_\ \ __\/ __ \ / \ / __ |/ __ \| | | |/ ___\| |/ // __ \ __\\n"
|
|
33
|
+
printf ${CYAN}" (_.-^, __..-' ''''-./ | \ | \ ___/| | \/ /_/ \ ___/| | | \ \___| <\ ___/| |\n"
|
|
34
|
+
printf ${CYAN}" /,' ' _\____|____/__| \_____>___|__/\____ |\_____>____| |__|\_____>__|__\\_____>__| \n"
|
|
35
|
+
printf ${CYAN}" ' * .-'' |\n"
|
|
36
|
+
printf ${CYAN}" (..--^. ' \n"
|
|
37
|
+
printf ${CYAN}" | /\n"
|
|
38
|
+
printf ${CYAN}" '\n"
|
|
39
|
+
printf "\n"
|
|
40
|
+
|
|
41
|
+
printf " \033[1;33m ";
|
|
42
|
+
printf "${NC}";
|
|
43
|
+
|
|
44
|
+
printf "\n"
|
|
45
|
+
}
|