https://github.com/florianmgedeon/multi-container-docker-app
Implementation of a microservice-based web application with Docker Compose and Docker NetworkNetwork with multiple containers. (42 Curriculum: Inception)
https://github.com/florianmgedeon/multi-container-docker-app
42school devops docker docker-compose nginx wordpress yamllint
Last synced: 3 months ago
JSON representation
Implementation of a microservice-based web application with Docker Compose and Docker NetworkNetwork with multiple containers. (42 Curriculum: Inception)
- Host: GitHub
- URL: https://github.com/florianmgedeon/multi-container-docker-app
- Owner: florianmgedeon
- License: mit
- Created: 2025-04-10T13:17:13.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2025-04-10T14:58:17.000Z (6 months ago)
- Last Synced: 2025-04-12T03:59:19.454Z (6 months ago)
- Topics: 42school, devops, docker, docker-compose, nginx, wordpress, yamllint
- Language: Shell
- Homepage:
- Size: 19.5 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# "Inception"
A multi-container system built using Docker and Docker Compose, featuring a secure and modular web service architecture. This project was developed as part of the 42 curriculum.

## Project Overview
The goal of Inception is to build a secure and scalable infrastructure using Docker containers, without relying on pre-built images. Each service is containerized, isolated, and orchestrated using `docker-compose`.
## Services
| Service | Description |
|--------|-------------|
| Nginx | Reverse proxy with SSL |
| WordPress | CMS running with PHP-FPM |
| MariaDB | Relational database for WordPress |## Tested Environment
This system was successfully deployed and tested on a virtual machine running **Debian Bookworm (Debian 12)**.
Please note: **root privileges** (or `sudo`) are required to build and run the Docker containers, especially when creating volumes or binding to privileged ports. All services ran as expected using Docker and Docker Compose.## Prerequisites
Before starting ensure to **fill out** the .env file in the srcs folder and all the other files in the secrets folder with your chosen credentials. Also, make sure to create these two folders for the volumes:
/home/inception/data/mariadb
/home/inception/data/wordpress## Usage
After cloning the repository and adding the `.env` file and Docker secrets (see [Prerequisites](#-prerequisites)), simply run: make all
Access the WordPress site at: [https://inception.42.fr](https://inception.42.fr) from your host machine's browser.## Github Actions
Every time a commit modifies `srcs/docker-compose.yml`, the workflow runs to validate YAML syntax, indentation, formatting and common best practices.