Skip to content

This project is about using Docker and Docker compose to create a small multi-containers application with a wordpress website, running with php-fmp, nginx and mariadb.

Notifications You must be signed in to change notification settings

HoudaChairi/42_Inception

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

25 Commits
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

42 Inception πŸš€

Project Overview πŸ“š

Inception is a System Administration project at 42 School that focuses on Docker containerization.
The goal is to set up a small infrastructure composed of different services under specific rules using Docker Compose.

Project Overview


πŸ—‚ Table of Contents


✨ Requirements

Before starting, ensure the following are installed:

  • 🐳 Docker
  • βš™οΈ Docker Compose
  • πŸ“¦ Containers
  • πŸ’Ύ Volumes
  • 🌐 Network

πŸ› οΈ Services

Here are the main services you will set up:

  • 🌐 NGINX: Web server with SSL/TLS support.
  • πŸ“ WordPress: CMS with php-fpm.
  • πŸ’Ύ MariaDB: Database server.

Bonus Services:

  • πŸ”„ Redis: Caching system.
  • πŸ“‘ FTP server: File transfer protocol server.
  • πŸ–ΌοΈ Static website: Simple static HTML site.
  • πŸ“Š Adminer: Managing contents of MySQL databases.

πŸ“‚ Directory Structure

42_INCEPTION/
β”œβ”€β”€ srcs/
β”‚   β”œβ”€β”€ requirements/
β”‚   β”‚   └── bonus/
β”‚   β”‚       β”œβ”€β”€ adminer/
β”‚   β”‚       β”‚   └── Dockerfile
β”‚   β”‚       β”œβ”€β”€ simple_page/
β”‚   β”‚       β”‚   └── website/
β”‚   β”‚       β”‚       β”œβ”€β”€ index.html
β”‚   β”‚       β”‚       └── styles.css
β”‚   β”‚       └── Dockerfile
β”‚   β”œβ”€β”€ mariadb/
β”‚   β”‚   β”œβ”€β”€ conf/
β”‚   β”‚   β”‚   └── 50-server.cnf
β”‚   β”‚   β”œβ”€β”€ tools/
β”‚   β”‚   └── Dockerfile
β”‚   β”œβ”€β”€ nginx/
β”‚   β”‚   β”œβ”€β”€ conf/
β”‚   β”‚   β”‚   └── nginx.conf
β”‚   β”‚   └── Dockerfile
β”‚   β”œβ”€β”€ wordpress/
β”‚   β”‚   β”œβ”€β”€ tools/
β”‚   β”‚   └── Dockerfile
β”‚   β”œβ”€β”€ .env
β”‚   β”œβ”€β”€ docker-compose.yml
└── Makefile

βš™οΈ Configuration

Key configuration files:

  • .env: Environment variables
  • docker-compose.yml: Service definitions
  • srcs/requirements/*/Dockerfile: Individual service configurations
  • srcs/requirements/*/conf/*: Service-specific configuration files

Important environment variables:

  • DOMAIN_NAME: Your domain name
  • MYSQL_ROOT_PASSWORD: MariaDB root password
  • MYSQL_USER: MariaDB user
  • MYSQL_PASSWORD: MariaDB user password
  • WORDPRESS_DB_NAME: WordPress database name

πŸ› Troubleshooting

  1. Containers not starting:

    • Check logs: docker-compose logs
    • Verify port availability
  2. WordPress not connecting to database:

    • Ensure MariaDB is fully initialized
    • Check database credentials in WordPress configuration
  3. SSL certificate issues:

    • Verify SSL certificate generation in NGINX container
    • Check NGINX configuration for proper SSL setup

For more detailed troubleshooting, refer to individual service logs: docker-compose logs [service_name]

About

This project is about using Docker and Docker compose to create a small multi-containers application with a wordpress website, running with php-fmp, nginx and mariadb.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published