Inception es un entorno de desarrollo y despliegue de WordPress totalmente contenedorizado, que incluye MariaDB como base de datos y Nginx como servidor web, orquestado con Docker Compose y automatizado mediante un Makefile. Está pensado tanto para desarrollo local como para demostraciones en producción ligera.
Este proyecto te permite levantar en un solo paso un stack completo:
- MariaDB: Base de datos relacional, configurada con ajustes de rendimiento y codificación UTF-8.
- WordPress: Instalación automática de WordPress usando WP-CLI, con creación de usuario y tema predeterminado.
- Nginx: Proxy reverso con SSL autofirmado para servir WordPress por HTTPS.
- Makefile: Simplifica la orquestación incluyendo la inserción automática del dominio en
/etc/hosts, creación de volúmenes persistentes y comandos de ciclo de vida (up,down,clean).
┌───────────────────┐ ┌───────────────┐ ┌──────────────────┐
│ Contenedor │ │ Contenedor │ │ Contenedor │
│ MariaDB │◀───▶ │ WordPress │◀───▶ │ Nginx │
│ (puerto 3306) │ │ (puerto 9000) │ │ (puerto 443) │
└───────────────────┘ └───────────────┘ └──────────────────┘
│ │ │
│ │ │
Volumen Volumen ––
(`/home/.../mariadb`) (`/home/.../wordpress`) SSL y configuración
- Docker & Docker Compose
- Makefile
- Bash scripting (scripts de inicialización y hosts)
- Nginx con SSL (OpenSSL)
- MariaDB
- WordPress + WP-CLI
Inception/
├── Makefile
├── src/
│ ├── .env
│ ├── docker-compose.yml
│ └── requirements/
│ ├── mariadb/
│ │ ├── conf/mariadb.conf
│ │ ├── Dockerfile
│ │ └── tools/mariadb.sh
│ ├── nginx/
│ │ ├── conf/default.conf
│ │ ├── Dockerfile
│ │ └── tools/nginx_start.sh
│ └── wordpress/
│ ├── Dockerfile
│ ├── conf/www.conf
│ └── tools/wp.sh
└── README.md
- Docker
- Docker Compose
- Permisos de
sudopara modificar/etc/hosts
Define tus parámetros en src/.env:
DONAIN_NAME=mi-dominio.local
MYSQL_HOSTNAME=mariadb
MYSQL_DATABASE=mi_db
MYSQL_USER=usuario
MYSQL_PASSWORD=pass
MYSQL_ROOT_USER=root
MYSQL_ROOT_PASSWORD=pass_root
WORDPRESS_TITLE=MiSitio
WORDPRESS_ADMIM=admin_wp
WORDPRESS_ADMIM_PASS=pass_wp
WORDPRESS_ADMIM_EMAIL=[email protected]
WORDPRESS_USER=autor_wp
WORDPRESS_EMAIL=[email protected]
WORDPRESS_USER_PASS=pass_autor-
Clona el repositorio
git clone https://github.com/jainavas/inception.git cd inception -
Ajusta tu archivo
.envensrc/.envsegún tus necesidades. -
Levanta todo el entorno
make all
- Se añadirá tu dominio en
/etc/hosts. - Se crearán los volúmenes de datos en
~/data/mariadby~/data/wordpress. - Se levantará el stack con Docker Compose.
- Se añadirá tu dominio en
-
Visita tu sitio
Accede por HTTPS ahttps://<DONAIN_NAME>(el certificado SSL se genera automáticamente). -
Detener servicios
make down
-
Limpiar todo
make clean
Elimina contenedores, imágenes, volúmenes y la red Docker.
- Haz un fork del proyecto.
- Crea una branch para tu feature o corrección:
git checkout -b feature/nueva-funcionalidad
- Haz tus cambios y commitea:
git commit -m "Añade descripción de la mejora" - Envía tu pull request.
Este proyecto está bajo la licencia MIT. Consulta el archivo LICENSE para más detalles.
Jaime Navascues Peña
- Email: [email protected]
- GitHub: @jainavas