https://github.com/iker-gonzalez/inception
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
https://github.com/iker-gonzalez/inception
docker mariadb networking nginx tls-certificate virtual-machine web-development wordpress
Last synced: 2 months ago
JSON representation
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
- Host: GitHub
- URL: https://github.com/iker-gonzalez/inception
- Owner: iker-gonzalez
- License: mit
- Created: 2023-01-03T11:31:03.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2023-10-29T12:08:40.000Z (over 2 years ago)
- Last Synced: 2025-01-14T05:33:23.738Z (over 1 year ago)
- Topics: docker, mariadb, networking, nginx, tls-certificate, virtual-machine, web-development, wordpress
- Language: Dockerfile
- Homepage:
- Size: 1.57 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
๐ณ inception ๐ณ
Development repo for 42cursus' inception project
For further information about 42cursus and its projects, please refer to 42cursus repo.
About
ยท
Usage
---
## ๐ฃ๏ธ 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**](https://github.com/iker-gonzalez/42_cursus/blob/main/_PDFs/en.subject_inception.pdf)
## ๐ 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.

## ๐ ๏ธ 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:
```bash
git clone https://github.com/iker-gonzalez/inception.git
```
4. **Run the Project:**
- Within the project folder, execute the following command:
```bash
make all
```
5. **Access the Website:**
- Open your web browser and visit "https://ikgonzal.42.fr."
6. **Certificate Warning:**
- You may encounter a self-signed certificate warning; please proceed by ignoring this warning.
## ๐ Resources
[Docker-curriculum](https://docker-curriculum.com/)