Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚀 Multi-WordPress Docker Review Hub

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.


✨ Features & Highlights

  • ⚡ Single Container, Multiple Sites: Run dozens of archived WordPress backups simultaneously under a single customized Apache + PHP 8.1 container.
  • 🌐 Dynamic *.localhost Virtual Hosts: Any folder dropped into ./sites/<site_name> is automatically served at http://<site_name>.localhost/ and http://localhost/sites/<site_name>/. Modern browsers resolve *.localhost to 127.0.0.1 without modifying /etc/hosts.
  • 🧙 Magic wp-import CLI Automation: One-step restoration script that:
    1. Creates the MariaDB database automatically.
    2. Detects and imports .sql or .sql.gz backup files.
    3. Rewrites wp-config.php database connection parameters cleanly.
    4. Runs wp search-replace to replace old production URLs with http://<site_name>.localhost/ (including Polylang / WPML / WPMU subdomains).
    5. 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 admin123 instantly via WP-CLI integration.
  • 📊 Integrated phpMyAdmin: Visual SQL management at http://localhost:8081/.
  • ⚙️ Configurable PHP Version: Default PHP 8.1 with easy .env switching to PHP 8.0 or 8.2.

🏗️ Architecture Overview

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
Loading

🚀 Quickstart Guide

Prerequisites

1. Clone & Start Environment

# 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 --build

2. Add Your WordPress Backups

Drop 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
  └── ...

3. Review & Restore

Option A: Web Dashboard (Recommended)

  1. Open your browser and navigate to: http://localhost/
  2. Locate your site card on the Web Dashboard.
  3. Click ⚡ Auto-Configure & Import DB.
  4. Watch the real-time terminal output as it sets up the database and updates URLs.
  5. Click 🚀 Open Web to view your restored site at http://client_site_2023.localhost/.

Option B: Terminal CLI

# Run auto-import script for a specific backup folder
docker compose exec wp-multi wp-import client_site_2023

🛠️ Useful Commands

# 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 ps

📄 License

Released under the MIT License. Built for fast local auditing and development.



🇪🇸 Guía en Español

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.

🌟 Características Principales

  • 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 en http://<nombre_sitio>.localhost/ sin editar /etc/hosts.
  • Restauración Automática de SQL (wp-import): Detecta e importa bases de datos en formato .sql o comprimidos .sql.gz, configura wp-config.php y reemplaza dominios antiguos (incluyendo subdominios de idioma Polylang/WPML como es.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/.

🚀 Inicio Rápido en Español

# 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"

About

High-performance Docker environment to host, audit, and auto-restore multiple archived WordPress backups concurrently with WP- CLI | & dynamic *.localhost vhosts.

Topics

Resources

Stars

Watchers

Forks

Releases

Contributors

Languages