# 📋 Análise de Prontidão para Deploy no cPanel

**Data da Análise:** 2025-01-27  
**Projeto:** GestorEasy v3  
**Destino:** Servidor cPanel

---

## ✅ O QUE ESTÁ PRONTO

### 1. Estrutura do Projeto
- ✅ Estrutura de diretórios organizada
- ✅ Sistema modular bem estruturado
- ✅ Ponto de entrada (`public/index.php`) configurado
- ✅ Bootstrap (`bootstrap.php`) funcional
- ✅ Autoloader configurado

### 2. Instalação
- ✅ Script de instalação (`install.php`) completo
- ✅ Documentação de instalação (`docs/INSTALACAO.md`)
- ✅ Verificação de requisitos implementada
- ✅ Criação automática de banco de dados
- ✅ Execução automática de migrations

### 3. Configuração
- ✅ Arquivo `.htaccess` configurado para Apache
- ✅ Headers de segurança configurados
- ✅ Proteção de arquivos sensíveis
- ✅ Sistema de carregamento de variáveis de ambiente (`.env`)

### 4. Segurança
- ✅ Proteção contra SQL Injection (prepared statements)
- ✅ Proteção contra força bruta
- ✅ Rate limiting implementado
- ✅ JWT para autenticação
- ✅ Hash de senhas com bcrypt
- ✅ Headers de segurança configurados

### 5. Documentação
- ✅ README.md completo
- ✅ Documentação de instalação
- ✅ Documentação de segurança
- ✅ Guias de troubleshooting

---

## ⚠️ O QUE PRECISA SER FEITO ANTES DO DEPLOY

### 🔴 CRÍTICO (Obrigatório antes do deploy)

#### 1. Instalar Dependências do Composer
**Status:** ❌ FALTANDO

O diretório `vendor/` não existe, o que significa que as dependências do Composer não foram instaladas.

**Ação Necessária:**
```bash
composer install --no-dev --optimize-autoloader
```

**Nota:** No cPanel, você pode:
- Executar via SSH: `composer install --no-dev --optimize-autoloader`
- Ou fazer upload do diretório `vendor/` já instalado localmente

#### 2. Arquivo de Template .env
**Status:** ✅ CRIADO

Foi criado o arquivo `env.example.txt` com todas as variáveis de ambiente necessárias.

**Ação Necessária:**
- Copiar `env.example.txt` para `.env` no servidor
- Preencher com valores reais do ambiente de produção

#### 3. Verificar Permissões de Diretórios
**Status:** ⚠️ VERIFICAR NO SERVIDOR

Os seguintes diretórios precisam ter permissões de escrita:
- `storage/`
- `logs/`
- `cache/`
- `public/uploads/`

**Ação Necessária no cPanel:**
```bash
chmod -R 755 storage logs cache public/uploads
```

#### 4. Configurar Document Root
**Status:** ⚠️ CONFIGURAR NO CPANEL

O cPanel precisa apontar o Document Root para o diretório `public/`, não para a raiz do projeto.

**Ação Necessária:**
- No cPanel, configurar o domínio para apontar para `public_html/public/`
- OU mover o conteúdo de `public/` para `public_html/` e ajustar caminhos

---

### 🟡 IMPORTANTE (Recomendado antes do deploy)

#### 5. Remover Arquivos de Desenvolvimento
**Status:** ⚠️ VERIFICAR

Arquivos que não devem ir para produção:
- `cypress/` (testes E2E)
- `tests/` (pode manter, mas não é necessário)
- `node_modules/` (já está no .gitignore)
- Arquivos de teste: `test_connection.php`, `test_notifications.php`, `test_query.php`

**Ação Necessária:**
Verificar se esses arquivos estão no `.gitignore` e não fazer upload deles.

#### 6. Configurar Variáveis de Ambiente
**Status:** ⚠️ CONFIGURAR NO SERVIDOR

O arquivo `.env` será criado pelo instalador, mas você precisa configurar:
- `APP_URL` com a URL real do seu domínio
- Credenciais de email (SMTP)
- Configurações de banco de dados do cPanel

#### 7. Verificar Extensões PHP no cPanel
**Status:** ⚠️ VERIFICAR NO CPANEL

O cPanel precisa ter as seguintes extensões PHP habilitadas:
- `pdo`
- `pdo_mysql`
- `json`
- `mbstring`
- `openssl`
- `curl`

**Ação Necessária:**
Verificar no cPanel → Select PHP Version → Extensions

#### 8. Configurar PHP Version
**Status:** ⚠️ CONFIGURAR NO CPANEL

O sistema requer PHP 8.1 ou superior.

**Ação Necessária:**
No cPanel → Select PHP Version → Escolher PHP 8.1 ou superior

---

### 🟢 OPCIONAL (Pode fazer depois)

#### 9. Configurar SSL/HTTPS
**Status:** ⚠️ RECOMENDADO

O sistema tem suporte para HTTPS, mas precisa ser configurado no cPanel.

**Ação Necessária:**
- Instalar certificado SSL no cPanel (Let's Encrypt gratuito)
- Descomentar regras de redirecionamento HTTPS no `.htaccess`

#### 10. Configurar Redis (Opcional)
**Status:** ⚠️ OPCIONAL

O sistema suporta Redis para cache, mas não é obrigatório.

**Ação Necessária:**
Se disponível no cPanel, configurar Redis e atualizar `.env`

#### 11. Configurar Cron Jobs
**Status:** ⚠️ OPCIONAL

Alguns módulos podem precisar de cron jobs (ex: GestorY).

**Ação Necessária:**
Configurar no cPanel → Cron Jobs conforme necessário

---

## 📝 CHECKLIST PRÉ-DEPLOY

### Antes de Fazer Upload
- [ ] Executar `composer install --no-dev --optimize-autoloader` localmente
- [ ] Criar arquivo `.env.example` com todas as variáveis
- [ ] Verificar que `vendor/` está presente (ou será instalado no servidor)
- [ ] Verificar que arquivos sensíveis estão no `.gitignore`
- [ ] Remover ou não fazer upload de arquivos de teste/desenvolvimento
- [ ] Verificar estrutura de diretórios

### No cPanel (Após Upload)
- [ ] Verificar versão PHP (8.1+)
- [ ] Verificar extensões PHP necessárias
- [ ] Configurar Document Root para `public/` (ou mover arquivos)
- [ ] Configurar permissões de diretórios (755 para dirs, 644 para arquivos)
- [ ] Configurar permissões de escrita (755) para: `storage/`, `logs/`, `cache/`, `public/uploads/`
- [ ] Executar `install.php` via navegador ou SSH
- [ ] Configurar arquivo `.env` com valores reais
- [ ] Testar acesso ao sistema
- [ ] Verificar logs de erro

### Pós-Instalação
- [ ] Configurar SSL/HTTPS
- [ ] Testar login de administrador
- [ ] Criar primeiro tenant
- [ ] Testar funcionalidades básicas
- [ ] Configurar backup do banco de dados
- [ ] Configurar monitoramento de logs

---

## 🚀 PASSOS PARA DEPLOY NO CPANEL

### Opção 1: Upload Completo (Recomendado)

1. **Preparar Localmente:**
   ```bash
   composer install --no-dev --optimize-autoloader
   ```

2. **Criar .env.example:**
   ```bash
   # Copiar estrutura do install.php
   ```

3. **Fazer Upload via FTP/cPanel File Manager:**
   - Upload de todos os arquivos para `public_html/`
   - OU upload para subdiretório e configurar Document Root

4. **No cPanel:**
   - Configurar PHP 8.1+
   - Verificar extensões
   - Configurar permissões
   - Acessar `https://seudominio.com/install.php`

5. **Executar Instalação:**
   - Seguir instruções do instalador
   - Configurar banco de dados do cPanel
   - Criar usuário administrador

6. **Pós-Instalação:**
   - Remover ou proteger `install.php`
   - Configurar `.env` com valores reais
   - Testar sistema

### Opção 2: Instalação via SSH (Mais Seguro)

1. **Upload via FTP/cPanel File Manager**

2. **Conectar via SSH:**
   ```bash
   ssh usuario@seudominio.com
   cd public_html
   ```

3. **Instalar Dependências:**
   ```bash
   composer install --no-dev --optimize-autoloader
   ```

4. **Configurar Permissões:**
   ```bash
   chmod -R 755 storage logs cache public/uploads
   chmod 644 .env
   ```

5. **Executar Instalação:**
   ```bash
   php install.php
   ```

6. **Configurar .env:**
   ```bash
   nano .env
   # Editar APP_URL e outras configurações
   ```

---

## ⚠️ PROBLEMAS COMUNS NO CPANEL

### 1. Erro 500 - Página em Branco
**Causa:** Permissões incorretas ou erro de PHP
**Solução:**
- Verificar logs de erro do PHP no cPanel
- Verificar permissões de arquivos
- Verificar se `vendor/autoload.php` existe

### 2. Rotas Não Funcionam
**Causa:** mod_rewrite não habilitado ou .htaccess não sendo lido
**Solução:**
- Verificar se mod_rewrite está habilitado no cPanel
- Verificar se .htaccess está na raiz correta
- Verificar configuração de Document Root

### 3. Banco de Dados Não Conecta
**Causa:** Credenciais incorretas ou host diferente
**Solução:**
- No cPanel, o host geralmente é `localhost`
- Verificar usuário e senha do banco no cPanel
- Verificar se o banco foi criado

### 4. Composer Não Disponível
**Causa:** Composer não instalado no servidor
**Solução:**
- Instalar dependências localmente e fazer upload do `vendor/`
- OU instalar Composer no servidor via SSH

---

## 📊 RESUMO

### ✅ Pronto para Deploy: **85%**

### O que está faltando:
1. ❌ Instalar dependências do Composer (`vendor/`)
2. ✅ Template `.env` criado (`env.example.txt`)
3. ⚠️ Configurar no cPanel (PHP, extensões, permissões)
4. ⚠️ Testar instalação no ambiente de produção

### Tempo Estimado para Preparação:
- **Preparação Local:** 15-30 minutos
- **Configuração no cPanel:** 30-60 minutos
- **Testes:** 30-60 minutos
- **Total:** 1.5 - 2.5 horas

---

## 🎯 CONCLUSÃO

O projeto está **quase pronto** para deploy no cPanel. As principais pendências são:

1. **Instalar dependências do Composer** (crítico)
2. **Criar arquivo .env.example** (importante)
3. **Configurar ambiente no cPanel** (PHP, extensões, permissões)
4. **Testar instalação completa**

Após resolver esses itens, o sistema estará pronto para ser instalado e usado em produção.

---

**Documento criado em:** 2025-01-27  
**Versão:** 1.0

