Primeiro commit
This commit is contained in:
154
deploy-to-server.sh
Executable file
154
deploy-to-server.sh
Executable file
@@ -0,0 +1,154 @@
|
||||
#!/bin/bash
|
||||
|
||||
# 🚀 Script para Deploy Automático no Servidor via SSH
|
||||
# Execute: ./deploy-to-server.sh usuario@servidor
|
||||
|
||||
echo "🚀 Deploy Automático - Liberi Kids"
|
||||
echo "=================================="
|
||||
|
||||
# Verificar se foi fornecido o servidor
|
||||
if [ -z "$1" ]; then
|
||||
echo "❌ Uso: ./deploy-to-server.sh usuario@servidor"
|
||||
echo " Exemplo: ./deploy-to-server.sh root@192.168.1.100"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
SERVER=$1
|
||||
PROJECT_DIR="app_estoque"
|
||||
|
||||
echo "🔗 Conectando ao servidor: $SERVER"
|
||||
|
||||
# Cores para output
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
RED='\033[0;31m'
|
||||
NC='\033[0m'
|
||||
|
||||
log() {
|
||||
echo -e "${GREEN}[INFO]${NC} $1"
|
||||
}
|
||||
|
||||
warn() {
|
||||
echo -e "${YELLOW}[WARN]${NC} $1"
|
||||
}
|
||||
|
||||
error() {
|
||||
echo -e "${RED}[ERROR]${NC} $1"
|
||||
}
|
||||
|
||||
# Função para executar comando no servidor
|
||||
run_remote() {
|
||||
ssh $SERVER "$1"
|
||||
}
|
||||
|
||||
# Função para copiar arquivos
|
||||
copy_files() {
|
||||
log "📁 Copiando arquivos para o servidor..."
|
||||
rsync -avz --progress --exclude 'node_modules' --exclude '.git' --exclude 'client/node_modules' ./ $SERVER:~/$PROJECT_DIR/
|
||||
if [ $? -eq 0 ]; then
|
||||
log "✅ Arquivos copiados com sucesso!"
|
||||
else
|
||||
error "❌ Erro ao copiar arquivos"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
# Função para configurar ambiente no servidor
|
||||
setup_environment() {
|
||||
log "🔧 Configurando ambiente no servidor..."
|
||||
|
||||
run_remote "
|
||||
cd $PROJECT_DIR
|
||||
|
||||
# Verificar se Node.js está instalado
|
||||
if ! command -v node &> /dev/null; then
|
||||
echo '📦 Instalando Node.js...'
|
||||
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
|
||||
sudo apt-get install -y nodejs
|
||||
fi
|
||||
|
||||
# Verificar versão do Node.js
|
||||
NODE_VERSION=\$(node -v | cut -d'v' -f2 | cut -d'.' -f1)
|
||||
if [ \"\$NODE_VERSION\" -lt 18 ]; then
|
||||
echo '❌ Node.js versão 18+ é necessária'
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo '✅ Node.js \$(node -v) encontrado'
|
||||
|
||||
# Criar arquivo .env se não existir
|
||||
if [ ! -f '.env' ]; then
|
||||
echo '📝 Criando arquivo .env...'
|
||||
cp .env.example .env
|
||||
echo '⚠️ IMPORTANTE: Configure o arquivo .env com suas credenciais!'
|
||||
echo ' Edite: nano .env'
|
||||
fi
|
||||
|
||||
# Tornar script executável
|
||||
chmod +x scripts/deploy-local.sh
|
||||
|
||||
echo '✅ Ambiente configurado!'
|
||||
"
|
||||
}
|
||||
|
||||
# Função para fazer deploy
|
||||
deploy_application() {
|
||||
log "🚀 Fazendo deploy da aplicação..."
|
||||
|
||||
run_remote "
|
||||
cd $PROJECT_DIR
|
||||
|
||||
# Executar script de deploy
|
||||
./scripts/deploy-local.sh
|
||||
"
|
||||
}
|
||||
|
||||
# Função para verificar status
|
||||
check_status() {
|
||||
log "📊 Verificando status da aplicação..."
|
||||
|
||||
run_remote "
|
||||
pm2 status
|
||||
echo ''
|
||||
echo '🌐 Aplicação disponível em:'
|
||||
echo ' Local: http://localhost:5000'
|
||||
echo ' Rede: http://\$(hostname -I | awk '{print \$1}'):5000'
|
||||
"
|
||||
}
|
||||
|
||||
# Executar deploy completo
|
||||
main() {
|
||||
echo ""
|
||||
log "Iniciando deploy completo..."
|
||||
echo ""
|
||||
|
||||
# Passo 1: Copiar arquivos
|
||||
copy_files
|
||||
echo ""
|
||||
|
||||
# Passo 2: Configurar ambiente
|
||||
setup_environment
|
||||
echo ""
|
||||
|
||||
# Passo 3: Fazer deploy
|
||||
deploy_application
|
||||
echo ""
|
||||
|
||||
# Passo 4: Verificar status
|
||||
check_status
|
||||
echo ""
|
||||
|
||||
log "🎉 Deploy concluído com sucesso!"
|
||||
echo ""
|
||||
warn "📝 PRÓXIMOS PASSOS:"
|
||||
echo "1. Configure o arquivo .env no servidor:"
|
||||
echo " ssh $SERVER 'cd $PROJECT_DIR && nano .env'"
|
||||
echo ""
|
||||
echo "2. Reinicie a aplicação após configurar:"
|
||||
echo " ssh $SERVER 'pm2 restart liberi-kids'"
|
||||
echo ""
|
||||
echo "3. Acesse a aplicação no navegador"
|
||||
}
|
||||
|
||||
# Executar função principal
|
||||
main
|
||||
Reference in New Issue
Block a user