Skip to content

Cute network emulation web-app for self-education and classes (based on mininet).

License

Notifications You must be signed in to change notification settings

Basselalshayeb2/2miminet

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

403 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Miminet

Эмулятор компьютерной сети для образовательных целей на базе ОС Linux.

Local Deployment

В директориях back и front находятся .env examples, которые используются в docker-compose и ansible.

Если Вы используете Docker для backend и frontend, не меняйте имена хостов для url в .env.

Если Вы используете virtualbox/vmware с Vagrant для backend, и разворачиваете Redis и Rabbitmq на хосте, укажите ip хоста в back/.env. (в virtual box по умолчанию 192.168.56.1)

Запуск с помощью Docker
Для запуска всех контейнеров можно использовать скрипт start_all_containers.sh, находящийся в корневой папке проекта.

Backend

Docker

cd back
docker compose up -d --build

Vagrant

NFS(для полной автоматизации vagrant up):

# /etc/sudoers.d/vagrant-syncedfolders
Cmnd_Alias VAGRANT_EXPORTS_CHOWN = /bin/chown 0\:0 /tmp/vagrant-exports
Cmnd_Alias VAGRANT_EXPORTS_MV = /bin/mv -f /tmp/vagrant-exports /etc/exports
Cmnd_Alias VAGRANT_NFSD_CHECK = /etc/init.d/nfs-kernel-server status
Cmnd_Alias VAGRANT_NFSD_START = /etc/init.d/nfs-kernel-server start
Cmnd_Alias VAGRANT_NFSD_APPLY = /usr/sbin/exportfs -ar
%sudo ALL=(root) NOPASSWD: VAGRANT_EXPORTS_CHOWN, VAGRANT_EXPORTS_MV, VAGRANT_NFSD_CHECK, VAGRANT_NFSD_START, VAGRANT_NFSD_APPLY
cd back
export numberOfBoxes=N
export provider=vbox/vmware
. vagrant_vms.sh

N - количество экземпляров vagrant(Miminet на данный момент не поддерживает мультипроцессинг, выходом является запуск нескольких вм).

После окончания vagrant_vms.sh инициализируем worker в каждой виртуальной машине.

. start_workers.sh

Frontend

Docker

Поднимаем после Rabbitmq.

cd front && docker compose up -d --build

Authorization

Для возможности авторизации необходимо создать свое Google/Vk приложение и поместить client_google.json/vk_auth.json в front/src. Можно обратиться к разработчикам для получения общих credentials, но это не является безопасным решением.

Database migrations

docker exec -it miminet bash
flask db init
flask db migrate
flask db upgrade

About

Cute network emulation web-app for self-education and classes (based on mininet).

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 80.0%
  • Python 12.2%
  • HTML 7.4%
  • CSS 0.2%
  • Shell 0.1%
  • Dockerfile 0.1%