MingInc / ming-network-simulation

A Docker-based simulation of a distributed network where each container acts as a node running an Express server. Nodes communicate over a shared Docker network, simulating interaction in a decentralized environment.
0 stars 0 forks source link

Ming Distributed Network Simulation

This project simulates a distributed network with Docker containers acting as nodes. Each node runs an Express server, and tools like Portainer and Uptime Kuma are integrated for monitoring and management. The containers are networked using Docker's bridge driver, allowing internal communication between the nodes.

Architecture

Prerequisites

Make sure the following are installed on your system:

Setup

  1. Clone the repository:

    git clone https://github.com/your-repo/ming-distributed-network.git
    cd ming-distributed-network
  2. Build and run the containers:

    Run the following command to spin up all the services:

    docker-compose up -d
  3. Access the Services:

  4. Monitor Uptime:

    • Uptime Kuma will be available on port 8080. You can set up monitors for your services from the dashboard.
  5. Manage Docker Containers:

    • Access Portainer on port 9000 to manage and monitor all containers.

Directory Structure

├── docker-compose.yml       # Docker Compose configuration
├── node1/                   # Express server for Node 1
│   ├── Dockerfile
│   └── server.js
├── node2/                   # Express server for Node 2
│   ├── Dockerfile
│   └── server.js
├── node3/                   # Express server for Node 3
│   ├── Dockerfile
│   └── server.js
├── uptime-kuma-data/         # Data for Uptime Kuma
└── README.md                # Project Documentation

Docker Compose Configuration

Next Milestone

Troubleshooting


This README.md should give clear instructions to users on how to set up and interact with the containers, monitor uptime, and manage the services via Portainer. The next milestone section outlines future goals to extend the functionality of the system.

Screenshots

Screenshot

Screenshot2