# Guia de Instalação

## Passo 1: Upload dos Arquivos

Envie todos os arquivos do pacote para o seu servidor (FTP, SCP, Git, etc).

## Passo 2: Configurar Permissões

```bash
chmod -R 755 storage/
chmod -R 755 storage/logs
chmod -R 755 storage/cache
chmod -R 755 storage/uploads
chmod 600 .env   # após o instalador criar o arquivo
```

## Passo 3: Apontar o servidor web

- **Produção (Apache/Nginx)**: aponte o document root para a pasta `public/`, ou utilize o `.htaccess` incluso na raiz para redirecionar tudo através de `public/index.php`.
- **Teste local**: 
  ```bash
  php -S localhost:8000 -t public/
  ```

## Passo 4: Acessar o Instalador

```
http://seu-dominio.com/install/
```

Siga os 5 passos:
1. **Verificação de Requisitos** — confirma PHP 8+, extensões necessárias e permissões.
2. **Banco de Dados** — informe host, nome do banco, usuário e senha. O instalador cria o banco e roda o schema automaticamente.
3. **Chaves de API** — opcional, pode ser preenchido depois.
4. **Usuário Admin** — cria a conta de administrador da plataforma.
5. **Conclusão** — tudo pronto, redireciona para o login.

## Passo 5: Configurar o Cron Job

```bash
* * * * * php /caminho/completo/para/cron.php >> /var/log/content-manager-cron.log 2>&1
```

Isso processa a fila de jobs (geração de conteúdo, imagens e publicações).

## Passo 6: Fazer Login

```
http://seu-dominio.com/login.html
```

Use o e-mail e senha criados no passo 4 do instalador.

## Passo 7: Cadastrar seu primeiro site WordPress

No dashboard, cadastre um site informando:
- Nome do site
- URL (ex: `https://meusite.com`)
- Usuário WordPress
- **Senha de aplicativo** do WordPress (não a senha normal — gere em `Usuários > Perfil > Senhas de Aplicativo`)

## Instalando em uma subpasta (cPanel)

O código já detecta automaticamente se está rodando na raiz do domínio ou em uma subpasta — não é necessário editar nenhum arquivo PHP. Só falta um ajuste no `.htaccess`.

**Exemplo:** instalar em `seudominio.com/cms/`

1. No **Gerenciador de Arquivos** do cPanel, dentro de `public_html`, crie a pasta `cms`.
2. Envie todo o conteúdo do ZIP para dentro de `public_html/cms/` (o arquivo `.htaccess` deve ficar em `public_html/cms/.htaccess`, não direto em `public_html/`).
3. Abra `public_html/cms/.htaccess` e troque:
   ```
   RewriteBase /
   ```
   por:
   ```
   RewriteBase /cms/
   ```
   (troque `cms` pelo nome real da sua pasta)
4. Copie `.env.example` para `.env` dentro de `public_html/cms/`.
5. Ajuste permissões pelo Gerenciador de Arquivos ou terminal:
   ```bash
   chmod -R 755 public_html/cms/storage
   ```
6. Acesse no navegador:
   ```
   https://seudominio.com/cms/install/
   ```
7. Siga o assistente normalmente. Ao final, o sistema usa `https://seudominio.com/cms/login.html`.

### Alternativa mais simples: subdomínio

Se preferir não mexer no `.htaccess`, crie um **subdomínio** no cPanel (ex: `cms.seudominio.com`) e aponte o "Document Root" dele para `public_html/cms/public` (a pasta `public/` de dentro do pacote, não a raiz do pacote). Nesse caso a aplicação fica como se estivesse na raiz do domínio (do subdomínio), sem precisar tocar no `.htaccess`.

### Cron job em subpasta

Ajuste o caminho completo no crontab do cPanel:
```bash
* * * * * php /home/seuusuario/public_html/cms/cron.php >> /home/seuusuario/public_html/cms/storage/logs/cron.log 2>&1
```



### "Permissão negada" ao instalar
```bash
chmod -R 755 storage/
chmod 755 .
```

### "Banco de dados não encontrado" / erro de conexão
- Confirme host, porta, usuário e senha.
- O usuário do MySQL precisa de permissão `CREATE DATABASE` se for usar a criação automática.

### "Classe não encontrada" / erro 500 genérico
- Confirme que a pasta `core/` está intacta e com todos os subdiretórios.
- Verifique os logs em `storage/logs/`.

### Cron não está rodando jobs
- Teste manualmente: `php cron.php`
- Verifique se o caminho no crontab está correto (use caminho absoluto).
- Verifique o log: `storage/logs/cron-*.log`

### Erro ao publicar no WordPress
- Confirme que a URL do site está correta e acessível.
- Use uma **senha de aplicativo**, não a senha de login do WordPress.
- Verifique se o REST API do WordPress está habilitado (`/wp-json/wp/v2/`).

## Suporte

Para dúvidas ou problemas, abra uma issue no repositório do projeto.
