#!/bin/bash # Desk-Moloni v3.0 - Production Deployment Script # Target: server.descomplicar.pt:9443 /home/ealmeida/desk.descomplicar.pt # User: ealmeida:ealmeida set -e echo "🚀 Iniciando deployment do Desk-Moloni v3.0..." # Configurações SERVER="server.descomplicar.pt" PORT="9443" USER="root" REMOTE_PATH="/home/ealmeida/desk.descomplicar.pt" LOCAL_PATH="$(pwd)" BACKUP_DIR="/tmp/desk-moloni-backup-$(date +%Y%m%d_%H%M%S)" echo "📦 Configurações do Deploy:" echo " Servidor: $SERVER:$PORT" echo " Usuário: $USER" echo " Destino: $REMOTE_PATH" echo " Origem: $LOCAL_PATH" # Função para executar comandos remotos ssh_exec() { ssh -p $PORT $USER@$SERVER "$1" } # Função para copiar arquivos rsync_copy() { rsync -avz --progress -e "ssh -p $PORT" "$1" "$USER@$SERVER:$2" } # 1. Verificar conexão SSH echo "🔐 Verificando conexão SSH..." ssh_exec "echo 'Conexão SSH OK'" # 2. Criar backup do módulo atual (se existir) echo "💾 Criando backup do módulo atual..." ssh_exec "if [ -d '$REMOTE_PATH/modules/desk_moloni' ]; then mkdir -p $BACKUP_DIR cp -r $REMOTE_PATH/modules/desk_moloni $BACKUP_DIR/ echo 'Backup criado em $BACKUP_DIR' else echo 'Nenhum módulo anterior encontrado' fi" # 3. Criar diretórios necessários echo "📁 Criando estrutura de diretórios..." ssh_exec "mkdir -p $REMOTE_PATH/modules" ssh_exec "mkdir -p $REMOTE_PATH/uploads/desk_moloni/logs" ssh_exec "mkdir -p $REMOTE_PATH/uploads/desk_moloni/cache" # 4. Copiar módulo principal echo "📋 Copiando módulo Desk-Moloni..." rsync_copy "$LOCAL_PATH/modules/desk_moloni/" "$REMOTE_PATH/modules/desk_moloni/" # 5. Copiar arquivos de configuração echo "⚙️ Copiando configurações..." if [ -f "$LOCAL_PATH/config/desk_moloni.php" ]; then rsync_copy "$LOCAL_PATH/config/desk_moloni.php" "$REMOTE_PATH/application/config/" fi # 6. Definir permissões corretas echo "🔐 Definindo permissões..." ssh_exec "chown -R ealmeida:ealmeida $REMOTE_PATH/modules/desk_moloni" ssh_exec "chown -R ealmeida:ealmeida $REMOTE_PATH/uploads/desk_moloni" ssh_exec "chmod -R 755 $REMOTE_PATH/modules/desk_moloni" ssh_exec "chmod -R 777 $REMOTE_PATH/uploads/desk_moloni" # 7. Executar instalação/atualização do banco de dados echo "🗄️ Executando instalação/atualização do banco..." ssh_exec "cd $REMOTE_PATH && php index.php desk_moloni admin install_db" # 8. Verificar instalação echo "✅ Verificando instalação..." ssh_exec "cd $REMOTE_PATH && php -l modules/desk_moloni/desk_moloni.php" # 9. Reiniciar serviços se necessário echo "🔄 Reiniciando serviços..." ssh_exec "systemctl reload apache2 || service apache2 reload || echo 'Apache reload failed'" echo "" echo "🎉 Deploy concluído com sucesso!" echo "" echo "📋 Próximos passos:" echo " 1. Aceder ao painel admin: https://desk.descomplicar.pt/admin/desk_moloni" echo " 2. Configurar credenciais OAuth do Moloni" echo " 3. Testar sincronização" echo " 4. Monitorizar logs: $REMOTE_PATH/uploads/desk_moloni/logs/" echo "" echo "💾 Backup disponível em: $BACKUP_DIR (no servidor)" echo "" echo "✨ Desk-Moloni v3.0 em produção! ✨"