Skip to content

Utilizing a Virtual Machine (VM) and Docker containers, this project orchestrates a secure system architecture with volume management, Docker networking, and TLS encryption, hosting services like NGINX, WordPress, and MariaDB

License

Notifications You must be signed in to change notification settings

iker-gonzalez/inception

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🐳 inception 🐳

Development repo for 42cursus' inception project
For further information about 42cursus and its projects, please refer to 42cursus repo.

GitHub code size in bytes Number of lines of code Code language count GitHub top language GitHub last commit


🗣️ About

42_Inception is a Docker-compose project designed to streamline the creation of a robust LEMP stack, comprising Linux, Nginx, MariaDB, and PHP, all orchestrated seamlessly with WordPress. With this project, each service gets its own container, all operating within a dedicated Docker network, showcasing Docker as the key technology that powers this deployment. Additionally, the whole service is hosted within a dedicated Virtual Machine (using GCP Compute Engine service).

For detailed information, refer to the subject of this project

🏗 Arquitecture

The system architecture for the "Inception" project is a comprehensive setup designed for system administration practice using Docker. It comprises various components and services orchestrated within a virtual machine environment. Here's a concise overview of the architecture:

  • Virtual Machine (VM): The entire project takes place within a virtual machine, isolating and encapsulating the system components.

  • Dockerized Services: The architecture involves multiple Docker containers, each serving a specific purpose. These containers are responsible for running various services, including NGINX, WordPress with PHP-FPM, and MariaDB. The containers are created using custom Dockerfiles, and each service operates within its dedicated container.

  • Volume Management: Two volumes are utilized for data management. One volume holds the WordPress database, while the other stores the website files. These volumes ensure data persistence and separation.

  • Networking: A custom Docker network connects the containers, facilitating communication and interaction between services.

  • TLS Encryption: The NGINX container acts as the entry point into the infrastructure, serving via port 443. It provides TLSv1.2 or TLSv1.3 encryption, ensuring secure communication.

This architecture provides a robust environment for system administration learning, emphasizing Docker-based virtualization and the orchestration of multiple services within a virtual machine.

System arquitecture

🛠️ Usage

To run this project, follow these steps:

  1. Create a Virtual Machine:

    • Create a VM with a user named "ikgonzal," and ensure that the "/home/ikgonzal" folder is in place.
  2. Edit Hosts File:

    • Add the following line to your /etc/hosts file to set up the expected domain name:
      127.0.0.1 ikgonzal.42.fr
      
  3. Clone the Repository:

    • Clone the 42_Inception repository to your VM by running the following command:
      git clone https://github.com/iker-gonzalez/inception.git
  4. Run the Project:

    • Within the project folder, execute the following command:
      make all
  5. Access the Website:

  6. Certificate Warning:

    • You may encounter a self-signed certificate warning; please proceed by ignoring this warning.

🔗 Resources

Docker-curriculum

About

Utilizing a Virtual Machine (VM) and Docker containers, this project orchestrates a secure system architecture with volume management, Docker networking, and TLS encryption, hosting services like NGINX, WordPress, and MariaDB

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages