Files
desk-moloni/deploy_production.sh
Emanuel Almeida c19f6fd9ee fix(perfexcrm module): align version to 3.0.1, unify entrypoint, and harden routes/views
- Bump DESK_MOLONI version to 3.0.1 across module
- Normalize hooks to after_client_* and instantiate PerfexHooks safely
- Fix OAuthController view path and API client class name
- Add missing admin views for webhook config/logs; adjust view loading
- Harden client portal routes and admin routes mapping
- Make Dashboard/Logs/Queue tolerant to optional model methods
- Align log details query with existing schema; avoid broken joins

This makes the module operational in Perfex (admin + client), reduces 404s,
and avoids fatal errors due to inconsistent tables/methods.
2025-09-11 17:38:45 +01:00

95 lines
3.1 KiB
Bash

#!/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! ✨"