This project has been created as part of the 42 curriculum by .
Inception is a system administration and DevOps project focused on building a complete web infrastructure using Docker and Docker Compose. The goal of the project is to design, configure, and deploy a multi-service stack where each service runs in its own container, following best practices in isolation, security, and persistence. The project includes a WordPress website served via NGINX, backed by a MariaDB database, along with additional services such as Redis caching, FTP access, Adminer, a static website, and monitoring using Prometheus. All services are containerized and connected through a private Docker network, with only selected entry points exposed to the host.
- Docker
- Docker Compose
- GNU Make
- Linux-based system (recommended)
bash
- make build
- make run
Virtual Machines emulate entire operating systems and are heavier in terms of resource usage. Docker containers share the host kernel, making them faster, lighter, and easier to scale. Docker is better suited for microservice-based architectures like this project.
Secrets are used for sensitive data such as passwords. They are not stored in images or version control and are mounted securely at runtime. Environment variables are used only for non-sensitive configuration.
A custom Docker network is used to isolate internal services. Containers communicate using service names instead of exposing ports to the host, improving security and clarity.
Docker volumes are used to persist data (database, WordPress files). They are managed by Docker and are more portable and secure than bind mounts, which depend on host paths.