zkt26/z1
2026-04-01 00:43:56 +02:00
..
backend Final Push 2026-04-01 00:43:56 +02:00
frontend Final Push 2026-04-01 00:43:56 +02:00
uploads Final Push 2026-04-01 00:43:56 +02:00
docker-compose.yml Final Push 2026-04-01 00:43:56 +02:00
prepare-app.sh Final Push 2026-04-01 00:43:56 +02:00
README.md Final Push 2026-04-01 00:43:56 +02:00
remove-app.sh Final Push 2026-04-01 00:43:56 +02:00
start-app.sh Final Push 2026-04-01 00:43:56 +02:00
stop-app.sh Final Push 2026-04-01 00:43:56 +02:00

Docker Multi-Service Notes Application

Project Overview

This project is a multi-container web application deployed using Docker. It demonstrates how different services can work together using containerization.

The application allows users to:

  • Add and delete notes
  • Upload files
  • View and download uploaded files

Architecture

The application consists of the following services:

Frontend (Nginx) Serves static HTML, CSS, and JavaScript files. Accessible via browser.

Backend (Node.js + Express) Handles API requests and manages notes and file uploads.

MongoDB Stores notes data and uses a persistent Docker volume.

Mongo Express Provides a web interface to view and manage database data.


Technologies Used

  • Docker and Docker Compose
  • Node.js with Express
  • MongoDB (NoSQL database)
  • Nginx (web server)
  • HTML, CSS, and JavaScript

Service Ports

Service Port
Frontend 8080
Backend 3000
Mongo Express 8081

Persistent Storage

The application uses Docker volumes to preserve data across container restarts:

  • mongo-data stores database records
  • uploads/ stores user-uploaded files

Data is retained even after stopping the application.


How to Run

1. Prepare the application

./prepare-app.sh

2. Start the application

./start-app.sh

Once running, open the following in your browser:

  • Application: http://147.232.204.210:8080
  • Database UI: http://147.232.204.210/:8081

3. Stop the application

./stop-app.sh

4. Remove the application

./remove-app.sh

Application Workflow

  1. The user interacts with the frontend in a browser.
  2. The frontend sends API requests to the backend.
  3. The backend processes the requests and communicates with MongoDB.
  4. MongoDB stores or retrieves the relevant data.
  5. Mongo Express provides a separate interface to inspect database content directly.

Features

  • Create and delete notes
  • Upload files
  • View and download uploaded files
  • Persistent storage via Docker volumes