# Joomla → WordPress Migration ## Estructura del Proyecto ``` ~/joomla-migration/ ├── docker-compose.yml # Configuración de contenedores ├── setup.sh # Script inicial (ejecutar primero) ├── restore-backup.sh # Script de restauración (ejecutar segundo) ├── backup/ # Backup original de Akeeba ├── joomla/ # Joomla restaurado (puerto 8080) └── wordpress/ # WordPress limpio (puerto 8081) ``` ## Paso a Paso ### 1. Inicializar Entorno Abre tu terminal WSL y ejecuta: ```bash cd ~/joomla-migration bash setup.sh ``` Esto va a: - Descargar Akeeba Kickstart - Levantar contenedores Docker (Joomla + WordPress + MySQL) - Instalar extensiones PHP necesarias ### 2. Restaurar Backup ```bash bash restore-backup.sh ``` Esto copia los archivos al contenedor web. ### 3. Restaurar con Kickstart Abre tu navegador en: **http://localhost:8080/kickstart.php** **Datos de conexión MySQL:** - Host: `joomla-db` - Database: `joomla_db` - User: `joomla_user` - Password: `joomla_pass` Sigue el asistente de Kickstart para extraer y restaurar el backup. ### 4. Verificar Joomla Después de la restauración: - **Frontend:** http://localhost:8080 - **Admin:** http://localhost:8080/administrator ### 5. Eliminar Kickstart (seguridad) ```bash docker exec joomla-web rm /var/www/html/kickstart.php ``` --- ## Comandos Útiles **Ver logs de contenedores:** ```bash docker logs joomla-web docker logs joomla-db ``` **Acceder al contenedor:** ```bash docker exec -it joomla-web bash ``` **Parar todo:** ```bash docker compose down ``` **Parar y eliminar datos:** ```bash docker compose down -v ``` **Reiniciar:** ```bash docker compose restart ``` --- ## Accesos | Servicio | URL | Puerto | |----------|-----|--------| | Joomla Frontend | http://localhost:8080 | 8080 | | Joomla Admin | http://localhost:8080/administrator | 8080 | | WordPress | http://localhost:8081 | 8081 | --- ## Próximos Pasos Una vez Joomla esté restaurado y funcionando: 1. OpenClaw analizará la estructura completa 2. Planearemos la arquitectura WordPress 3. Migraremos contenido de forma automatizada 4. Optimizaremos el resultado final