- Description
- Usage
- Roadmap
- DockerHub Repository
- Helpful Resources
- Links to Related Projects
- Contact Information
As a DevOps enthusiast, I am excited to present my comprehensive system administration project. Leveraging Docker, I have meticulously virtualized various services within a virtual machine, creating an efficient and scalable infrastructure.
Key services include NGINX for secure access, WordPress with PHP-FPM for content management, MariaDB for database management, Redis for efficient caching, an FTP server for convenient file transfers, a static website for showcasing creativity, Adminer for database administration, and Cadvisor for system monitoring.
By choosing Alpine Linux as the operating system for the containers, I have optimized resource utilization and ensured lightweight Docker images. This contributes to improved performance and reduced infrastructure costs.
Security is paramount, and I have implemented robust measures to protect the database from unauthorized access. This includes following industry best practices and adhering to strict security guidelines.
By accomplishing this project, I gained a broad and strong knowledge of several concepts and practices related to system administration.
To use this project, follow these steps:
- Create a new user named "zaabou".
sudo adduser zaabou
sudo passwd zaabou
- Add the hostname "zaabou.42.fr" to the
/etc/hosts
file.
sudo echo "127.0.0.1 zaabou.42.fr" | sudo tee -a /etc/hosts
- Run the
make
command to build the project.
make
- Access the WordPress website by visiting the following URL in your web browser:
https://zaabou.42.fr
To successfully complete this project, follow these steps:
- Set up a virtual machine with Docker installed.
- Create Dockerfiles for each service.
- Configure NGINX for secure access using TLSv1.2 or TLSv1.3.
- Set up WordPress with PHP-FPM and configure it to use MariaDB as the database.
- Create a MariaDB container and configure it with a strong root password.
- Set up Redis for efficient caching.
- Create an FTP server for convenient file transfers.
- Develop a static website to showcase your creativity.
- Install Adminer for database administration.
- (Optional) Install Cadvisor for system monitoring.
- Configure a docker-network to establish the connection between your containers.
You can also access my Docker Hub repository and pull the images from there. Here are the links to my images:
- Nginx image: A lightweight and high-performance web server with custom config.
- Adminer image: This image contains Adminer, a web-based DBMS with PHP-FPM.
- WordPress image: This image contains a FastCGI (PHP-FPM) for running PHP scripts on the server side.
- MariaDb image: This image contains a mysql server.
- FTP image: This image contains an ftp server point to wordpress files.
- Redis image:This image contains a Redis server to act as a cache for the WordPress website.
- Cadviser: This image contains cAdvisor for monitoring containers.
- Static-site: A lightweight and high-performance web server.
- Docker Documentation
- NGINX Documentation
- WordPress Documentation
- PHP-FPM
- FTP
- MariaDB Documentation
- Redis Documentation
- Alpine Linux Documentation
- Cadvisor Documentation
- adminer
- VirtualBox
- Born2BeRoot: This system administration project involves setting up a virtual machine with a server, implementing security measures, creating encrypted partitions, configuring firewalls, and setting up user management with strong password policies.
- ft_transcendence: This project is a real-time multiplayer web application that gives users an unforgettable and enjoyable experience.
- GitHub: Ziko909
- LinkedIn: Zakaria Aabou
- Gmail: [email protected]