arcadiasuite/deploy.sh

73 lines
2.3 KiB
Bash
Executable File

#!/bin/bash
# ==============================================
# Arcádia Suite - Script de Deploy para VPS
# ==============================================
set -e
echo "=========================================="
echo " Arcádia Suite - Deploy VPS"
echo "=========================================="
if ! command -v docker &> /dev/null; then
echo "Docker não encontrado. Instalando..."
curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker $USER
echo "Docker instalado! Faça logout e login novamente para aplicar as permissões."
exit 1
fi
if ! command -v docker-compose &> /dev/null && ! docker compose version &> /dev/null; then
echo "Docker Compose não encontrado. Instalando..."
sudo apt-get update && sudo apt-get install -y docker-compose-plugin
fi
if [ ! -f .env ]; then
echo "Arquivo .env não encontrado. Criando a partir do .env.example..."
cp .env.example .env
echo ""
echo "IMPORTANTE: Edite o arquivo .env com suas configurações antes de continuar!"
echo " nano .env"
echo ""
echo "Depois execute este script novamente."
exit 1
fi
echo ""
echo "1/4 - Parando containers existentes..."
docker compose down 2>/dev/null || docker-compose down 2>/dev/null || true
echo ""
echo "2/5 - Construindo a aplicação..."
docker compose build --no-cache 2>/dev/null || docker-compose build --no-cache
echo ""
echo "3/5 - Iniciando o banco de dados..."
docker compose up -d db 2>/dev/null || docker-compose up -d db
echo "Aguardando banco ficar pronto..."
sleep 5
echo ""
echo "4/5 - Aplicando migrations do banco de dados..."
docker compose run --rm app npx drizzle-kit push 2>/dev/null || docker-compose run --rm app npx drizzle-kit push
echo ""
echo "5/5 - Iniciando a aplicação..."
docker compose up -d 2>/dev/null || docker-compose up -d
sleep 10
echo ""
echo "=========================================="
echo " Deploy concluído!"
echo "=========================================="
echo ""
echo " App: http://$(hostname -I | awk '{print $1}'):5000"
echo " DB: PostgreSQL na porta 5432"
echo ""
echo " Comandos úteis:"
echo " Ver logs: docker compose logs -f app"
echo " Parar tudo: docker compose down"
echo " Reiniciar: docker compose restart app"
echo " Status: docker compose ps"
echo ""