A powerful, high-performance, single-container local development environment designed specifically to review, audit, and restore multiple backed-up WordPress websites concurrently without the overhead of launching separate web containers for each site.
Equipped with WP-CLI, dynamic *.localhost Virtual Hosts, an interactive Dark Glassmorphism Web Dashboard (with English & Spanish language toggle), and an automated wp-import migration script.
- ⚡ Single Container, Multiple Sites: Run dozens of archived WordPress backups simultaneously under a single customized Apache + PHP 8.1 container.
- 🌐 Dynamic
*.localhostVirtual Hosts: Any folder dropped into./sites/<site_name>is automatically served athttp://<site_name>.localhost/andhttp://localhost/sites/<site_name>/. Modern browsers resolve*.localhostto127.0.0.1without modifying/etc/hosts. - 🧙 Magic
wp-importCLI Automation: One-step restoration script that:- Creates the MariaDB database automatically.
- Detects and imports
.sqlor.sql.gzbackup files. - Rewrites
wp-config.phpdatabase connection parameters cleanly. - Runs
wp search-replaceto replace old production URLs withhttp://<site_name>.localhost/(including Polylang / WPML / WPMU subdomains). - Flushes permalinks and caches.
- 🖥️ Dark Glassmorphism Web Dashboard: Access
http://localhost/to visually inspect all detected sites, check DB connection statuses, toggle between English and Spanish, launch auto-restorations via AJAX, open sites/admin panels, or reset forgotten Admin passwords with 1-click. - 🔑 One-Click Admin Password Reset: Reset lost WordPress admin passwords to
admin123instantly via WP-CLI integration. - 📊 Integrated phpMyAdmin: Visual SQL management at
http://localhost:8081/. - ⚙️ Configurable PHP Version: Default PHP 8.1 with easy
.envswitching to PHP 8.0 or 8.2.
graph TD
User([Browser / Developer]) -->|http://localhost/| Dash[Dark Glassmorphism Dashboard]
User -->|http://*.localhost/| VHost[Apache Dynamic VirtualDocumentRoot]
User -->|wp-import / CLI| CLI[WP-CLI 2.12.0 & Bash Tools]
subgraph Web Container [wp_multi_server - PHP 8.1 + Apache]
Dash
VHost
CLI
SitesDir[./sites/ Directory]
end
subgraph Database Container [wp_multi_db - MariaDB 10.11]
MariaDB[(MariaDB Storage)]
end
subgraph Database UI [wp_multi_pma - phpMyAdmin]
PMA[phpMyAdmin Web App]
end
VHost -->|Database Connections| MariaDB
CLI -->|Auto-Import & Search-Replace| MariaDB
User -->|http://localhost:8081| PMA
PMA -->|SQL Management| MariaDB
- Docker & Docker Compose installed on Linux, macOS, or Windows (WSL2).
# 1. Clone the repository
git clone git@github.com:giustip/multi-wordpress-docker.git
cd multi-wordpress-docker
# 2. Build and start containers
docker compose up -d --buildDrop your WordPress backup folders into the ./sites/ directory:
multi-wordpress-docker/
├── sites/
│ ├── client_site_2023/
│ │ ├── wp-config.php
│ │ ├── wp-content/
│ │ ├── database_backup.sql <-- Place raw .sql or compressed .sql.gz here
│ │ └── ...
│ └── my_old_blog/
│ └── ...
├── docker-compose.yml
└── ...
- Open your browser and navigate to:
http://localhost/ - Locate your site card on the Web Dashboard.
- Click
⚡ Auto-Configure & Import DB. - Watch the real-time terminal output as it sets up the database and updates URLs.
- Click
🚀 Open Webto view your restored site athttp://client_site_2023.localhost/.
# Run auto-import script for a specific backup folder
docker compose exec wp-multi wp-import client_site_2023# Run WP-CLI commands inside a specific site directory
docker compose exec -w /var/www/html/sites/client_site_2023 wp-multi wp plugin list
# Access the web container shell
docker compose exec wp-multi bash
# Check running container statuses
docker compose psReleased under the MIT License. Built for fast local auditing and development.
Un entorno de desarrollo local en Docker de alto rendimiento diseñado específicamente para revisar, auditar y restaurar múltiples sitios respaldados de WordPress de manera simultánea en un solo contenedor web.
Equipado con WP-CLI, Virtual Hosts dinámicos (*.localhost), un Dashboard Web interactivo (con selector de idioma Español/Inglés) y el script automatizado wp-import.
- Un Solo Contenedor, Múltiples Sitios: Ejecuta decenas de WordPress archivados en un servidor Apache + PHP 8.1 optimizado.
- Virtual Hosts Dinámicos: Cualquier carpeta dentro de
./sites/<nombre_sitio>se sirve automáticamente enhttp://<nombre_sitio>.localhost/sin editar/etc/hosts. - Restauración Automática de SQL (
wp-import): Detecta e importa bases de datos en formato.sqlo comprimidos.sql.gz, configurawp-config.phpy reemplaza dominios antiguos (incluyendo subdominios de idioma Polylang/WPML comoes.sitio.com). - Dashboard Web Interactivo: Entra a
http://localhost/para inspeccionar sitios, cambiar el idioma de la interfaz, restaurar BDs con 1 clic y resetear contraseñas de administrador olvidadas (admin123). - phpMyAdmin Incluido: Gestión SQL visual en
http://localhost:8081/.
# 1. Clonar el repositorio e iniciar contenedores
git clone git@github.com:giustip/multi-wordpress-docker.git
cd multi-wordpress-docker
docker compose up -d --build
# 2. Copiar tus carpetas respaldadas en ./sites/ (junto a su archivo .sql o .sql.gz)
# 3. Abrir en el navegador: http://localhost/ y pulsar "⚡ Auto-Configurar e Importar BD"