This document explains how developers can set up, build, run, and maintain the Inception project.
Before starting development, install:
- Docker
- Docker Compose
- Make
- Git
A .env file must be placed in the project's root:
MYSQL_DATABASE=
MYSQL_USER=
MYSQL_PASSWORD=
MYSQL_ROOT_PASSWORD=
DOMAIN_NAME=
This file provides environment variables for Docker Compose.
- Clone the repository:
git clone <repository>
cd <repository>- Ensure the folder structure is present:
srcs/
├── docker-compose.yml
├── requirements/
│ ├── mariadb/
│ ├── nginx/
│ └── wordpress/
-
Create the
.envfile with your credentials. -
Build and launch the containers using the Makefile:
makemakedocker compose up -d --buildThis will:
- Build images from Dockerfiles.
- Start all services.
- Recreate containers if needed.
docker psdocker exec -it wordpress bash
docker exec -it mariadb bashdocker logs nginx
docker logs wordpress
docker logs mariadbdocker compose build wordpress
docker compose build nginx
docker compose build mariadbThe stack uses named volumes to persist data:
Stores database files:
/var/lib/mysql
Stores WordPress installation + uploaded content:
/var/www/html
docker volume lsdocker volume inspect mariadb_datadocker compose down -vor using the Makefile:
make fclean.
├── Makefile
├── .env
└── srcs
├── docker-compose.yml
└── requirements
├── mariadb
│ └── Dockerfile
├── nginx
│ └── Dockerfile
└── wordpress
└── Dockerfile
Nginx generates or uses existing TLS certificates located in:
/etc/nginx/ssl/
If using self-signed certificates, browsers may require confirmation.
make stopmake downmake fcleanThis resets the entire environment.
sudo lsof -i :443
sudo kill <pid>- Check
.envcredentials. - Ensure no previous corrupted volume exists.
- Verify service name is
mariadbindocker-compose.yml. - Test DB connection manually:
docker exec -it mariadb mysql -u$MYSQL_USER -p