Automatic AI Posts, setup automatizado e seeder de permalinks/avatar

Plugin automatic-ai-posts (v2.0.0)
- Pipeline completo: coleta de feeds RSS/Atom, filtro por IA, reescrita,
  categoria, imagem de capa e agendamento
- Página de configuração com teste real do provedor de IA
- Editor: botão para refazer imagem de capa e metadados, textos em PT-BR
- Ajuda com botão Pix (copia-e-cola + QR) e sem nota de avaliação
- Cache-busting por mtime nos assets do admin

Tema gustavoo-portfolio
- Marca do cabeçalho reduzida a "Gustavo"
- Suporte a título próprio da marca

Setup (docker/wp-init.sh, compose.yaml)
- Plugins de terceiros (Post Views Counter, Rank Math, Site Kit)
  instalados do WordPress.org em vez de versionados
- Falha explícita ao final se algum plugin obrigatório não instalar
- WPCLI_UID/WPCLI_GID configuráveis

Seeder do tema
- Links permanentes "Dia e nome" e avatar "Iniciais" aplicados
  apenas em instalação nova, com regravação do .htaccess
This commit is contained in:
Gustavo committed 2026-11-02 13:33:30 -03:00
1 parent 5891467266
commit 0ea3651fb5
73 files changed
+8858 -39

No files matched your search

+51 -1
View File
@@ -84,9 +84,16 @@ O tema e plugin dependem dos seguintes plugins WordPress (instalados e ativados)
- **FluentCRM** — Automação de marketing e newsletter
```bash
# Subir ambiente Docker
# Criar o arquivo de variáveis de ambiente (obrigatório)
cp .env.example .env
# Edite o .env com suas credenciais (senhas do banco, porta, etc.)
# Subir ambiente Docker (instala e configura tudo automaticamente)
docker compose up -d
# Acompanhar a instalação
docker compose logs -f wpcli
# Acessar WordPress
# http://localhost:8080
# Usuário: admin | Senha: admin (definido no .env)
@@ -102,6 +109,49 @@ docker compose up -d
docker compose logs -f wordpress
```
### O que acontece a cada `docker compose up`
O serviço `wpcli` roda o `docker/wp-init.sh` e detecta o estado do banco:
**Primeira execução (banco vazio) — instalação**
1. `wp core install` com URL/título/admin definidos no `.env`
2. Pacote de idioma `pt_BR`
3. Instala do WordPress.org os plugins de `WP_EXTRA_PLUGINS` (Post Views Counter, Rank Math SEO, Site Kit) — só se faltarem
4. Ativa **todos** os plugins de `wp-content/plugins/` e remove os que o WordPress traz (`akismet`, `hello`)
5. Redis: constantes no `wp-config.php`, plugin, drop-in `object-cache.php` e verificação de conexão
6. Configura o Post Views Counter: conta **posts e páginas**, posição **Manual only**
7. Ativa o tema `gustavoo-portfolio` e remove os temas padrão
8. Executa o seeder do plugin (páginas, formulários, feeds, permalinks, avatar)
Rank Math SEO e Site Kit são apenas instalados e ativados: o wizard e a conexão com o Google são feitos manualmente no painel.
**Execuções seguintes (site já instalado) — atualização**
1. Nada é reinstalado e nenhum dado é apagado
2. Atualiza o **core** e os **plugins ativos** que tiverem versão nova
3. Ativa plugins novos adicionados à pasta `wp-content/plugins/`
4. Reaplica só o que estiver faltando (idioma, Redis, tema, seeder idempotente)
> A configuração do Post Views Counter roda **uma única vez**, na instalação. Se você mudar a posição no painel, ela não é sobrescrita nos próximos boots.
O seeder também aplica, apenas enquanto os valores ainda forem os de instalação nova:
| Ajuste | Valor aplicado |
|---|---|
| Links permanentes | **Dia e nome** — `/ano/mês/dia/slug/` |
| Avatar padrão | **Iniciais** |
Depois de criar permalinks, o `.htaccess` do Apache é regravado na hora — sem isso as URLs novas dariam 404. Se você já tiver escolhido outro permalink ou avatar, sua escolha é mantida.
Tudo o que é do usuário fica em **volumes**, não no container:
| Volume | Conteúdo |
|---|---|
| `db_data` | banco MariaDB — posts, páginas, usuários, opções, formulários |
| `wordpress_data` | core, uploads, plugins e temas instalados |
| `redis_data` | cache de objetos |
`docker compose down` (sem `-v`) preserva tudo; só `down -v` recria do zero. Para pular atualizações numa reinicialização, use `WP_SKIP_UPDATES=1` no `.env`.
## Deploy
O tema está preparado para deploy em ambientes WordPress padrão (VPS, shared hosting, WP Engine, Kinsta, etc.).