Transcendence

๐Ÿ”— Subject Transcendence Multi-Service Dockerized Application This project is about creating a multi-service application orchestrated with Docker Compose. It integrates static frontend, backend microservices, advanced monitoring tools, and an ELK stack for centralized logging and analytics. The architecture emphasizes modularity, scalability, and seamless deployment, making it robust and efficient for modern application needs. Table of Contents Overview Services Proxy Backend Services Monitoring ELK Stack Setup Usage Volumes Networks Overview This project is a Single Page Application (SPA) that replicates the classic Pong game with modern features and a robust backend architecture. It includes: ...

March 20, 2025

Inception

๐Ÿ”— Subject Inception This project aims to broaden your knowledge of system administration by using Docker. You will virtualize several Docker images, creating them in your new personal virtual machine. Project Overview Inception involves setting up and configuring multiple services using Docker containers, each serving a specific purpose. The project uses Docker Compose to manage the containers, networks, and volumes required. Containers Nginx Description: Acts as a reverse proxy server to handle HTTP and HTTPS requests. Configuration: Configured to use a self-signed SSL certificate. Ports: Exposes port 443 for HTTPS. Dependencies: Depends on the WordPress container. Build Context: requirements/nginx MariaDB Description: A relational database management system to store WordPress data. Configuration: Uses a custom configuration file. Ports: Exposes port 3306 for database connections. Build Context: requirements/mariadb WordPress Description: A content management system to create and manage websites. Configuration: Automatically configured using a script. Ports: Exposes port 9000 for PHP-FPM. Dependencies: Depends on the MariaDB and Redis containers. Build Context: requirements/wordpress Redis Description: An in-memory data structure store used as a cache for WordPress. Configuration: Uses a custom configuration file. Ports: Exposes port 6379 for Redis connections. Build Context: requirements/bonus/redis FTP Description: An FTP server to manage file uploads. Configuration: Uses a custom configuration file and script. Ports: Exposes ports 21 and 20 for FTP, and a range of ports for passive mode. Dependencies: Depends on the WordPress container. Build Context: requirements/bonus/ftp Hugo Description: A static site generator to create a portfolio website. Configuration: Uses a custom configuration file. Ports: Exposes port 1313 for the Hugo server. Build Context: requirements/bonus/hugo Adminer Description: A lightweight database management tool. Configuration: Accessed via the Nginx container for security. Ports: Exposes port 9001 for internal access. Build Context: requirements/bonus/adminer Prometheus Description: A monitoring tool for collecting and analyzing metrics from services and containers. Configuration: Uses a custom configuration file to monitor specific metrics. Ports: Exposes port 9090 for accessing the Prometheus web interface. Build Context: requirements/bonus/prometheus Node Exporter Description: An exporter for Prometheus to collect hardware and OS metrics from the host machine. Ports: Exposes port 9100 for internal communication with Prometheus. Build Context: requirements/bonus/node-exporter Grafana Description: A visualization tool to create dashboards using metrics collected by Prometheus. Ports: Exposes port 3000 for accessing the Grafana web interface. Build Context: requirements/bonus/grafana Docker Compose Configuration The project uses Docker Compose to manage the containers. The configuration file is located at srcs/docker-compose.yml. It defines the services, networks, and volumes required for the project. ...

November 15, 2024

Docker

What is Docker? Docker is an open-source platform that automates the deployment, scaling, and management of applications using containerization. Containers allow developers to package an application with all its dependencies into a standardized unit for software development. Key Concepts Containers Containers are lightweight, portable, and self-sufficient units that include everything needed to run a piece of software, including the code, runtime, libraries, and system tools. They are isolated from each other and the host system, ensuring consistent behavior across different environments. ...

November 3, 2024

Virtual Machine

Setting Up the VM After installing a new VM with a Debian image, follow these steps to set up your environment for the Inception project. This guide includes installing Docker, Docker Compose, Git, and Vim. Step-by-Step Guide 1. Update and Upgrade the System First, update and upgrade the package list to ensure you have the latest packages. sudo apt-get update && sudo apt-get upgrade -y 2. Install Git and Vim Then, install Git for downloading inception and vim modify files ...

November 1, 2024