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.
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
To run this project, you will need to add the following environment variables to your .env file
DEBUG
:True
orFalse
- ifTrue
the app will run in debug modeDJANGO_SECRET
: Django secret keyUPDATE_INTERVAL
: Interval in seconds to update the traffic statistics buffer- Database variables:
DB_ENGINE
: defaultdjango.db.backends.sqlite3
DB_NAME
DB_USER
DB_PASS
DB_HOST
DB_PORT
- Python 3.10 or higher
- pip
- Linux (tested on Raspbian)
- Systemd (optional for Program-based TC policies)
- iproute2
- tcpdump
Clone the project
git clone https://github.com/IPv18/NOCD.git
Go to the project directory
cd NOCD
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.
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.
To run tests, run the following command
python3 manage.py test
Start the server
python3 manage.py runserver
- Add traffic statistics
- Add multiprocess support
- Add AI assistant to help with network policies
This project is licensed under the MIT License. See the LICENSE file for more information.