Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mguardia10/42cursus_inception
This project aims to broaden your knowledge of System Administration by using Docker.
https://github.com/mguardia10/42cursus_inception
42school bash-scripting docker docker-compose inception-42
Last synced: 2 days ago
JSON representation
This project aims to broaden your knowledge of System Administration by using Docker.
- Host: GitHub
- URL: https://github.com/mguardia10/42cursus_inception
- Owner: MGuardia10
- Created: 2024-08-06T07:42:26.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2024-10-08T17:38:08.000Z (4 months ago)
- Last Synced: 2024-11-23T06:20:53.998Z (2 months ago)
- Topics: 42school, bash-scripting, docker, docker-compose, inception-42
- Language: JavaScript
- Homepage:
- Size: 2.86 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 42cursus_inception
This project aims to broaden your knowledge of System Administration by using Docker.This project consists in having you set up a small infrastructure composed of different
services under specific rules. The whole project has to be done in a virtual machine. You
have to use docker compose. You can see the subject [**HERE.**](https://github.com/MGuardia10/42cursus/blob/main/subjects/en/inception_subject_en.pdf)![Docker](https://img.shields.io/badge/Docker-a?style=for-the-badge&logo=docker&color=grey)
![Bash](https://img.shields.io/badge/Bash-a?style=for-the-badge&logo=GNUBash&color=grey)
![Makefile](https://img.shields.io/badge/Makefile-a?style=for-the-badge&logo=monster&logoColor=orange&color=grey)Rules to follow:
- Each Docker image must have the same name as its corresponding service.
- Each service has to run in a dedicated container.
- For performance matters, the containers must be built either from the penultimate stable version of Alpine or Debian.
- You also have to write your own Dockerfiles, one per service. The Dockerfiles must be called in your docker-compose.yml by your Makefile.
- It means you have to build yourself the Docker images of your project. It is then forbidden to pull ready-made Docker images, as well as using services such as DockerHub (Alpine/Debian being excluded from this rule).
Diagram of the expected result for mandatory part:
Expected directory structure:
## Mandatory part
List of services and volumes to set up for the mandatory part:
- A Docker container that contains **NGINX** with TLSv1.2 or TLSv1.3 only.
- A Docker container that contains **WordPress + php-fpm** (it must be installed and configured) only without nginx.
- A Docker container that contains **MariaDB** only without nginx.
- A volume that contains your **WordPress database**.
- A second volume that contains your **WordPress website** files.
- A **docker-network** that establishes the connection between your containers.
## Bonus Part
A Dockerfile must be written for each extra service. Thus, each one of them will run inside its own container and will have, if necessary, its dedicated volume.
Bonus list:
- Set up **redis cache** for your WordPress website in order to properly manage the
cache.
- Set up a **FTP server** container pointing to the volume of your WordPress website.
- Create a simple **static website** in the language of your choice except PHP. For example, a showcase site or a site for presenting your resume.
- Set up **Adminer**.
- Set up a service of your choice that you think is useful. I am using **Grafana**.
## Disclaimer
> At [42School](https://en.wikipedia.org/wiki/42_(school)), almost every project must be written in accordance to the [Norm](https://github.com/MGuardia10/42cursus/blob/main/subjects/en/norm_en.pdf), the school's coding standard. As a result, the implementation of certain parts may appear strange and for sure had room for improvement.