A containerized WordPress stack implementing a three-tier architecture with NGINX reverse proxy, WordPress with PHP-FPM, and MariaDB database.
- Docker Engine (>= 20.10)
- Docker Compose (>= 1.29)
- OpenSSL
- Linux environment with sudo privileges
- Clone the repository:
git clone <repository-url>
cd inception- Run the automated setup:
make all- Configure domain resolution:
# Add to /etc/hosts (done automatically if confirmed during setup)
echo "127.0.0.1 amema.42.fr" | sudo tee -a /etc/hosts- Access the WordPress site:
https://amema.42.frStart services:
make upStop services:
make downClean environment:
make clean # Remove containers and generated files
make fclean # Complete cleanup including data volumesinception/
├── Makefile # Build automation and lifecycle management
├── docker-compose.yml # Service orchestration configuration
├── scripts/
│ └── setup.sh # Environment initialization script
├── secrets/ # Generated certificates and passwords (git-ignored)
│ ├── server.crt # SSL certificate
│ ├── server.key # SSL private key
│ ├── db_password.txt # WordPress database user password
│ └── db_root_password.txt # MariaDB root password
└── srcs/
├── .env # Environment variables (git-ignored)
├── .env.example # Environment template
└── requirements/
├── mariadb/ # MariaDB container configuration
│ ├── Dockerfile
│ ├── entrypoint.sh
│ └── my.cnf
├── nginx/ # NGINX reverse proxy configuration
│ ├── Dockerfile
│ └── conf/
│ └── nginx.conf
└── wordpress/ # WordPress with PHP-FPM configuration
├── Dockerfile
└── entrypoint.sh
- Handles HTTPS termination with TLS 1.2/1.3
- Serves static files and proxies PHP requests to WordPress container
- Configured with custom SSL certificates
- Listens on port 443 only
- PHP-FPM based WordPress installation
- Automated setup with WP-CLI
- Creates admin and author users during initialization
- Connects to MariaDB via Docker networking
- Persistent database storage with Docker volumes
- Automatic database and user creation
- Configured for container networking with bind-address 0.0.0.0
- Uses Docker secrets for password management
- HTTPS requests arrive at NGINX on port 443
- Static files served directly by NGINX
- PHP requests forwarded to WordPress container via FastCGI
- WordPress communicates with MariaDB over internal Docker network
- Database data persisted to host filesystem via bind mounts