Inception 42 is a system administration exercise focused on creating a small infrastructure using Docker. This project aims to deepen understanding of system administration concepts through practical application.
-
Virtual Machine: The entire project is set up on a virtual machine.
-
Docker and Docker Compose: Used for creating and managing containers.
-
Custom Docker Images: Self-created Dockerfiles for each service, built from Alpine or Debian (penultimate stable version).
-
Services/Containers:
- NGINX with TLSv1.2 or TLSv1.3
- WordPress + php-fpm
- MariaDB
-
Volumes:
- WordPress database
- WordPress website files
-
Docker Network: Establishes connections between containers.
-
Domain Configuration: Set up
login.42.fr
pointing to the local IP address.
- NGINX as the only entrypoint (port 443)
- Use of environment variables (preferably in a
.env
file) - No passwords in Dockerfiles
- Makefile: Sets up the entire application using
docker-compose.yml
- Directory Structure: Includes a 'srcs' folder for configuration files
- Redis cache
- FTP server
- Static website (non-PHP)
- Adminer
- Additional useful service (implementer's choice)
- Proper Docker practices
- Security considerations
- Multi-container application implementation using Docker Compose
- Docker
- Docker-compose
- microservice
- Nginx
- SQL
- shell script
- Php
- adminer
- Wordpress
- SSL
- FTP
- SSH
- redis
- mariadb
- DevOps
git clone https://github.com/abouramd/Inception_42.git
cd Inception_42
cd src
cp .env.example .env
vim .env # edit the .env file with your own configuration
sudo echo "127.0.0.1 abdelhay.42.fr" >> /etc/hosts # add the hostname that you choose in your loop back
cd ..
make
This project is part of the curriculum at 42 School.