105 lines
4.4 KiB
Bash
105 lines
4.4 KiB
Bash
#!/bin/bash
|
|
|
|
###############################################################################
|
|
# SCRIPT DE DEPLOY - WEBMoney Backend Laravel
|
|
# Servidor: 213.165.93.60
|
|
# Domínio: https://webmoney.cnxifly.com
|
|
# Versão: 1.0.0
|
|
###############################################################################
|
|
|
|
set -e # Exit on error
|
|
|
|
# Colors para output
|
|
RED='\033[0;31m'
|
|
GREEN='\033[0;32m'
|
|
YELLOW='\033[1;33m'
|
|
NC='\033[0m' # No Color
|
|
|
|
# Configurações
|
|
SERVER_USER="root"
|
|
SERVER_HOST="213.165.93.60"
|
|
SERVER_PASSWORD="Master9354"
|
|
SERVER_PATH="/var/www/webmoney/backend"
|
|
LOCAL_PATH="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
|
|
echo -e "${GREEN}╔═══════════════════════════════════════════════════════╗${NC}"
|
|
echo -e "${GREEN}║ WEBMoney Laravel - Deploy para Produção ║${NC}"
|
|
echo -e "${GREEN}╚═══════════════════════════════════════════════════════╝${NC}"
|
|
echo ""
|
|
|
|
# Função para executar comandos no servidor remoto
|
|
remote_exec() {
|
|
sshpass -p "$SERVER_PASSWORD" ssh -o StrictHostKeyChecking=no "$SERVER_USER@$SERVER_HOST" "$1"
|
|
}
|
|
|
|
# 1. Build local (se necessário)
|
|
echo -e "${YELLOW}[1/8]${NC} Verificando dependências locais..."
|
|
if [ ! -d "$LOCAL_PATH/vendor" ]; then
|
|
echo "Instalando dependências do Composer..."
|
|
composer install --no-dev --optimize-autoloader
|
|
fi
|
|
|
|
# 2. Sync arquivos via rsync
|
|
echo -e "${YELLOW}[2/8]${NC} Sincronizando arquivos para o servidor..."
|
|
sshpass -p "$SERVER_PASSWORD" rsync -avz --delete \
|
|
--exclude='.git' \
|
|
--exclude='node_modules' \
|
|
--exclude='storage/logs/*' \
|
|
--exclude='storage/framework/cache/*' \
|
|
--exclude='storage/framework/sessions/*' \
|
|
--exclude='storage/framework/views/*' \
|
|
--exclude='.env' \
|
|
--exclude='database/database.sqlite' \
|
|
"$LOCAL_PATH/" "$SERVER_USER@$SERVER_HOST:$SERVER_PATH/"
|
|
|
|
echo -e "${GREEN}✓${NC} Arquivos sincronizados"
|
|
|
|
# 3. Copiar .env de produção
|
|
echo -e "${YELLOW}[3/8]${NC} Configurando .env de produção..."
|
|
sshpass -p "$SERVER_PASSWORD" ssh -o StrictHostKeyChecking=no "$SERVER_USER@$SERVER_HOST" \
|
|
"cp $SERVER_PATH/.env.production $SERVER_PATH/.env"
|
|
echo -e "${GREEN}✓${NC} .env configurado"
|
|
|
|
# 4. Instalar dependências no servidor
|
|
echo -e "${YELLOW}[4/8]${NC} Instalando dependências no servidor..."
|
|
remote_exec "cd $SERVER_PATH && composer install --no-dev --optimize-autoloader"
|
|
echo -e "${GREEN}✓${NC} Dependências instaladas"
|
|
|
|
# 5. Ajustar permissões
|
|
echo -e "${YELLOW}[5/8]${NC} Ajustando permissões..."
|
|
remote_exec "chown -R www-data:www-data $SERVER_PATH/storage $SERVER_PATH/bootstrap/cache"
|
|
remote_exec "chmod -R 775 $SERVER_PATH/storage $SERVER_PATH/bootstrap/cache"
|
|
echo -e "${GREEN}✓${NC} Permissões ajustadas"
|
|
|
|
# 6. Executar migrações
|
|
echo -e "${YELLOW}[6/8]${NC} Executando migrações de banco de dados..."
|
|
remote_exec "cd $SERVER_PATH && php artisan migrate --force"
|
|
echo -e "${GREEN}✓${NC} Migrações executadas"
|
|
|
|
# 7. Cache e otimizações
|
|
echo -e "${YELLOW}[7/8]${NC} Otimizando aplicação..."
|
|
remote_exec "cd $SERVER_PATH && php artisan config:cache"
|
|
remote_exec "cd $SERVER_PATH && php artisan route:cache"
|
|
remote_exec "cd $SERVER_PATH && php artisan view:cache"
|
|
echo -e "${GREEN}✓${NC} Caches gerados"
|
|
|
|
# 8. Reload PHP-FPM
|
|
echo -e "${YELLOW}[8/8]${NC} Recarregando PHP-FPM..."
|
|
remote_exec "systemctl reload php8.4-fpm"
|
|
echo -e "${GREEN}✓${NC} PHP-FPM recarregado"
|
|
|
|
echo ""
|
|
echo -e "${GREEN}╔═══════════════════════════════════════════════════════╗${NC}"
|
|
echo -e "${GREEN}║ ✓ DEPLOY CONCLUÍDO COM SUCESSO! ║${NC}"
|
|
echo -e "${GREEN}╚═══════════════════════════════════════════════════════╝${NC}"
|
|
echo ""
|
|
echo -e "URL: ${GREEN}https://webmoney.cnxifly.com${NC}"
|
|
echo -e "API: ${GREEN}https://webmoney.cnxifly.com/api${NC}"
|
|
echo ""
|
|
echo -e "${YELLOW}Endpoints disponíveis:${NC}"
|
|
echo -e " POST /api/register - Registrar usuário"
|
|
echo -e " POST /api/login - Login"
|
|
echo -e " POST /api/logout - Logout (auth)"
|
|
echo -e " GET /api/me - Dados do usuário (auth)"
|
|
echo ""
|