From 8a2caa16f480e0809f9f412353a306d1a29563a7 Mon Sep 17 00:00:00 2001 From: Sarukesh Boominathan Date: Tue, 31 Mar 2026 22:49:35 +0200 Subject: [PATCH] FINAL PUSH --- noc-docker/Documentation.pdf | Bin 0 -> 98731 bytes noc-docker/README.md | 575 +++++++++++++++++++++++ noc-docker/backend/Dockerfile | 10 + noc-docker/backend/app.py | 46 ++ noc-docker/backend/requirements.txt | 1 + noc-docker/docker-compose.yml | 34 ++ noc-docker/frontend/Dockerfile | 9 + noc-docker/frontend/app.py | 17 + noc-docker/frontend/requirements.txt | 2 + noc-docker/frontend/templates/index.html | 25 + noc-docker/prepare-app.sh | 7 + noc-docker/probe/Dockerfile | 10 + noc-docker/probe/probe.py | 27 ++ noc-docker/remove-app.sh | 8 + noc-docker/start-app.sh | 6 + noc-docker/stop-app.sh | 4 + 16 files changed, 781 insertions(+) create mode 100644 noc-docker/Documentation.pdf create mode 100644 noc-docker/README.md create mode 100644 noc-docker/backend/Dockerfile create mode 100644 noc-docker/backend/app.py create mode 100644 noc-docker/backend/requirements.txt create mode 100644 noc-docker/docker-compose.yml create mode 100644 noc-docker/frontend/Dockerfile create mode 100644 noc-docker/frontend/app.py create mode 100644 noc-docker/frontend/requirements.txt create mode 100644 noc-docker/frontend/templates/index.html create mode 100644 noc-docker/prepare-app.sh create mode 100644 noc-docker/probe/Dockerfile create mode 100644 noc-docker/probe/probe.py create mode 100644 noc-docker/remove-app.sh create mode 100644 noc-docker/start-app.sh create mode 100644 noc-docker/stop-app.sh diff --git a/noc-docker/Documentation.pdf b/noc-docker/Documentation.pdf new file mode 100644 index 0000000000000000000000000000000000000000..b11c3f8b83bb98879514cdca236911f7200d2fb4 GIT binary patch literal 98731 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

3s;XB^DjxDTprksg!ta<@rJ8>g%AgT*KH#Yw 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 + + + NOC Dashboard + + +

Network Monitoring Dashboard

+ + + + + + + + {% for row in data %} + + + + + + + {% endfor %} +
TargetLatencyStatusTime
{{ row[0] }}{{ row[1] }}{{ row[2] }}{{ row[3] }}
+ + diff --git a/noc-docker/prepare-app.sh b/noc-docker/prepare-app.sh new file mode 100644 index 0000000..5ff81ee --- /dev/null +++ b/noc-docker/prepare-app.sh @@ -0,0 +1,7 @@ +#!/bin/bash +echo "Preparing app..." + +docker network create noc-net 2>/dev/null +docker volume create noc-data 2>/dev/null + +docker compose build diff --git a/noc-docker/probe/Dockerfile b/noc-docker/probe/Dockerfile new file mode 100644 index 0000000..94d4ef5 --- /dev/null +++ b/noc-docker/probe/Dockerfile @@ -0,0 +1,10 @@ +FROM python:3.11-slim + +WORKDIR /app + +COPY . . + +RUN apt-get update && apt-get install -y iputils-ping +RUN pip install requests + +CMD ["python", "probe.py"] diff --git a/noc-docker/probe/probe.py b/noc-docker/probe/probe.py new file mode 100644 index 0000000..0fdf3ad --- /dev/null +++ b/noc-docker/probe/probe.py @@ -0,0 +1,27 @@ +import time +import subprocess +import requests + +BACKEND = "http://backend:5000/report" +TARGETS = ["147.232.22.34", "147.232.22.35", "147.232.205.116"] + +def ping(target): + try: + output = subprocess.check_output(["ping", "-c", "1", target]).decode() + latency = float(output.split("time=")[1].split(" ")[0]) + return latency, "UP" + except: + return 0, "DOWN" + +while True: + for t in TARGETS: + latency, status = ping(t) + try: + requests.post(BACKEND, json={ + "target": t, + "latency": latency, + "status": status + }) + except: + pass + time.sleep(5) diff --git a/noc-docker/remove-app.sh b/noc-docker/remove-app.sh new file mode 100644 index 0000000..ff132cc --- /dev/null +++ b/noc-docker/remove-app.sh @@ -0,0 +1,8 @@ +#!/bin/bash +echo "Removing app..." + +docker compose down -v +docker network rm noc-net 2>/dev/null +docker volume rm noc-data 2>/dev/null + +echo "Removed." diff --git a/noc-docker/start-app.sh b/noc-docker/start-app.sh new file mode 100644 index 0000000..8054690 --- /dev/null +++ b/noc-docker/start-app.sh @@ -0,0 +1,6 @@ +#!/bin/bash +echo "Starting app..." + +docker compose up -d + +echo "App running at: http://localhost:5000" diff --git a/noc-docker/stop-app.sh b/noc-docker/stop-app.sh new file mode 100644 index 0000000..223e484 --- /dev/null +++ b/noc-docker/stop-app.sh @@ -0,0 +1,4 @@ +#!/bin/bash +echo "Stopping app..." + +docker compose down