Set up a small infrastructure composed of WordPress with LEMP Stack (Nginx, MariaDB and PHP) using Docker / Docker-Compose under specific rules.
You then have to set up:
- A Docker container that contains NGINX with TLSv1.2 or TLSv1.3 only.
- A Docker container that contains WordPress + php-fpm (it must be installed and configured) only without nginx.
- A Docker container that contains MariaDB only without nginx.
- A volume that contains your WordPress database.
- A second volume that contains your WordPress website files.
- A docker-network that establishes the connection between your containers.
Your containers have to restart in case of a crash.
For this project, the bonus part is aimed to be simple. A Dockerfile must be written for each extra service. Thus, each one of them will run inside its own container and will have, if necessary, its dedicated volume.
Bonus list:
- Set up redis cache for your WordPress website in order to properly manage the cache.
- Set up a FTP server container pointing to the volume of your WordPress website.
- Create a simple static website in the language of your choice except PHP (Yes, PHP is excluded!). For example, a showcase site or a site for presenting your resume.
- Set up Adminer.
- Set up a service of your choice that you think is useful. During the defense, you will have to justify your choice (I chose Portainer)
- Docker docs
- Getting started with docker, the step by step tutorial
- Dockerfile Tutorial by Example I - Basics
- Dockerfile Tutorial by Example II - Best practices
- Docker compose tutorial by example
- Docker Networking Crash Course
- Docker networking II
- docker volumes
- The NGINX Crash Course
- What is Nginx? Understanding the basics of Nginx
- What is a web server?
- What is a Proxy Server and How Does it Work?
- What Is a Reverse Proxy Server?
- TLS Basics
- What Is An Ssl/Tls Certificate?
- Compare TLS 1.3 and TLS 1.2 Certificates: Which is Stronger?
- How To Create a Self-Signed SSL Certificate for Nginx in Ubuntu
- Install WordPress with Nginx on Ubuntu
- How To Make a Website With WordPress
- Install WordPress WP-CLI (wordpress command line)
- What's mariadb ?
- php-fpm: PHP FastCGI Process Manager
- PID 1 and the best practices for writing Dockerfiles
- Introduction to Redis
- Configure Redis Caching to Speed Up WordPress
- FTP Server Setup (vsftpd)
- Build and deploy a portfolio website
- Set up adminer with nginx
- Portainer
