This web application has been developed using the following technologies: Next.js, React, TypeScript, Node.js, Tailwind CSS, Prisma ORM, PostgreSQL...

Learn more

Inception

This project aims to expand its knowledge of system administration using Docker. It requires the virtualization of several Docker images by creating them in a virtual machine (VM).

Project overview

Inception is the first containerisation project within the core curriculum of 42 School.

It is a logical extension of Born2beroot, a project which aims to discover virtual machines, networking and system administration.

The objective is to create a Docker network which contains the following 3 services:

  • Nginx, a web server that must be recreated through ‘Webserv’ (another 42 School project),

  • MariaDB, an open source relational database based on MySQL,

  • WordPress, a content management system (CMS).

In order to develop as many skills as possible, I have also set up the following 5 services:

  • Redis Cache, which optimises WordPress performances by keeping database queries in memory,

  • A FTP server, allowing to manipulate files related to the WordPress folder,

  • A static website in HTML,

  • Adminer, a minimalist database management interface contained in a single PHP file,

  • Grafana, an open source analysis and monitoring tool connected to Redis Cache and MariaDB services.

This project enables to develop multiple skills, such as:

  • Building Docker images by creating Dockerfiles from scratch,

  • Centralised management of services, volumes and network using the ‘docker-compose.yml’ file,

  • Using Nginx's reverse proxy to redirect external URLs to an internal service.

This list is not exhaustive.

Because a picture speaks a thousand words

image
image
image
image
image
image
image
image
image
Loading data
Loading data
Loading data

Would you like to check out the project code and test it by yourself?

Similar projects

This project seems similar to yours?

If you think that skills developed through this project could be useful to your own project, please contact me using the button below.

Let's schedule an appointment

Would you like to discover more projects?