| 
						
						
							
								
							
						
						
					 | 
					@ -25,13 +25,13 @@ APP="appname" | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					# Virtual environment name | 
					 | 
					 | 
					# Virtual environment name | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					VENV=".venv" | 
					 | 
					 | 
					VENV=".venv" | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					# Nome de usuário do repositório | 
					 | 
					 | 
					# Nome de usuário do repositório ou grupo | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					# Git username | 
					 | 
					 | 
					# Git username or group | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					GIT_USER="username" | 
					 | 
					 | 
					GIT_USER="username" | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					# Endereço do projeto no repositório | 
					 | 
					 | 
					# Endereço do projeto no repositório | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					# Git project url | 
					 | 
					 | 
					# Git project url | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					GITURL="https://repositório.com/$GIT_USER/$APP.git" | 
					 | 
					 | 
					GITURL="https://repo.com/$GIT_USER/$APP.git" | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					# IP público ou domínio | 
					 | 
					 | 
					# IP público ou domínio | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					# Public IP address or domain | 
					 | 
					 | 
					# Public IP address or domain | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					@ -76,10 +76,14 @@ MSG_PT[entry]="Digite sim ou s para continuar (sim/não): " | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					MSG_PT[error_root]="Você precisa executar o script como root" | 
					 | 
					 | 
					MSG_PT[error_root]="Você precisa executar o script como root" | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					MSG_PT[error_requirements]="Não encontrei o arquivo requirements.txt" | 
					 | 
					 | 
					MSG_PT[error_requirements]="Não encontrei o arquivo requirements.txt" | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					MSG_PT[error_env]="Não encontrei o arquivo .env" | 
					 | 
					 | 
					MSG_PT[error_env]="Não encontrei o arquivo .env" | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					MSG_PT[sugest_env]="Posso criar esse arquivo pra você? | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					Eu criarei com as variáveis [SECRET_KEY, ALLOWED_HOSTS, DEBUG]. | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					Sim! vou criar uma SECRET_KEY como Django | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					apenas para dar sequência e testar o servidor, claro que você pode alterar depois." | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					MSG_PT[error_allwhost]="Não encontrei a variável ALLOWED_HOSTS, você lembrou de extrair do settings.py?" | 
					 | 
					 | 
					MSG_PT[error_allwhost]="Não encontrei a variável ALLOWED_HOSTS, você lembrou de extrair do settings.py?" | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					MSG_PT[error_debug]="Não encontrei a variável DEBUG, você lembrou de extrair do settings.py?" | 
					 | 
					 | 
					MSG_PT[error_debug]="Não encontrei a variável DEBUG, você lembrou de extrair do settings.py?" | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					MSG_PT[repo]="Por favor verificar o repositório ou suas credenciais" | 
					 | 
					 | 
					MSG_PT[repo]="Por favor verificar o repositório ou suas credenciais" | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					MSG_PT[done]="FEITO" | 
					 | 
					 | 
					MSG_PT[done]="TUDO PRONTO! Só curtir!" | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					MSG_PT[fail]="FALHOU" | 
					 | 
					 | 
					MSG_PT[fail]="FALHOU" | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					declare -A MSG_EN | 
					 | 
					 | 
					declare -A MSG_EN | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					@ -89,16 +93,32 @@ MSG_EN[entry]="Shall we proceed? (yes/no): " | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					MSG_EN[error_root]="You must be root" | 
					 | 
					 | 
					MSG_EN[error_root]="You must be root" | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					MSG_EN[error_req]="Can't find requirements.txt file" | 
					 | 
					 | 
					MSG_EN[error_req]="Can't find requirements.txt file" | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					MSG_EN[error_env]="Can't find .env file" | 
					 | 
					 | 
					MSG_EN[error_env]="Can't find .env file" | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					MSG_EN[sugest_env]="Can i create this file for you? | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					I'll create basic variables like [SECRET_KEY, ALLOWED_HOSTS, DEBUG]. | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					Yep! i'll create a SECRET_KEY like Django | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					just for continue and test server, although you can change it after." | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					MSG_EN[error_allwhost]="Can't find ALLOWED_HOSTS variable did you extract it from settings.py?" | 
					 | 
					 | 
					MSG_EN[error_allwhost]="Can't find ALLOWED_HOSTS variable did you extract it from settings.py?" | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					MSG_EN[error_debug]="Can't find DEBUG variable did you extract it from settings.py?" | 
					 | 
					 | 
					MSG_EN[error_debug]="Can't find DEBUG variable did you extract it from settings.py?" | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					MSG_EN[repo]="Please check your repo or credentials" | 
					 | 
					 | 
					MSG_EN[repo]="Please check your repo or credentials" | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					MSG_EN[done]="DONE" | 
					 | 
					 | 
					MSG_EN[done]="ALL DONE! Enjoy it!" | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					MSG_EN[fail]="FAIL" | 
					 | 
					 | 
					MSG_EN[fail]="FAIL" | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					STEP=0 | 
					 | 
					 | 
					STEP=0 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					SCRIPT_PATH=$(dirname $0) | 
					 | 
					 | 
					SCRIPT_PATH=$(dirname $0) | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					SCRIPT_STEP_FILE="$SCRIPT_PATH/centos_django.step" | 
					 | 
					 | 
					SCRIPT_STEP_FILE="$SCRIPT_PATH/centos_django.step" | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					CHARS="abcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*(-_=+)" | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					for ((i=0;i<${#CHARS};i++)); do ARRAY[$i]="${CHARS:i:1}"; done | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					# Cria uma sequência de 50 caracteres aleatórios  | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					# Create 50 random chars | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					key_gen() { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					    for ((c=1; c<=50; c++)); do | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        KEY="$KEY${ARRAY[$((RANDOM % 50))]}" | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					    done | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					    echo $KEY | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					} | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					# Lê o arquivo de configuração e atualiza os valores das variáveis | 
					 | 
					 | 
					# Lê o arquivo de configuração e atualiza os valores das variáveis | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					# Read config file and set all variables | 
					 | 
					 | 
					# Read config file and set all variables | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					if [[ -f "$SCRIPT_PATH/$ARQ_CONF" ]]; then | 
					 | 
					 | 
					if [[ -f "$SCRIPT_PATH/$ARQ_CONF" ]]; then | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					@ -126,16 +146,22 @@ fi | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					# Verifica se o usuário ativo é o root | 
					 | 
					 | 
					# Verifica se o usuário ativo é o root | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					# Verify if is a root user | 
					 | 
					 | 
					# Verify if is a root user | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					if [[ "$EUID" -ne 0 ]];then | 
					 | 
					 | 
					if [[ "$EUID" -ne 0 ]];then | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
						HAS_ERROS="yes" | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
						ERRORS+=("${MSGS[error_root]}") | 
					 | 
					 | 
						ERRORS+=("${MSGS[error_root]}") | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
						echo -e "\033[31m${MSGS[error_root]}\033[0m" | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
						exit 1 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					fi | 
					 | 
					 | 
					fi | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					# Verifica a existência do usuário no sistema | 
					 | 
					 | 
					# Verifica a existência do usuário no sistema | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					# Check if user exists | 
					 | 
					 | 
					# Check if user exists | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					CNU=$(grep -c $USERNAME /etc/passwd) | 
					 | 
					 | 
					CNU=$(grep -c $USERNAME /etc/passwd) | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					if [[ $CNU -lt 1 ]]; then | 
					 | 
					 | 
					if [[ $CNU -lt 1 ]]; then | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
						echo "precisa criar o usuário" | 
					 | 
					 | 
						useradd --create-home $USERNAME | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
						#useradd --create-home $USERNAME | 
					 | 
					 | 
					fi | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					# Sanitiza a variável SERVICE | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					# Sanitize SERVICE var | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					if [[ ! $SERVICE =~ ".service" ]]; then | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
						SERVICE+=".service" | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					fi | 
					 | 
					 | 
					fi | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					# Obtém o IP | 
					 | 
					 | 
					# Obtém o IP | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					@ -184,26 +210,42 @@ clone_project() { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
						fi | 
					 | 
					 | 
						fi | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					} | 
					 | 
					 | 
					} | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					# Verifica a existência dos arquivos requirements.txt e .env | 
					 | 
					 | 
					# Verifica a existência do arquivo requirements.txt | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					# Check for existence of requirements.txt and .env files | 
					 | 
					 | 
					# Check for existence of requirements.txt file | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					validate_files() { | 
					 | 
					 | 
					validate_requirements() { | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					 | 
					 | 
						if [[ ! -f "/home/$USERNAME/$APP/requirements.txt" ]]; then | 
					 | 
					 | 
						if [[ ! -f "/home/$USERNAME/$APP/requirements.txt" ]]; then | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
							HAS_ERROS="yes" | 
					 | 
					 | 
							echo -e "\033[31m${MSGS[errors]}" && | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
							ERRORS+=("${MSGS[error_req]}") | 
					 | 
					 | 
							echo -e "\033[0m - \033[37m${MSGS[error_req]}\033[0m" && | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
							update_step_error "$x" | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
						fi | 
					 | 
					 | 
						fi | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					} | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					# Verifica a existência do arquivo .env | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					# Check for existence of .env file | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					validate_env() { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
						if [[ ! -f "/home/$USERNAME/$APP/.env" ]]; then | 
					 | 
					 | 
						if [[ ! -f "/home/$USERNAME/$APP/.env" ]]; then | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							HAS_ERROS="yes" | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							ERRORS+=("${MSGS[error_env]}") | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
						fi | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
						if [[ ${#ERRORS[@]} -ge 1 ]]; then | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							echo -e "\033[31m${MSGS[errors]}" | 
					 | 
					 | 
							echo -e "\033[31m${MSGS[errors]}" | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
							for error in "${ERRORS[@]}"; do | 
					 | 
					 | 
							echo -e "\033[0m - \033[37m${MSGS[error_env]}\033[0m" && | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
								echo -e "\033[0m - \033[37m$error\033[0m" | 
					 | 
					 | 
							echo -e "\n${MSGS[sugest_env]}\n" && | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
							done | 
					 | 
					 | 
							read -p "${MSGS[entry]}" resp_env && | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
							if [[ -n resp_env ]]; then | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
								if [[ ${resp_env,,} == "sim" ]] || [[ ${resp_env,,} ==  "s" ]] || [[ ${resp_env,,} ==  "yes" ]] || [[ ${resp_env,,} ==  "y" ]]; then | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                make_env_file | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
								fi | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
							else | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
								update_step_error "$x" | 
					 | 
					 | 
								update_step_error "$x" | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							fi | 
					 | 
					 | 
							fi | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
						fi | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					} | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					# Cria um arquivo .env | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					# Create a .env file | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					make_env_file() { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					    ENV="SECRET_KEY='$(key_gen)'\n | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					    ALLOWED_HOSTS=localhost, 127.0.0.1\n | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					    DEBUG=False | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					    " | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					    $(echo -e $ENV | sed -e 's/^[ \t]*//' > /home/$USERNAME/$APP/.env) | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					} | 
					 | 
					 | 
					} | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					# Incrementar IP em ALLOWED_HOSTS no arquivo .env caso não tenha incrementado | 
					 | 
					 | 
					# Incrementar IP em ALLOWED_HOSTS no arquivo .env caso não tenha incrementado | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					@ -260,7 +302,6 @@ install_packages() { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					# Criar o ambiente Virtual | 
					 | 
					 | 
					# Criar o ambiente Virtual | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					# Create venv | 
					 | 
					 | 
					# Create venv | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					create_venv() { | 
					 | 
					 | 
					create_venv() { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
						# python3 -m venv /home/$USERNAME/$APP/$VENV && . /home/$USERNAME/$APP/$VENV/bin/activate | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
						python3 -m venv /home/$USERNAME/$APP/$VENV | 
					 | 
					 | 
						python3 -m venv /home/$USERNAME/$APP/$VENV | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
						if [[ $? -ge 1 ]]; then | 
					 | 
					 | 
						if [[ $? -ge 1 ]]; then | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							update_step_error "$x" | 
					 | 
					 | 
							update_step_error "$x" | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					@ -317,6 +358,44 @@ enable_ports() { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
						fi | 
					 | 
					 | 
						fi | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					} | 
					 | 
					 | 
					} | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					# Corrigir a configuração inicial do nginx | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					# Manage default nginx config file | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					manage_default_nginx_file() { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
						mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf~ && | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
						cat > /etc/nginx/nginx.conf <<EOF | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					user nginx; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					worker_processes auto; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					error_log /var/log/nginx/error.log; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					pid /run/nginx.pid; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					include /usr/share/nginx/modules/*.conf; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					events { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					    worker_connections 1024; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					} | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					http { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" ' | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                      '$status $body_bytes_sent "$http_referer" ' | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                      '"$http_user_agent" "$http_x_forwarded_for"'; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					    access_log  /var/log/nginx/access.log  main; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					    sendfile            on; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					    tcp_nopush          on; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					    tcp_nodelay         on; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					    keepalive_timeout   65; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					    types_hash_max_size 2048; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					    include             /etc/nginx/mime.types; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					    default_type        application/octet-stream; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					    include /etc/nginx/conf.d/*.conf; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					} | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					EOF | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					} | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					# Criar o arquivo de configurações do NGINX | 
					 | 
					 | 
					# Criar o arquivo de configurações do NGINX | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					# Create nginx config file | 
					 | 
					 | 
					# Create nginx config file | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					create_nginx_file() { | 
					 | 
					 | 
					create_nginx_file() { | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					@ -423,16 +502,17 @@ fi | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					# Start service | 
					 | 
					 | 
					# Start service | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					run_service() { | 
					 | 
					 | 
					run_service() { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
						chmod -R 751 /home/$USERNAME | 
					 | 
					 | 
						chmod -R 751 /home/$USERNAME | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
						chmod 664 /etc/systemd/system/$SERVICE.service && | 
					 | 
					 | 
						chmod 664 /etc/systemd/system/$SERVICE && | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
						chown -R $USERNAME:$USERNAME /home/$USERNAME && | 
					 | 
					 | 
						chown -R $USERNAME:$USERNAME /home/$USERNAME && | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
						systemctl daemon-reload && | 
					 | 
					 | 
						systemctl daemon-reload && | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
						systemctl enable nginx && | 
					 | 
					 | 
						systemctl enable nginx && | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
						systemctl start nginx && | 
					 | 
					 | 
						systemctl start nginx && | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
						systemctl enable $SERVICE.service && | 
					 | 
					 | 
						systemctl enable $SERVICE && | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
						systemctl start $SERVICE.service && | 
					 | 
					 | 
						systemctl start $SERVICE && | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					 | 
					 | 
						systemctl restart nginx | 
					 | 
					 | 
						systemctl restart nginx | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					} | 
					 | 
					 | 
					} | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					#TODO: Verificar a nova instalação do certbot | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					# Instalar o Certbot | 
					 | 
					 | 
					# Instalar o Certbot | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					# Install Certbot | 
					 | 
					 | 
					# Install Certbot | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					certbot() { | 
					 | 
					 | 
					certbot() { | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					@ -456,7 +536,8 @@ crontab_certbot() { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					declare -a commands=( | 
					 | 
					 | 
					declare -a commands=( | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
						"clone_project" | 
					 | 
					 | 
						"clone_project" | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
						"validate_files" | 
					 | 
					 | 
						"validate_requirements" | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
						"validate_env" | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
						"increment_ip" | 
					 | 
					 | 
						"increment_ip" | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
						"update_debug" | 
					 | 
					 | 
						"update_debug" | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
						"install_packages" | 
					 | 
					 | 
						"install_packages" | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					@ -464,6 +545,7 @@ declare -a commands=( | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
						"install_dependencies" | 
					 | 
					 | 
						"install_dependencies" | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
						"install_firewall" | 
					 | 
					 | 
						"install_firewall" | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
						"enable_ports" | 
					 | 
					 | 
						"enable_ports" | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
						"manage_default_nginx_file" | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
						"create_nginx_file" | 
					 | 
					 | 
						"create_nginx_file" | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
						"create_uwsgi_ini_file" | 
					 | 
					 | 
						"create_uwsgi_ini_file" | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
						"criar_emperor_uwsgi" | 
					 | 
					 | 
						"criar_emperor_uwsgi" | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					@ -472,7 +554,6 @@ declare -a commands=( | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
						"run_service" | 
					 | 
					 | 
						"run_service" | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					) | 
					 | 
					 | 
					) | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					REPORT=() | 
					 | 
					 | 
					REPORT=() | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					if [[ ${#ERRORS[@]} -ge 1 ]]; then | 
					 | 
					 | 
					if [[ ${#ERRORS[@]} -ge 1 ]]; then | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					
  |