603eb1ecb4bf608b75fd3a66dcc787f0df6ec3e7
Aviso de Mixbot (2-ago): los bots de la carta publican por wp-nuevo.feadulta.com, no por www, porque el WAF de Cloudflare los bloquea por www (regla "bloquear bots 1"). Ese hostname no tiene registro propio, lo cubre el wildcard, y Traefik solo enruta nuevo.feadulta.com: al mover el A del apex los bots dejarian de publicar. La carta 738 se compone el martes. Se anade el paso 0 al runbook. Hay que hacerlo en el PANEL: por API el PATCH de fqdn da 422 y actualizar SERVICE_FQDN_WORDPRESS cambia la variable pero no regenera los routers (comprobado hoy). Plan B documentado: los bots pueden pasar a nuevo.feadulta.com, que es grey cloud y por tanto no pasa por Cloudflare ni le aplica ninguna regla del WAF. Decision de Rafa: el bloqueo de login lo lleva Wordfence y sale limit-login-attempts-reloaded. Wordfence hace lo mismo y ademas firewall de aplicacion, escaner de malware y 2FA; los dos juntos son dos contadores compitiendo. Retirado del staging (7 plugins activos, sitio en pie) y anadido al post-import-seguridad.sh (paso 3c) porque el dump lo revive en cada import, junto con sus 12 opciones huerfanas. Nuevo paso 3d que verifica que Wordfence sigue activo y lo reinstala si faltara. Inma confirma que el modo SSL de la zona es Full, no Flexible: cae el riesgo de bucle de redireccion. Marcado como resuelto en los verdes previos. Anadida la seccion del correo: el cutover no lo toca (MX a otra IP), pero la caducidad del 07/08 si, y ediciones@/contenido@ son de donde sale la carta. Anotado tambien que Cloudflare devuelve 403 a la IP de Rafa para cualquier hostname de feadulta: un 403 desde su maquina no prueba nada, la verificacion de los bots la tienen que hacer ellos. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
feadulta.org — Migración Joomla → WordPress
Working tree del proyecto feadulta.org. WordPress nuevo, scripts de migración K2 → WP, mu-plugins custom.
La documentación operativa está en la wiki del repo.
Enlaces rápidos
- Wiki — Home
- Credenciales y accesos
- Infraestructura
- Arquitectura WordPress
- Sincronización local → producción
- Limitaciones del servidor de producción
- Roadmap
- Issues
Runbooks locales
Estructura local
/home/rafa/joomla-migration/
├── wordpress/ WP local (Docker)
│ └── wp-content/mu-plugins/ fea-homepage.php, carta-semana-plugin.php (trackeados)
├── joomla/ Joomla legacy restaurado (solo lectura, port 8080)
├── joomla-php83/ Joomla con PHP 8.3 (deploy compat, port 8083)
├── scripts/ Importadores, fixers, cutover
├── tools/
│ ├── e2e/ Suite Playwright + Gemma vision
│ └── akeeba-kickstart/ Kickstart.php para restaurar .jpa
├── (backups/ ya no está aquí — movida a N:\Backup\Joomla_db el 2026-07-06, ~25 GB, fuera de WSL)
├── archive/ Scripts setup-inicial y logs migración (gitignored)
├── analisis-cartas/ Histórico de cartas semanales
├── evangelios_html/ HTML de los evangelios
├── capturas/ PNGs de referencia (gitignored)
└── docker-compose.yml
Arrancar el entorno local
cd /home/rafa/joomla-migration
docker compose up -d
# WordPress: https://farmer.taild3aaf6.ts.net/fea/ (Tailscale + Caddy)
# Joomla (legacy, consulta): http://localhost:8080
Description
Languages
PHP
61%
Python
35.7%
Shell
3.3%