Inception is a project from the 42 School that aims to broaden your knowledge of system administration by using Docker.
The goal of the project is to containerize a simple web application infrastructure using Docker Compose.
The project involves setting up three mandatory containers - a MariaDB database, an NGINX web server, and a WordPress instance. On top of the core infrastructure, I implemented several optional bonus services as an additional challenge:
- Redis - Caching service for WordPress to improve performance
- FTP Server - To enable file transfers to the WordPress container
- Static Website - A simple HTML/CSS site running behind a NodeJS container
- Adminer - Database management tool for MariaDB
- Uptime Kuma - Container monitoring solution to track services
By completing this project, I learned how to architect a production-like environment using Docker networking and persist data in volumes. The bonus services also allowed me to dig deeper into configuring real-world web applications.
Overall, Inception gave me valuable hands-on experience in understanding core Docker concepts that I will be able to apply in future projects and roles as a software engineer.
Warning
Before running the project, you must configure your hosts redirection inside /etc/hosts
. Here you will find what to configure.
127.0.0.1 bsoubaig.42.fr
127.0.0.1 status.bsoubaig.42.fr
127.0.0.1 static.bsoubaig.42.fr
Content of
/etc/hosts
Clone the repository from GitHub:
git clone https://github.com/okbrandon/inception.git
Build and run the Inception
project containers:
make all
Note
This command will build the containers with docker-compose and run them.
Display each containers status:
make status
Stop the running containers:
make stop
Purge and clean the containers:
make clean
Here is the accessible links for the Inception
project.
Wordpress | https://bsoubaig.42.fr/ |
Adminer | https://bsoubaig.42.fr/adminer |
Uptime-Kuma | https://status.bsoubaig.42.fr/ |
Static website | https://static.bsoubaig.42.fr/ |
bsoubaig β [email protected]