Deploy

Guia de Deploy do Sistema

Deploy do Sistema

Guia completo para deploy em produção

"Tudo posso naquele que me fortalece"

Filipenses 4:13

Visão Geral

O deploy do sistema CBAV é otimizado para garantir máxima performance, segurança e confiabilidade em ambiente de produção. Este guia detalha todos os passos necessários para um deploy bem-sucedido.

Segurança

Configurações de segurança

Performance

Otimizações de performance

Confiabilidade

Monitoramento e backup

Checklist Pré-Deploy

Preparação do Ambiente

Servidor

  • PHP 8.1+ instalado
  • MySQL 8.0+ configurado
  • Composer instalado
  • SSL/HTTPS configurado

Segurança

  • Firewall configurado
  • Backup automático
  • Monitoramento ativo
  • Logs configurados

Processo de Deploy

Passos do Deploy

1. Upload dos Arquivos

# Compactar projeto
tar -czf cbav.tar.gz --exclude=node_modules --exclude=.git .

# Upload via FTP/SSH
scp cbav.tar.gz user@server:/var/www/html/

# Extrair no servidor
ssh user@server
cd /var/www/html/
tar -xzf cbav.tar.gz
rm cbav.tar.gz

2. Configuração do Ambiente

# Instalar dependências
composer install --no-dev --optimize-autoloader

# Configurar permissões
chmod -R 755 storage/
chmod -R 755 bootstrap/cache/
chmod 644 .env

# Configurar proprietário
chown -R www-data:www-data storage/
chown -R www-data:www-data bootstrap/cache/

3. Configuração da Aplicação

# Gerar chave da aplicação
php artisan key:generate

# Configurar cache
php artisan config:cache
php artisan route:cache
php artisan view:cache

# Otimizar aplicação
php artisan optimize

# Criar link simbólico
php artisan storage:link

4. Banco de Dados

# Executar migrações
php artisan migrate --force

# Executar seeders (se necessário)
php artisan db:seed --force

# Verificar status
php artisan migrate:status

# Otimizar banco
php artisan db:optimize

Configuração de Produção

Otimizações para Produção

Configurações de Segurança

  • Debug desabilitado
  • HTTPS forçado
  • Headers de segurança
  • Logs de erro

Configurações de Performance

  • Cache otimizado
  • Índices de banco
  • Compressão GZIP
  • Otimização de imagens

Arquivo .env de Produção

APP_ENV=production
APP_DEBUG=false
APP_URL=https://seudominio.com

LOG_CHANNEL=stack
LOG_LEVEL=error

CACHE_DRIVER=file
SESSION_DRIVER=database
QUEUE_CONNECTION=database

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=cbav_production
DB_USERNAME=cbav_user
DB_PASSWORD=sua_senha_segura

MAIL_MAILER=smtp
MAIL_HOST=seudominio.com
MAIL_PORT=587
MAIL_USERNAME=noreply@seudominio.com
MAIL_PASSWORD=sua_senha_email
MAIL_ENCRYPTION=tls

Monitoramento

Sistema de Monitoramento

Monitoramento de Aplicação

  • Health checks
  • Métricas de performance
  • Alertas de erro
  • Tempo de resposta

Monitoramento de Servidor

  • Uso de CPU/RAM
  • Espaço em disco
  • Tráfego de rede
  • Performance do banco

Comandos de Monitoramento

# Verificar status da aplicação
php artisan about

# Verificar logs
tail -f storage/logs/laravel.log

# Verificar filas
php artisan queue:work --verbose

# Verificar cache
php artisan cache:clear
php artisan config:clear

# Verificar banco
php artisan tinker
DB::connection()->getPdo();

Estratégia de Backup

Sistema de Backup

Backup Automático

  • Backup diário do banco
  • Backup semanal de arquivos
  • Backup na nuvem
  • Verificação de integridade

Recuperação

  • Restauração rápida
  • RTO < 4 horas
  • RPO < 24 horas
  • Testes de recuperação

Script de Backup

#!/bin/bash
# Script de backup automático

DATE=$(date +%Y%m%d_%H%M%S)
BACKUP_DIR="/backups/cbav"
DB_NAME="cbav_production"

# Backup do banco
mysqldump -u root -p $DB_NAME > $BACKUP_DIR/db_$DATE.sql

# Backup dos arquivos
tar -czf $BACKUP_DIR/files_$DATE.tar.gz /var/www/html/cbav

# Limpar backups antigos (manter 30 dias)
find $BACKUP_DIR -name "*.sql" -mtime +30 -delete
find $BACKUP_DIR -name "*.tar.gz" -mtime +30 -delete

# Enviar para nuvem
aws s3 sync $BACKUP_DIR s3://cbav-backups/

Solução de Problemas

Problemas Comuns

Erro 500 - Internal Server Error

# Verificar logs
tail -f storage/logs/laravel.log

# Verificar permissões
chmod -R 755 storage/
chmod -R 755 bootstrap/cache/

# Limpar cache
php artisan config:clear
php artisan cache:clear
php artisan view:clear

# Verificar .env
php artisan config:show

Erro de Conexão com Banco

# Testar conexão
php artisan tinker
DB::connection()->getPdo();

# Verificar configurações
php artisan config:show database

# Verificar serviço MySQL
sudo systemctl status mysql

# Verificar credenciais
mysql -u cbav_user -p cbav_production

Performance Lenta

# Otimizar aplicação
php artisan optimize

# Verificar cache
php artisan cache:clear
php artisan config:cache

# Verificar queries lentas
php artisan tinker
DB::enableQueryLog();
// Executar operação
DB::getQueryLog();

# Verificar índices
php artisan db:optimize