Inception is a system administration and DevOps project. It focuses on deploying a secure, containerized infrastructure using Docker and Docker Compose. The goal is to build a functional WordPress website with a full stack of services, each running in its own container.
To set up a secure and modular container-based infrastructure from scratch using Docker, orchestrated via Docker Compose, and adhering to best practices in service isolation, configuration, and deployment.
The infrastructure includes the following services, each in its own container:
- NGINX: Serves as a reverse proxy with SSL (TLS) using self-signed certificates
- WordPress: Content management system
- MariaDB: Relational database for WordPress
- HTTPS enabled with SSL (TLS) certificates
- Non-root users in containers
- Proper file permissions and environment variable management
- Environment files excluded from version control
- Docker
- Docker Compose
- Bash scripting
- Linux system configuration
- OpenSSL for certificate generation
In the environment.py in line 38->"environment_template.write(f"WP_URL=tsimitop.42.fr\n")" change the project's url from "tsimitop.42.fr" to "localhost" or instead add tsimitop.42.fr to your /etc/hosts.
git clone git@github.com:tsimitop/Inception.git
cd inceptionmakeFollow the instructions in the terminal to create the .env file. You'll also need to create a secrets directory to store the passwords the environment.py will use to create to .env. Files must be named as specified in the environment.py "get_password_from_file()" function calls.