This project provides a secure, containerized web infrastructure. Each service runs in its own isolated environment:
- NGINX: The entry point. It serves as a secure web server using TLS (v1.2 or v1.3).
- WordPress: The CMS application used to manage and display website content.
- PHP-FPM: The FastCGI process manager that processes dynamic PHP content for WordPress.
- MariaDB: The relational database used to store all persistent website data and user information.
Management of the services is handled through a Makefile located at the root of the project.
- Start the infrastructure:
This command builds the images, creates the networks/volumes, and starts the containers.
make
- Stop the infrastructure:
This pauses all running services without deleting data.
make stop
- Full Reset:
Use this to completely remove containers, images, and all persistent data.
make fclean
Once the stack is running, you can access the following interfaces:
Important: You must have
127.0.0.1 arcanava.42.frconfigured in your/etc/hostsfile.
- User Website: https://arcanava.42.fr
- WordPress Admin Dashboard: https://arcanava.42.fr/wp-admin
Sensitive information is managed using environment variables to prevent accidental leaks.
- Credential Location: All passwords and usernames (Database, WordPress Admin, and WordPress User) are stored in secrets, declared in a file for each in
secrets.template/. Those are imported via.envlocated in thesrcs/directory where you can find the template.env.template. - Updates: If you modify any credential, you must restart the system with
make reto apply changes.
To verify the system is running correctly as an administrator, use these commands:
- Check Container Status:
Ensure all three services (nginx, wordpress, mariadb) have a status of "Up".
docker ps
- Monitor Activity (Logs):
This provides a real-time feed of service activity and helps diagnose connection errors.
docker-compose -f srcs/docker-compose.yml logs -f
- Network Verification:
Verify that the private network (e.g.,
docker network ls
inception_network) is active and connecting the containers.