Skip to content

Latest commit

 

History

History
275 lines (202 loc) · 6.91 KB

README.md

File metadata and controls

275 lines (202 loc) · 6.91 KB
logo

Network Operations Center for Debutant

Help people with little to no experience in networking to create and manage Linux networks

contributors last update forks stars open issues license


📔 Table of Contents

🌟 About the Project

NOCD is a micro NOC (Network Operations Center) that aims to help people with little to no experience in networking to create and manage their own network policies. The app provides easy to use tools to create and manage network policies, as well as a dashboard to monitor the network traffic and statistics.

📷 Screenshots

  • Dashboard homepage
  • Traffic Control traffic_control
  • Apply Program-based Traffic Control Policy on running processes
  • program-policy.mp4

👾 Tech Stack

Front-End
  • JavaScript
  • jquery
  • Chart.js
  • popper.js
  • datatables
  • Bootstrap
  • django templates
Back-End
  • Django
  • Django REST framework
  • sqlite3
  • Linux / Network
    • systemd
    • Linux TC (traffic controll)
    • iproute2
    • tcpdump
    • iptables
DevOps

🎯 Features comparison

comparison

🔑 Environment Variables

To run this project, you will need to add the following environment variables to your .env file

  • DEBUG : True or False - if True the app will run in debug mode
  • DJANGO_SECRET : Django secret key
  • UPDATE_INTERVAL : Interval in seconds to update the traffic statistics buffer
  • Database variables:
    • DB_ENGINE : default django.db.backends.sqlite3
    • DB_NAME
    • DB_USER
    • DB_PASS
    • DB_HOST
    • DB_PORT

‼️ Prerequisites

  • Python 3.10 or higher
  • pip
  • Linux (tested on Raspbian)
  • Systemd (optional for Program-based TC policies)
  • iproute2
  • tcpdump

🧰 Getting Started

Clone the project

  git clone https://github.com/IPv18/NOCD.git

Go to the project directory

  cd NOCD

🌐 Virtual Environment

To start, we need to create a python virtual environment for our project.

  • We will be using pip so we need to make sure it is up to date. You can use this command to do that:

    python3 -m pip install --user --upgrade pip
  • Then we will need to install virtualenv, the package we will be using to create our virtual environment, run those commands:

    python3 -m pip install --user virtualenv
  • Now that we have the virtualenv package we can create our virtual environment like this:

    python3 -m venv .venv
  • Finally, we will activate it like so:

    source .venv/bin/activate

On your terminal it should now show something like this:

(.venv) <--
User@Machine MINGW64 ~/Documents/Homework

If it doesn't, try repeating the steps above.

📦 Insalling Requirements

Now that our virtual environment is working we will need to install some packages on it, there will be a file called requirements.txt included in the project, if you cannot find it try pulling from the remote repository, or alternitavely try cloning the repository again.

To install the packages is quite simple, just run this command:

pip install -r requirements.txt

After that is done you should be ready to run the project.

🧪 Running Tests

To run tests, run the following command

  python3 manage.py test

💻 Run Locally

Start the server

  python3 manage.py runserver

🧭 Roadmap

  • Add traffic statistics
  • Add multiprocess support
  • Add AI assistant to help with network policies

👋 Contributing

📃 License

This project is licensed under the MIT License. See the LICENSE file for more information.