# 🎯 INSTALAÇÃO INTERATIVA - SIGED MILITAR EM CPANEL

## ⏱️ Tempo Total: ~30-45 minutos

Este guia te conduzirá **passo a passo** com confirmações em cada etapa!

---

## 📋 PASSO 1: CRIAR BANCO DE DADOS NO CPANEL

### ✅ Etapa 1.1: Acessar cPanel

1. Abra seu navegador
2. Acesse: `https://seu-dominio.com.br:2083` 
   - Ou: `https://ip-do-servidor:2083`
3. Faça login com suas credenciais
4. Você verá a tela inicial do cPanel

**Confirmação:**
```
[ ] Estou logado no cPanel?
[ ] Posso ver o painel com ícones (File Manager, MySQL, etc)?
```

---

### ✅ Etapa 1.2: Criar Banco de Dados

**No cPanel, procure por "Databases" ou "MySQL Databases":**

```
Localização: cPanel → Databases → MySQL Databases
```

**Passo a passo com screenshots:**

```
┌─────────────────────────────────────────────────────┐
│  CPANEL - MySQL Databases                           │
├─────────────────────────────────────────────────────┤
│                                                     │
│  📊 Create New Database                             │
│  ┌─────────────────────────────────────────────┐   │
│  │ New Database Name:                          │   │
│  │ [siged_local_______________]                │   │
│  │                                             │   │
│  │ Nota: seu_usuario_siged_local               │   │
│  │                                             │   │
│  │ [Create Database]                           │   │
│  └─────────────────────────────────────────────┘   │
│                                                     │
└─────────────────────────────────────────────────────┘
```

**Ação:**
1. Na caixa "New Database Name", digite: `siged_local`
2. Clique no botão verde "Create Database"
3. Você verá uma mensagem de sucesso

**Confirmação:**
```
[ ] Banco "siged_local" foi criado?
[ ] Vi mensagem de sucesso?
```

---

### ✅ Etapa 1.3: Criar Usuário MySQL

**Na mesma página, procure por "MySQL Users":**

```
┌─────────────────────────────────────────────────────┐
│  Add New User                                       │
├─────────────────────────────────────────────────────┤
│                                                     │
│  Username:                                          │
│  [siged_user_______________]                       │
│                                                     │
│  Password:                                          │
│  [gere_uma_senha_forte____]  [Generate]            │
│                                                     │
│  Password (confirm):                                │
│  [gere_uma_senha_forte____]                        │
│                                                     │
│  Password Strength: ████████░░ Strong              │
│                                                     │
│  [Create User]                                      │
│                                                     │
└─────────────────────────────────────────────────────┘
```

**Ação:**
1. Username: `siged_user`
2. Password: Clique em "Generate" para gerar uma senha forte
3. Copie a senha gerada (salve em um lugar seguro!)
4. Clique "Create User"
5. Você verá mensagem de sucesso

**⚠️ IMPORTANTE - Salve essas informações agora:**

```
├─ Banco de dados: siged_local
├─ Usuário: siged_user
├─ Senha: [sua_senha_gerada_aqui]
└─ Host: localhost
```

**Confirmação:**
```
[ ] Usuário "siged_user" foi criado?
[ ] Copiei a senha em um lugar seguro?
[ ] Vi mensagem de sucesso?
```

---

### ✅ Etapa 1.4: Adicionar Usuário ao Banco

**Na mesma página, procure por "Add User to Database":**

```
┌─────────────────────────────────────────────────────┐
│  Add User to Database                               │
├─────────────────────────────────────────────────────┤
│                                                     │
│  User: [siged_user_________▼]                      │
│                                                     │
│  Database: [siged_local_____▼]                     │
│                                                     │
│  [Add User to Database]                             │
│                                                     │
└─────────────────────────────────────────────────────┘
```

**Ação:**
1. Dropdown "User": Selecione `siged_user`
2. Dropdown "Database": Selecione `siged_local`
3. Clique "Add User to Database"

**Próxima tela - Selecionar Permissões:**

```
┌─────────────────────────────────────────────────────┐
│  Manage User Privileges                             │
├─────────────────────────────────────────────────────┤
│                                                     │
│  ☑ ALL PRIVILEGES                                  │
│  (seleciona tudo automaticamente)                   │
│                                                     │
│  [Make Changes]                                     │
│                                                     │
└─────────────────────────────────────────────────────┘
```

**Ação:**
1. Marque "ALL PRIVILEGES" (marca todas as opções)
2. Clique "Make Changes"
3. Você verá mensagem de sucesso

**Confirmação:**
```
[ ] Usuário foi associado ao banco?
[ ] Permissões foram concedidas?
[ ] Vi mensagem de sucesso?
```

---

## 📦 PASSO 2: FAZER UPLOAD DO PROJETO

### ✅ Etapa 2.1: Escolher Método de Upload

**3 Opções (escolha uma):**

#### Opção A: Via File Manager (mais fácil)

```
1. No cPanel, clique em "File Manager"
2. Navegue para: public_html
3. Clique em "Upload"
4. Selecione os arquivos do SIGED
5. Aguarde conclusão (5-10 minutos)
```

#### Opção B: Via FTP (mais rápido)

```
1. No cPanel, clique em "FTP Accounts"
2. Crie uma conta FTP
3. Use WinSCP ou Filezilla para conectar
4. Arraste e solte os arquivos para public_html
```

#### Opção C: Via SSH + Git (mais profissional)

```
1. Abra Terminal no cPanel (ou SSH via PuTTY)
2. Execute: cd public_html
3. Execute: git clone https://seu-repo/siged.git .
4. Aguarde (mais rápido que upload)
```

**Qual método você prefere?**
```
[ ] Opção A - File Manager (recomendado para iniciantes)
[ ] Opção B - FTP (recomendado por velocidade)
[ ] Opção C - Git (recomendado por segurança)
```

---

### ✅ Etapa 2.2: Upload via File Manager (Opção A - passo a passo)

**Se escolheu Opção A:**

1. **Acessar File Manager:**
   ```
   cPanel → Files → File Manager
   ```

2. **Navegar para public_html:**
   ```
   Clique em "public_html" na barra lateral
   ```

3. **Fazer Upload:**
   ```
   Botão "Upload" (topo da página)
   ↓
   Selecione os arquivos
   ↓
   Clique "Upload Files"
   ↓
   Aguarde 5-10 minutos
   ```

**Durante o upload você verá:**
```
┌─────────────────────────────────────────────────────┐
│  Upload in progress...                              │
├─────────────────────────────────────────────────────┤
│                                                     │
│  arquivo1.php      ████████░░░░░░░░░░░░ 50%        │
│  arquivo2.css      ██████████████████░░░░ 90%       │
│  arquivo3.js       ██████████████████████ 100% ✓   │
│                                                     │
│  Total: 50 arquivos                                 │
│                                                     │
└─────────────────────────────────────────────────────┘
```

**Confirmação:**
```
[ ] Upload completo?
[ ] Vi a mensagem de sucesso?
[ ] Posso ver os arquivos em public_html?
```

---

## ⚙️ PASSO 3: CONFIGURAR VERSÃO PHP

### ✅ Etapa 3.1: Acessar Seletor de PHP

```
cPanel → Software → Select PHP Version
```

**Você verá:**
```
┌─────────────────────────────────────────────────────┐
│  PHP Version Selector                               │
├─────────────────────────────────────────────────────┤
│                                                     │
│  Current Version: [ PHP 7.4    ▼]                  │
│                                                     │
│  Available Versions:                                │
│  ☐ PHP 7.2                                         │
│  ☐ PHP 7.3                                         │
│  ☐ PHP 7.4                                         │
│  ☑ PHP 8.0                                         │
│  ☐ PHP 8.1                                         │
│  ☐ PHP 8.2    ← ESCOLHA ESTA                       │
│  ☐ PHP 8.3                                         │
│                                                     │
│  [Set as current]                                   │
│                                                     │
└─────────────────────────────────────────────────────┘
```

**Ação:**
1. Marque a caixa de **PHP 8.2** (ou superior)
2. Clique "Set as current"

**Confirmação:**
```
[ ] PHP 8.2+ está selecionado?
[ ] Vi mensagem de confirmação?
```

---

### ✅ Etapa 3.2: Habilitar Extensões PHP

**Na mesma página, procure por "Extensions":**

```
┌─────────────────────────────────────────────────────┐
│  PHP Extensions                                     │
├─────────────────────────────────────────────────────┤
│                                                     │
│  ☑ pdo                   ← MARQUE                   │
│  ☑ pdo_mysql             ← MARQUE                   │
│  ☑ mysql                 ← MARQUE                   │
│  ☑ curl                  ← MARQUE                   │
│  ☑ gd                    ← MARQUE                   │
│  ☑ zip                   ← MARQUE                   │
│  ☑ bcmath                ← MARQUE                   │
│  ☑ json                  ← MARQUE                   │
│  ☑ mbstring              ← MARQUE                   │
│  ☑ xml                   ← MARQUE                   │
│  ☑ tokenizer             ← MARQUE                   │
│  ☑ fileinfo              ← MARQUE                   │
│  ☑ ctype                 ← MARQUE                   │
│  ☐ intl                  (opcional)                 │
│  ☐ openssl               (opcional)                 │
│                                                     │
│  [Save]                                             │
│                                                     │
└─────────────────────────────────────────────────────┘
```

**Ação:**
1. Marque todas as extensões listadas acima
2. Clique "Save"

**Confirmação:**
```
[ ] Todas as extensões estão habilitadas?
[ ] Vi mensagem de sucesso?
```

---

## 🔌 PASSO 4: ACESSAR SSH (TERMINAL)

### ✅ Etapa 4.1: Via Terminal cPanel

**Opção 1 - Terminal integrado do cPanel:**

```
cPanel → Advanced → Terminal
```

**Você verá um terminal preto:**
```
┌─────────────────────────────────────────────────────┐
│  Terminal                                           │
├─────────────────────────────────────────────────────┤
│                                                     │
│  [usuario@servidor ~]$ _                           │
│                                                     │
│  Digite comandos aqui...                            │
│                                                     │
└─────────────────────────────────────────────────────┘
```

**Opção 2 - Via PuTTY (recomendado para Windows):**

```
1. Baixe PuTTY: https://www.chiark.greenend.org.uk/~sgtatham/putty/
2. Abra PuTTY
3. Preencha:
   - Host Name: seu-servidor.com ou IP
   - Port: 22
   - Connection type: SSH
4. Clique "Open"
5. Login com: seu_usuario_cpanel
6. Password: sua_senha_cpanel
```

**Confirmação:**
```
[ ] Terminal está aberto?
[ ] Posso ver o prompt $?
```

---

### ✅ Etapa 4.2: Navegar até o Projeto

**No terminal, digite:**

```bash
cd public_html
pwd
```

**Você verá:**
```
[usuario@servidor ~]$ cd public_html
[usuario@servidor public_html]$ pwd
/home/seu_usuario/public_html
```

**Confirmação:**
```
[ ] Estou no diretório public_html?
[ ] Posso listar os arquivos? (digite: ls)
```

---

## 📥 PASSO 5: INSTALAR DEPENDÊNCIAS

### ✅ Etapa 5.1: Verificar PHP

**No terminal, digite:**

```bash
php --version
```

**Você deve ver:**
```
PHP 8.2.x (cli) (built: ...)
...
```

**Confirmação:**
```
[ ] PHP 8.2+ está instalado?
```

---

### ✅ Etapa 5.2: Verificar/Instalar Composer

**No terminal, digite:**

```bash
composer --version
```

**Se aparecer versão (ex: Composer version 2.6.x), pule para 5.3**

**Se der erro, instale:**

```bash
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
chmod +x /usr/local/bin/composer
composer --version
```

**Confirmação:**
```
[ ] Composer está instalado?
[ ] Vi versão do Composer?
```

---

### ✅ Etapa 5.3: Instalar Dependências PHP

**No terminal, digit:**

```bash
composer install --no-dev --optimize-autoloader
```

**Você verá (pode levar 3-5 minutos):**

```
Loading composer repositories with package information
Updating dependencies
Lock file operations: 150 installs, 0 updates, 0 removals
  - Installing laravel/framework (v11.x)
  - Installing stancl/tenancy (v3.x)
  - Installing spatie/laravel-permission (v6.x)
  ... (muitas outras)

✓ Completed
```

**Confirmação:**
```
[ ] Composer finalizou SEM erros?
[ ] Pasta vendor/ foi criada?
[ ] Vi "completed" ou similar?
```

---

## 🔐 PASSO 6: CONFIGURAR ARQUIVO .ENV

### ✅ Etapa 6.1: Criar .env

**No terminal, digite:**

```bash
cp .env.example .env
```

**Você verá:**
```
[usuario@servidor public_html]$ cp .env.example .env
[usuario@servidor public_html]$
```

---

### ✅ Etapa 6.2: Editar .env

**No terminal, digite:**

```bash
nano .env
```

**Você verá um editor de texto:**

```
┌─────────────────────────────────────────────────────┐
│  .env (nano)                                        │
├─────────────────────────────────────────────────────┤
│                                                     │
│ APP_NAME="SIGED Militar"                            │
│ APP_ENV=production    ← MUDE PARA production        │
│ APP_DEBUG=false       ← MUDE PARA false             │
│ APP_URL=https://seu-dominio.com.br                 │
│                                                     │
│ LOG_CHANNEL=stack                                   │
│                                                     │
│ DB_CONNECTION=mysql                                 │
│ DB_HOST=localhost                                   │
│ DB_PORT=3306                                        │
│ DB_DATABASE=siged_local    ← USE SEU BANCO          │
│ DB_USERNAME=siged_user     ← USE SEU USUÁRIO        │
│ DB_PASSWORD=sua_senha_aqui ← USE SUA SENHA          │
│                                                     │
│ ... (resto do arquivo)                              │
│                                                     │
│ ^O = salvar  ^X = sair                              │
│                                                     │
└─────────────────────────────────────────────────────┘
```

**Ações a fazer:**

1. **APP_ENV**: Mude de `local` para `production`
2. **APP_DEBUG**: Mude de `true` para `false`
3. **APP_URL**: Mude para `https://seu-dominio.com.br`
4. **DB_DATABASE**: Mude para `siged_local` (seu banco)
5. **DB_USERNAME**: Mude para `siged_user` (seu usuário)
6. **DB_PASSWORD**: Mude para sua senha do MySQL

**Como editar no nano:**

```
1. Use as setas ↑↓←→ para navegar
2. Delete com Backspace
3. Digite o novo valor
4. Quando terminar, pressione: Ctrl + X
5. Pressione: Y (yes, para salvar)
6. Pressione: Enter (para confirmar nome do arquivo)
```

**Confirmação:**
```
[ ] Editei todas as variáveis corretas?
[ ] Salvei o arquivo (Ctrl+X → Y → Enter)?
[ ] Vi a mensagem "saved" ou voltou ao terminal?
```

---

## 🔑 PASSO 7: GERAR CHAVE DA APLICAÇÃO

**No terminal, digite:**

```bash
php artisan key:generate
```

**Você verá:**
```
Application key [base64:xxxxxxxxxxxxxxxxxxxxx] set successfully.
```

**Confirmação:**
```
[ ] Chave foi gerada?
[ ] Vi mensagem de sucesso?
```

---

## 🗄️ PASSO 8: EXECUTAR MIGRATIONS

**No terminal, digite:**

```bash
php artisan migrate --force
```

**Você verá (pode levar 2-3 minutos):**

```
Migration table created successfully.

Running migrations:
  2024_01_01_000000_create_users_table
  2024_01_02_000000_create_disciplinas_table
  2024_01_03_000000_create_turmas_table
  ... (todas as tabelas)

✓ 169 migrations executed
```

**Confirmação:**
```
[ ] Todas as migrations foram executadas?
[ ] Vi "executed" ou "success"?
[ ] Nenhuma mensagem de erro?
```

---

## 🌱 PASSO 9: POPULAR BANCO COM DADOS INICIAIS

**No terminal, digite:**

```bash
php artisan db:seed --class=PapelPermissaoSeeder
```

**Você verá:**

```
Seeding: Database\Seeders\PapelPermissaoSeeder
Seeded:  Database\Seeders\PapelPermissaoSeeder

✓ Database seeding completed successfully
```

**Confirmação:**
```
[ ] Seeder foi executado?
[ ] Vi "completed successfully"?
```

---

## 📊 PASSO 10: AJUSTAR PERMISSÕES

**No terminal, digite:**

```bash
chmod -R 755 storage
chmod -R 755 bootstrap/cache
chmod -R 755 public
```

**Você verá:**
```
[usuario@servidor public_html]$ chmod -R 755 storage
[usuario@servidor public_html]$ chmod -R 755 bootstrap/cache
[usuario@servidor public_html]$ chmod -R 755 public
[usuario@servidor public_html]$
```

**Confirmação:**
```
[ ] Todas as permissões foram ajustadas?
[ ] Nenhuma mensagem de erro?
```

---

## ⚡ PASSO 11: OTIMIZAR APLICAÇÃO

**No terminal, digite:**

```bash
php artisan config:cache
php artisan route:cache
composer dump-autoload -o
```

**Você verá:**
```
✓ Configuration cache cleared!
✓ Configuration cached successfully
✓ Route cache cleared!
✓ Routes cached successfully
✓ Dumping autoloader
```

**Confirmação:**
```
[ ] Otimizações foram aplicadas?
[ ] Vi mensagens de sucesso?
```

---

## 🌐 PASSO 12: CONFIGURAR DOMÍNIO NO CPANEL

### ✅ Etapa 12.1: Opção A - Alterar Document Root (mais fácil)

**Se o projeto está em public_html/siged:**

```
cPanel → Addon Domains
```

**Configure:**
```
Document Root: /home/seu_usuario/public_html/siged/public
```

### ✅ Etapa 12.2: Opção B - Criar .htaccess (alternativa)

**Se não conseguir alterar Document Root:**

**No terminal, digite:**

```bash
cat > /home/seu_usuario/public_html/.htaccess << 'EOF'
<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews -Indexes
    </IfModule>

    RewriteEngine On

    # Handle Authorization Header
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} (.+)/$
    RewriteRule ^ %1 [L,R=301]

    # Send Requests To Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>
EOF
```

**Confirmação:**
```
[ ] Document Root foi alterado OU .htaccess foi criado?
```

---

## ✅ PASSO 13: TESTAR APLICAÇÃO

### ✅ Etapa 13.1: Acessar no Navegador

**Abra seu navegador e digite:**

```
https://seu-dominio.com.br
```

**Você deve ver a tela de LOGIN do SIGED!**

```
┌─────────────────────────────────────────────────────┐
│                                                     │
│           🎖️ SIGED MILITAR                          │
│                                                     │
│   Sistema de Informação e Gestão                    │
│   Educacional da Instituição Militar                │
│                                                     │
│   Email:    [______________________________]         │
│   Senha:    [______________________________]         │
│                                                     │
│                  [ENTRAR]                           │
│                                                     │
│   Esqueceu a senha?                                 │
│                                                     │
└─────────────────────────────────────────────────────┘
```

**Confirmação:**
```
[ ] Página de login apareceu?
[ ] Sem erros 404 ou 500?
```

---

### ✅ Etapa 13.2: Fazer Login

**Digite as credenciais:**

```
Email:  admin@siged.local
Senha:  password123
```

**Clique "ENTRAR"**

**Você deve ver o Dashboard do SIGED!**

**Confirmação:**
```
[ ] Login foi bem-sucedido?
[ ] Vi o painel principal?
[ ] Nenhuma mensagem de erro?
```

---

## 🎉 PARABÉNS! INSTALAÇÃO CONCLUÍDA!

```
┌─────────────────────────────────────────────────────┐
│                                                     │
│   ✅ SIGED MILITAR INSTALADO COM SUCESSO!          │
│                                                     │
│   Seu sistema está rodando em:                      │
│   https://seu-dominio.com.br                        │
│                                                     │
│   Acesse com:                                       │
│   📧 admin@siged.local                              │
│   🔑 password123                                    │
│                                                     │
└─────────────────────────────────────────────────────┘
```

---

## 📚 PRÓXIMAS AÇÕES

1. **Explorar os módulos:**
   - Acadêmico, Disciplinar, Financeiro, etc
   - Cada módulo tem funcionalidades completas

2. **Criar novos usuários:**
   - Admin → Usuários
   - Atribua papéis (Professor, Aluno, etc)

3. **Ler documentação:**
   - `README_MASTER.md` - Guia completo
   - `CHECKLIST_PRODUCAO.md` - Antes de usar em produção

4. **Personalizar:**
   - Mudar senhas padrão
   - Configurar dados da instituição
   - Fazer backup regularmente

---

## 💬 DÚVIDAS?

Se algo não funcionou, vá para: **TROUBLESHOOTING_CPANEL.md**

Ele tem soluções para os problemas mais comuns!

