zeus
23076feb97
|
3 years ago | |
---|---|---|
dist | 3 years ago | |
docs | 3 years ago | |
files | 3 years ago | |
hybrid | 4 years ago | |
install | 4 years ago | |
keys | 4 years ago | |
nginx | 4 years ago | |
public | 4 years ago | |
src | 3 years ago | |
src-local | 3 years ago | |
test | 4 years ago | |
.gitignore | 3 years ago | |
Dockerfile | 4 years ago | |
Dockerfile.backup | 4 years ago | |
Dockerfile.build | 4 years ago | |
LICENSE | 4 years ago | |
README.md | 3 years ago | |
down.sh | 4 years ago | |
ecosystem.config.js | 4 years ago | |
ecosystem.config.js.backup | 4 years ago | |
install.sh | 3 years ago | |
package-lock.json | 4 years ago | |
package.json | 4 years ago | |
restart | 4 years ago | |
restart.sh | 4 years ago | |
run.yml | 3 years ago | |
run.yml.backup | 4 years ago | |
run.yml.sh | 4 years ago | |
start | 4 years ago | |
start.sh | 3 years ago | |
status.sh | 4 years ago | |
stop | 4 years ago | |
stop.sh | 4 years ago | |
update-agent.sh | 4 years ago |
README.md
Swarmlab Hybrid
Welcome to Swarmlab.io
On demand Labrooms
Ready-to-Use Virtual Labs one click away.
Table of contents
An open source work/study-from-home application.
Swarmlab provides you with all the required tools, tools to teach work or try out demos in a completely virtual environment.
Swarmlab is a collection of services that aims to:
-
provide teachers and professors with online remote tools to do their lessons
-
give students the opportunity to study real life examples in their chosen area of expertise
-
allow developers to fully test and debug their applications and provide POC’s
Swarmlab, up and running since 2020, is already used for teaching purposes in a university and has proven itself as a powerful tool in the post covid remote-based situation.
Source code is available at https://git.swarmlab.io:3000 under the AGPL licence.
Ready to run out-of-the-box
As of now the services provided by swarmlab are:
-
Labrooms(virtual classrooms in the form of model applications to be tweaked at will)
-
linux → base linux system – designed for use as a base to further develop your app
-
MPI → Instances of Ubuntu Linux with MPICH — portable implementation of Message Passing Interface (MPI) standard. Designed for MPI program development and deployment.
-
Node.js
-
sec → a basic linux-based os with security tools – designed as a template for apps
-
Storage to automatically create a cluster of databases.
-
Proof Of Concept (POC) options
-
datacollector → using provided services a fully developed application may collect data from a swarm and use it for further analysis
-
Microservices
-
Jupyter
-
numpy
-
scipy
-
nodejs
-
nginx
-
haproxy
-
gns3
-
wireshark
-
snmpsim
-
xelatexthesis
-
ansible
-
etherpad
-
codeserver (vscode)
-
redisserver
-
mongoserver
-
mongoclient (GUI)
to be continued…
System requirements
Before you create and configure a hybrid deployment using the swarmlab-agent client, your Local Machines need to meet certain requirements.
If you don't meet those requirements, you won't be able to complete the steps within the swarmlab-agent client and you won't be able to configure a hybrid deployment between your Local Enviroment and Swarmlab Online Enviroment.
- A Linux Server (Virtual or Physical)
- You must have super user privileges (root/sudo)
- Docker Engine- Community version 18 or later is required.
- Docker Engine is supported on x86_64 (or amd64), armhf, and arm64 architectures.
- RAM
- Absolute minimum to run the daemon and some very light containers - 512MB
- Minimum for “comfortable” usage – 2GB
- CPU
- Minimum: 2
- Recommended 4+
- Disk Space
- 10 GB for internal requirements.
- The amount of additional disk space soloemnly depends on you intended use.
⚠️ Since Docker uses hypervisor the host NEEDS TO HAVE VIRTUALIZATION ENABLED!
Prerequisites
-
node version >15
curl -sL https://deb.nodesource.com/setup_15.x | sudo -E bash - sudo apt-get install -y nodejs
-
docker
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" sudo apt update sudo apt install -y docker-ce sudo usermod -aG docker [USERNAME] # Please replace [USERNAME] with the user you want to run docker on
ℹ️ for kali specifically please visit the following link to install docker.
https://linuxhint.com/install_docker_kali_linux/
-
docker-compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
-
pm2
sudo npm install -g pm2
-
wireguard
sudo apt install wireguard jq
Installation
for *nix
-
Clone the repo
git clone --recurse-submodules https://git.swarmlab.io:3000/zeus/swarmlab-hybrid.git
-
Install it!
cd swarmlab-hybrid ./install.sh <-- run it without root privileges
-
Open URL http://localhost:3088 in browser
Windows
if you wish to keep the environment contained
And instructions on how to use them here.
ℹ️ Default password: swarmlab
PLEASE CHANGE PASSWORD IMEDIATELLY AFTER FIRST LAUNCH!!!
First Run
❗ No matter your distribution, upon installing you will HAVE to load settings before the first run!!
This will initialize the configuration using the system defaults.
Afterwards you can add custom settings, or keep using the defaults.
This action does NOT need to be repeated unless you wish to reset the application.
Please navigate to the "Profile->Settings" menu and click on the "Load settings" button.
After doing this the application MUST be reastarted! To do that please run the restart script.
inside the root directory of the project run
./restart.sh
More Info
You can find our docs in
http://docs.swarmlab.io/SwarmLab-HowTos/swarmlab/docs/swarmlab/docs/index.html