Skip to content

somaya-Hassoune/Inception

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This project has been created as part of the 42 curriculum by shassoun.

Description

This project is Inception, a system administration and DevOps project from the 42 curriculum. Its goal is to design and deploy a complete and secure web infrastructure using Docker and Docker Compose.

The stack is composed of multiple services running in isolated containers:

  • Nginx as a web server and reverse proxy (HTTPS only)
  • WordPress with PHP-FPM for dynamic content
  • MariaDB as the database server

Each service runs in its own container, connected through a Docker network, following best practices in containerization, security, and data persistence.

Instructions

Prerequisites

  • Docker
  • Docker Compose
  • Make

Installation & Execution

make

This command builds all Docker images and starts the containers.

To stop the project:

make down

To clean everything (containers, images, networks, and volumes not in use or associated with stopped containers):

make clean

Project Design Choices

Docker Usage

Docker is used to ensure:

  • Service isolation
  • Reproducible environments
  • Easy deployment and scalability

Virtual Machines vs Docker

  • Virtual Machines emulate an entire operating system and are heavy in resources.
  • Docker containers share the host kernel, start faster, and consume fewer resources.

Secrets vs Environment Variables

  • Environment variables are used for non-sensitive configuration.

Docker Network vs Host Network

  • Docker network allows secure communication between containers using service names.
  • Host network exposes services directly on the host, which is less secure and not used here.

Docker Volumes vs Bind Mounts

  • Docker volumes are used for persistent data (database, WordPress files).
  • They are managed by Docker and safer than bind mounts, which depend on host paths.

Resources

  • Docker documentation
  • Nginx documentation
  • WordPress documentation
  • MariaDB documentation

AI Usage

AI was used as a learning assistant to:

  • Understand Docker, Nginx, and WordPress interactions
  • Clarify configuration files and error messages
  • Improve documentation clarity

AI was not used to generate ready-made solutions without understanding.

About

Inception is a 42 project focused on building a Docker-based infrastructure with multiple services (Nginx, WordPress, MariaDB) using Docker Compose, with emphasis on system administration, networking, and security.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors